All Downloads are FREE. Search and download functionalities are using the official Maven repository.

js.lib.prompto.core.bundle.js Maven / Gradle / Ivy

/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {

/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;

/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}


/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

	/* WEBPACK VAR INJECTION */(function(global) {exports.antlr4 = __webpack_require__(1);
	exports.prompto = __webpack_require__(49);
	const globals = global || window || self || this;
	globals.antlr4 = exports.antlr4;
	globals.prompto = exports.prompto;

	/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))

/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

	/* 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.
	 */
	exports.atn = __webpack_require__(2);
	exports.codepointat = __webpack_require__(33);
	exports.dfa = __webpack_require__(34);
	exports.fromcodepoint = __webpack_require__(37);
	exports.tree = __webpack_require__(38);
	exports.error = __webpack_require__(39);
	exports.Token = __webpack_require__(6).Token;
	exports.CharStreams = __webpack_require__(42).CharStreams;
	exports.CommonToken = __webpack_require__(6).CommonToken;
	exports.InputStream = __webpack_require__(43).InputStream;
	exports.FileStream = __webpack_require__(45).FileStream;
	exports.CommonTokenStream = __webpack_require__(46).CommonTokenStream;
	exports.Lexer = __webpack_require__(22).Lexer;
	exports.Parser = __webpack_require__(48).Parser;
	var pc = __webpack_require__(12);
	exports.PredictionContextCache = pc.PredictionContextCache;
	exports.ParserRuleContext = __webpack_require__(16).ParserRuleContext;
	exports.Interval = __webpack_require__(10).Interval;
	exports.Utils = __webpack_require__(5);


/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

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

	exports.ATN = __webpack_require__(3).ATN;
	exports.ATNDeserializer = __webpack_require__(17).ATNDeserializer;
	exports.LexerATNSimulator = __webpack_require__(21).LexerATNSimulator;
	exports.ParserATNSimulator = __webpack_require__(31).ParserATNSimulator;
	exports.PredictionMode = __webpack_require__(32).PredictionMode;


/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

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

	var LL1Analyzer = __webpack_require__(4).LL1Analyzer;
	var IntervalSet = __webpack_require__(10).IntervalSet;

	function ATN(grammarType , maxTokenType) {

	    // Used for runtime deserialization of ATNs from strings///
	    // The type of the ATN.
	    this.grammarType = grammarType;
	    // The maximum value for any symbol recognized by a transition in the ATN.
	    this.maxTokenType = maxTokenType;
	    this.states = [];
	    // Each subrule/rule is a decision point and we must track them so we
	    //  can go back later and build DFA predictors for them.  This includes
	    //  all the rules, subrules, optional blocks, ()+, ()* etc...
	    this.decisionToState = [];
	    // Maps from rule index to starting state number.
	    this.ruleToStartState = [];
	    // Maps from rule index to stop state number.
	    this.ruleToStopState = null;
	    this.modeNameToStartState = {};
	    // For lexer ATNs, this maps the rule index to the resulting token type.
	    // For parser ATNs, this maps the rule index to the generated bypass token
	    // type if the
	    // {@link ATNDeserializationOptions//isGenerateRuleBypassTransitions}
	    // deserialization option was specified; otherwise, this is {@code null}.
	    this.ruleToTokenType = null;
	    // For lexer ATNs, this is an array of {@link LexerAction} objects which may
	    // be referenced by action transitions in the ATN.
	    this.lexerActions = null;
	    this.modeToStartState = [];

	    return this;
	}

	// Compute the set of valid tokens that can occur starting in state {@code s}.
	//  If {@code ctx} is null, the set of tokens will not include what can follow
	//  the rule surrounding {@code s}. In other words, the set will be
	//  restricted to tokens reachable staying within {@code s}'s rule.
	ATN.prototype.nextTokensInContext = function(s, ctx) {
	    var anal = new LL1Analyzer(this);
	    return anal.LOOK(s, null, ctx);
	};

	// Compute the set of valid tokens that can occur starting in {@code s} and
	// staying in same rule. {@link Token//EPSILON} is in set if we reach end of
	// rule.
	ATN.prototype.nextTokensNoContext = function(s) {
	    if (s.nextTokenWithinRule !== null ) {
	        return s.nextTokenWithinRule;
	    }
	    s.nextTokenWithinRule = this.nextTokensInContext(s, null);
	    s.nextTokenWithinRule.readOnly = true;
	    return s.nextTokenWithinRule;
	};

	ATN.prototype.nextTokens = function(s, ctx) {
	    if ( ctx===undefined ) {
	        return this.nextTokensNoContext(s);
	    } else {
	        return this.nextTokensInContext(s, ctx);
	    }
	};

	ATN.prototype.addState = function( state) {
	    if ( state !== null ) {
	        state.atn = this;
	        state.stateNumber = this.states.length;
	    }
	    this.states.push(state);
	};

	ATN.prototype.removeState = function( state) {
	    this.states[state.stateNumber] = null; // just free mem, don't shift states in list
	};

	ATN.prototype.defineDecisionState = function( s) {
	    this.decisionToState.push(s);
	    s.decision = this.decisionToState.length-1;
	    return s.decision;
	};

	ATN.prototype.getDecisionState = function( decision) {
	    if (this.decisionToState.length===0) {
	        return null;
	    } else {
	        return this.decisionToState[decision];
	    }
	};

	// Computes the set of input symbols which could follow ATN state number
	// {@code stateNumber} in the specified full {@code context}. This method
	// considers the complete parser context, but does not evaluate semantic
	// predicates (i.e. all predicates encountered during the calculation are
	// assumed true). If a path in the ATN exists from the starting state to the
	// {@link RuleStopState} of the outermost context without matching any
	// symbols, {@link Token//EOF} is added to the returned set.
	//
	// 

If {@code context} is {@code null}, it is treated as // {@link ParserRuleContext//EMPTY}.

// // @param stateNumber the ATN state number // @param context the full parse context // @return The set of potentially valid input symbols which could follow the // specified state in the specified context. // @throws IllegalArgumentException if the ATN does not contain a state with // number {@code stateNumber} var Token = __webpack_require__(6).Token; ATN.prototype.getExpectedTokens = function( stateNumber, ctx ) { if ( stateNumber < 0 || stateNumber >= this.states.length ) { throw("Invalid state number."); } var s = this.states[stateNumber]; var following = this.nextTokens(s); if (!following.contains(Token.EPSILON)) { return following; } var expected = new IntervalSet(); expected.addSet(following); expected.removeOne(Token.EPSILON); while (ctx !== null && ctx.invokingState >= 0 && following.contains(Token.EPSILON)) { var invokingState = this.states[ctx.invokingState]; var rt = invokingState.transitions[0]; following = this.nextTokens(rt.followState); expected.addSet(following); expected.removeOne(Token.EPSILON); ctx = ctx.parentCtx; } if (following.contains(Token.EPSILON)) { expected.addOne(Token.EOF); } return expected; }; ATN.INVALID_ALT_NUMBER = 0; exports.ATN = ATN; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// var Set = __webpack_require__(5).Set; var BitSet = __webpack_require__(5).BitSet; var Token = __webpack_require__(6).Token; var ATNConfig = __webpack_require__(7).ATNConfig; var Interval = __webpack_require__(10).Interval; var IntervalSet = __webpack_require__(10).IntervalSet; var RuleStopState = __webpack_require__(8).RuleStopState; var RuleTransition = __webpack_require__(11).RuleTransition; var NotSetTransition = __webpack_require__(11).NotSetTransition; var WildcardTransition = __webpack_require__(11).WildcardTransition; var AbstractPredicateTransition = __webpack_require__(11).AbstractPredicateTransition; var pc = __webpack_require__(12); var predictionContextFromRuleContext = pc.predictionContextFromRuleContext; var PredictionContext = pc.PredictionContext; var SingletonPredictionContext = pc.SingletonPredictionContext; function LL1Analyzer (atn) { this.atn = atn; } //* Special value added to the lookahead sets to indicate that we hit // a predicate during analysis if {@code seeThruPreds==false}. /// LL1Analyzer.HIT_PRED = Token.INVALID_TYPE; //* // Calculates the SLL(1) expected lookahead set for each outgoing transition // of an {@link ATNState}. The returned array has one element for each // outgoing transition in {@code s}. If the closure from transition // i leads to a semantic predicate before matching a symbol, the // element at index i of the result will be {@code null}. // // @param s the ATN state // @return the expected symbols for each outgoing transition of {@code s}. /// LL1Analyzer.prototype.getDecisionLookahead = function(s) { if (s === null) { return null; } var count = s.transitions.length; var look = []; for(var alt=0; alt< count; alt++) { look[alt] = new IntervalSet(); var lookBusy = new Set(); var seeThruPreds = false; // fail to get lookahead upon pred this._LOOK(s.transition(alt).target, null, PredictionContext.EMPTY, look[alt], lookBusy, new BitSet(), seeThruPreds, false); // Wipe out lookahead for this alternative if we found nothing // or we had a predicate when we !seeThruPreds if (look[alt].length===0 || look[alt].contains(LL1Analyzer.HIT_PRED)) { look[alt] = null; } } return look; }; //* // Compute set of tokens that can follow {@code s} in the ATN in the // specified {@code ctx}. // //

If {@code ctx} is {@code null} and the end of the rule containing // {@code s} is reached, {@link Token//EPSILON} is added to the result set. // If {@code ctx} is not {@code null} and the end of the outermost rule is // reached, {@link Token//EOF} is added to the result set.

// // @param s the ATN state // @param stopState the ATN state to stop at. This can be a // {@link BlockEndState} to detect epsilon paths through a closure. // @param ctx the complete parser context, or {@code null} if the context // should be ignored // // @return The set of tokens that can follow {@code s} in the ATN in the // specified {@code ctx}. /// LL1Analyzer.prototype.LOOK = function(s, stopState, ctx) { var r = new IntervalSet(); var seeThruPreds = true; // ignore preds; get all lookahead ctx = ctx || null; var lookContext = ctx!==null ? predictionContextFromRuleContext(s.atn, ctx) : null; this._LOOK(s, stopState, lookContext, r, new Set(), new BitSet(), seeThruPreds, true); return r; }; //* // Compute set of tokens that can follow {@code s} in the ATN in the // specified {@code ctx}. // //

If {@code ctx} is {@code null} and {@code stopState} or the end of the // rule containing {@code s} is reached, {@link Token//EPSILON} is added to // the result set. If {@code ctx} is not {@code null} and {@code addEOF} is // {@code true} and {@code stopState} or the end of the outermost rule is // reached, {@link Token//EOF} is added to the result set.

// // @param s the ATN state. // @param stopState the ATN state to stop at. This can be a // {@link BlockEndState} to detect epsilon paths through a closure. // @param ctx The outer context, or {@code null} if the outer context should // not be used. // @param look The result lookahead set. // @param lookBusy A set used for preventing epsilon closures in the ATN // from causing a stack overflow. Outside code should pass // {@code new Set} for this argument. // @param calledRuleStack A set used for preventing left recursion in the // ATN from causing a stack overflow. Outside code should pass // {@code new BitSet()} for this argument. // @param seeThruPreds {@code true} to true semantic predicates as // implicitly {@code true} and "see through them", otherwise {@code false} // to treat semantic predicates as opaque and add {@link //HIT_PRED} to the // result if one is encountered. // @param addEOF Add {@link Token//EOF} to the result if the end of the // outermost context is reached. This parameter has no effect if {@code ctx} // is {@code null}. /// LL1Analyzer.prototype._LOOK = function(s, stopState , ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) { var c = new ATNConfig({state:s, alt:0, context: ctx}, null); if (lookBusy.contains(c)) { return; } lookBusy.add(c); if (s === stopState) { if (ctx ===null) { look.addOne(Token.EPSILON); return; } else if (ctx.isEmpty() && addEOF) { look.addOne(Token.EOF); return; } } if (s instanceof RuleStopState ) { if (ctx ===null) { look.addOne(Token.EPSILON); return; } else if (ctx.isEmpty() && addEOF) { look.addOne(Token.EOF); return; } if (ctx !== PredictionContext.EMPTY) { // run thru all possible stack tops in ctx for(var i=0; i>> 16) * c1) & 0xffff) << 16))) & 0xffffffff; k1 = (k1 << 15) | (k1 >>> 17); k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff; h1 ^= k1; h1 = (h1 << 13) | (h1 >>> 19); h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff; h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16)); } k1 = 0; switch (remainder) { case 3: k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16; case 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8; case 1: k1 ^= (key.charCodeAt(i) & 0xff); k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff; k1 = (k1 << 15) | (k1 >>> 17); k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff; h1 ^= k1; } h1 ^= key.length; h1 ^= h1 >>> 16; h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff; h1 ^= h1 >>> 13; h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff; h1 ^= h1 >>> 16; return h1 >>> 0; }; function standardEqualsFunction(a, b) { return a.equals(b); } function standardHashCodeFunction(a) { return a.hashCode(); } function Set(hashFunction, equalsFunction) { this.data = {}; this.hashFunction = hashFunction || standardHashCodeFunction; this.equalsFunction = equalsFunction || standardEqualsFunction; return this; } Object.defineProperty(Set.prototype, "length", { get: function () { var l = 0; for (var key in this.data) { if (key.indexOf("hash_") === 0) { l = l + this.data[key].length; } } return l; } }); Set.prototype.add = function (value) { var hash = this.hashFunction(value); var key = "hash_" + hash; if (key in this.data) { var values = this.data[key]; for (var i = 0; i < values.length; i++) { if (this.equalsFunction(value, values[i])) { return values[i]; } } values.push(value); return value; } else { this.data[key] = [value]; return value; } }; Set.prototype.contains = function (value) { return this.get(value) != null; }; Set.prototype.get = function (value) { var hash = this.hashFunction(value); var key = "hash_" + hash; if (key in this.data) { var values = this.data[key]; for (var i = 0; i < values.length; i++) { if (this.equalsFunction(value, values[i])) { return values[i]; } } } return null; }; Set.prototype.values = function () { var l = []; for (var key in this.data) { if (key.indexOf("hash_") === 0) { l = l.concat(this.data[key]); } } return l; }; Set.prototype.toString = function () { return arrayToString(this.values()); }; function BitSet() { this.data = []; return this; } BitSet.prototype.add = function (value) { this.data[value] = true; }; BitSet.prototype.or = function (set) { var bits = this; Object.keys(set.data).map(function (alt) { bits.add(alt); }); }; BitSet.prototype.remove = function (value) { delete this.data[value]; }; BitSet.prototype.contains = function (value) { return this.data[value] === true; }; BitSet.prototype.values = function () { return Object.keys(this.data); }; BitSet.prototype.minValue = function () { return Math.min.apply(null, this.values()); }; BitSet.prototype.hashCode = function () { var hash = new Hash(); hash.update(this.values()); return hash.finish(); }; BitSet.prototype.equals = function (other) { if (!(other instanceof BitSet)) { return false; } return this.hashCode() === other.hashCode(); }; Object.defineProperty(BitSet.prototype, "length", { get: function () { return this.values().length; } }); BitSet.prototype.toString = function () { return "{" + this.values().join(", ") + "}"; }; function Map(hashFunction, equalsFunction) { this.data = {}; this.hashFunction = hashFunction || standardHashCodeFunction; this.equalsFunction = equalsFunction || standardEqualsFunction; return this; } Object.defineProperty(Map.prototype, "length", { get: function () { var l = 0; for (var hashKey in this.data) { if (hashKey.indexOf("hash_") === 0) { l = l + this.data[hashKey].length; } } return l; } }); Map.prototype.put = function (key, value) { var hashKey = "hash_" + this.hashFunction(key); if (hashKey in this.data) { var entries = this.data[hashKey]; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; if (this.equalsFunction(key, entry.key)) { var oldValue = entry.value; entry.value = value; return oldValue; } } entries.push({key:key, value:value}); return value; } else { this.data[hashKey] = [{key:key, value:value}]; return value; } }; Map.prototype.containsKey = function (key) { var hashKey = "hash_" + this.hashFunction(key); if(hashKey in this.data) { var entries = this.data[hashKey]; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; if (this.equalsFunction(key, entry.key)) return true; } } return false; }; Map.prototype.get = function (key) { var hashKey = "hash_" + this.hashFunction(key); if(hashKey in this.data) { var entries = this.data[hashKey]; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; if (this.equalsFunction(key, entry.key)) return entry.value; } } return null; }; Map.prototype.entries = function () { var l = []; for (var key in this.data) { if (key.indexOf("hash_") === 0) { l = l.concat(this.data[key]); } } return l; }; Map.prototype.getKeys = function () { return this.entries().map(function(e) { return e.key; }); }; Map.prototype.getValues = function () { return this.entries().map(function(e) { return e.value; }); }; Map.prototype.toString = function () { var ss = this.entries().map(function(entry) { return '{' + entry.key + ':' + entry.value + '}'; }); return '[' + ss.join(", ") + ']'; }; function AltDict() { this.data = {}; return this; } AltDict.prototype.get = function (key) { key = "k-" + key; if (key in this.data) { return this.data[key]; } else { return null; } }; AltDict.prototype.put = function (key, value) { key = "k-" + key; this.data[key] = value; }; AltDict.prototype.values = function () { var data = this.data; var keys = Object.keys(this.data); return keys.map(function (key) { return data[key]; }); }; function DoubleDict() { return this; } function Hash() { this.count = 0; this.hash = 0; return this; } Hash.prototype.update = function () { for(var i=0;i>> (32 - 15)); k = k * 0x1B873593; this.count = this.count + 1; var hash = this.hash ^ k; hash = (hash << 13) | (hash >>> (32 - 13)); hash = hash * 5 + 0xE6546B64; this.hash = hash; } } } Hash.prototype.finish = function () { var hash = this.hash ^ (this.count * 4); hash = hash ^ (hash >>> 16); hash = hash * 0x85EBCA6B; hash = hash ^ (hash >>> 13); hash = hash * 0xC2B2AE35; hash = hash ^ (hash >>> 16); return hash; } function hashStuff() { var hash = new Hash(); hash.update.apply(arguments); return hash.finish(); } DoubleDict.prototype.get = function (a, b) { var d = this[a] || null; return d === null ? null : (d[b] || null); }; DoubleDict.prototype.set = function (a, b, o) { var d = this[a] || null; if (d === null) { d = {}; this[a] = d; } d[b] = o; }; function escapeWhitespace(s, escapeSpaces) { s = s.replace(/\t/g, "\\t") .replace(/\n/g, "\\n") .replace(/\r/g, "\\r"); if (escapeSpaces) { s = s.replace(/ /g, "\u00B7"); } return s; } function titleCase(str) { return str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1); }); }; function equalArrays(a, b) { if (!Array.isArray(a) || !Array.isArray(b)) return false; if (a == b) return true; if (a.length != b.length) return false; for (var i = 0; i < a.length; i++) { if (a[i] == b[i]) continue; if (!a[i].equals(b[i])) return false; } return true; }; exports.Hash = Hash; exports.Set = Set; exports.Map = Map; exports.BitSet = BitSet; exports.AltDict = AltDict; exports.DoubleDict = DoubleDict; exports.hashStuff = hashStuff; exports.escapeWhitespace = escapeWhitespace; exports.arrayToString = arrayToString; exports.titleCase = titleCase; exports.equalArrays = equalArrays; /***/ }), /* 6 */ /***/ (function(module, exports) { /* 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. */ // // A token has properties: text, type, line, character position in the line // (so we can ignore tabs), token channel, index, and source from which // we obtained this token. function Token() { this.source = null; this.type = null; // token type of the token this.channel = null; // The parser ignores everything not on DEFAULT_CHANNEL this.start = null; // optional; return -1 if not implemented. this.stop = null; // optional; return -1 if not implemented. this.tokenIndex = null; // from 0..n-1 of the token object in the input stream this.line = null; // line=1..n of the 1st character this.column = null; // beginning of the line at which it occurs, 0..n-1 this._text = null; // text of the token. return this; } Token.INVALID_TYPE = 0; // During lookahead operations, this "token" signifies we hit rule end ATN state // and did not follow it despite needing to. Token.EPSILON = -2; Token.MIN_USER_TOKEN_TYPE = 1; Token.EOF = -1; // All tokens go to the parser (unless skip() is called in that rule) // on a particular "channel". The parser tunes to a particular channel // so that whitespace etc... can go to the parser on a "hidden" channel. Token.DEFAULT_CHANNEL = 0; // Anything on different channel than DEFAULT_CHANNEL is not parsed // by parser. Token.HIDDEN_CHANNEL = 1; // Explicitly set the text for this token. If {code text} is not // {@code null}, then {@link //getText} will return this value rather than // extracting the text from the input. // // @param text The explicit text of the token, or {@code null} if the text // should be obtained from the input along with the start and stop indexes // of the token. Object.defineProperty(Token.prototype, "text", { get : function() { return this._text; }, set : function(text) { this._text = text; } }); Token.prototype.getTokenSource = function() { return this.source[0]; }; Token.prototype.getInputStream = function() { return this.source[1]; }; function CommonToken(source, type, channel, start, stop) { Token.call(this); this.source = source !== undefined ? source : CommonToken.EMPTY_SOURCE; this.type = type !== undefined ? type : null; this.channel = channel !== undefined ? channel : Token.DEFAULT_CHANNEL; this.start = start !== undefined ? start : -1; this.stop = stop !== undefined ? stop : -1; this.tokenIndex = -1; if (this.source[0] !== null) { this.line = source[0].line; this.column = source[0].column; } else { this.column = -1; } return this; } CommonToken.prototype = Object.create(Token.prototype); CommonToken.prototype.constructor = CommonToken; // An empty {@link Pair} which is used as the default value of // {@link //source} for tokens that do not have a source. CommonToken.EMPTY_SOURCE = [ null, null ]; // Constructs a new {@link CommonToken} as a copy of another {@link Token}. // //

// If {@code oldToken} is also a {@link CommonToken} instance, the newly // constructed token will share a reference to the {@link //text} field and // the {@link Pair} stored in {@link //source}. Otherwise, {@link //text} will // be assigned the result of calling {@link //getText}, and {@link //source} // will be constructed from the result of {@link Token//getTokenSource} and // {@link Token//getInputStream}.

// // @param oldToken The token to copy. // CommonToken.prototype.clone = function() { var t = new CommonToken(this.source, this.type, this.channel, this.start, this.stop); t.tokenIndex = this.tokenIndex; t.line = this.line; t.column = this.column; t.text = this.text; return t; }; Object.defineProperty(CommonToken.prototype, "text", { get : function() { if (this._text !== null) { return this._text; } var input = this.getInputStream(); if (input === null) { return null; } var n = input.size; if (this.start < n && this.stop < n) { return input.getText(this.start, this.stop); } else { return ""; } }, set : function(text) { this._text = text; } }); CommonToken.prototype.toString = function() { var txt = this.text; if (txt !== null) { txt = txt.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t"); } else { txt = ""; } return "[@" + this.tokenIndex + "," + this.start + ":" + this.stop + "='" + txt + "',<" + this.type + ">" + (this.channel > 0 ? ",channel=" + this.channel : "") + "," + this.line + ":" + this.column + "]"; }; exports.Token = Token; exports.CommonToken = CommonToken; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// // A tuple: (ATN state, predicted alt, syntactic, semantic context). // The syntactic context is a graph-structured stack node whose // path(s) to the root is the rule invocation(s) // chain used to arrive at the state. The semantic context is // the tree of semantic predicates encountered before reaching // an ATN state. /// var DecisionState = __webpack_require__(8).DecisionState; var SemanticContext = __webpack_require__(9).SemanticContext; var Hash = __webpack_require__(5).Hash; function checkParams(params, isCfg) { if(params===null) { var result = { state:null, alt:null, context:null, semanticContext:null }; if(isCfg) { result.reachesIntoOuterContext = 0; } return result; } else { var props = {}; props.state = params.state || null; props.alt = (params.alt === undefined) ? null : params.alt; props.context = params.context || null; props.semanticContext = params.semanticContext || null; if(isCfg) { props.reachesIntoOuterContext = params.reachesIntoOuterContext || 0; props.precedenceFilterSuppressed = params.precedenceFilterSuppressed || false; } return props; } } function ATNConfig(params, config) { this.checkContext(params, config); params = checkParams(params); config = checkParams(config, true); // The ATN state associated with this configuration/// this.state = params.state!==null ? params.state : config.state; // What alt (or lexer rule) is predicted by this configuration/// this.alt = params.alt!==null ? params.alt : config.alt; // The stack of invoking states leading to the rule/states associated // with this config. We track only those contexts pushed during // execution of the ATN simulator. this.context = params.context!==null ? params.context : config.context; this.semanticContext = params.semanticContext!==null ? params.semanticContext : (config.semanticContext!==null ? config.semanticContext : SemanticContext.NONE); // We cannot execute predicates dependent upon local context unless // we know for sure we are in the correct context. Because there is // no way to do this efficiently, we simply cannot evaluate // dependent predicates unless we are in the rule that initially // invokes the ATN simulator. // // closure() tracks the depth of how far we dip into the // outer context: depth > 0. Note that it may not be totally // accurate depth since I don't ever decrement. TODO: make it a boolean then this.reachesIntoOuterContext = config.reachesIntoOuterContext; this.precedenceFilterSuppressed = config.precedenceFilterSuppressed; return this; } ATNConfig.prototype.checkContext = function(params, config) { if((params.context===null || params.context===undefined) && (config===null || config.context===null || config.context===undefined)) { this.context = null; } }; ATNConfig.prototype.hashCode = function() { var hash = new Hash(); this.updateHashCode(hash); return hash.finish(); }; ATNConfig.prototype.updateHashCode = function(hash) { hash.update(this.state.stateNumber, this.alt, this.context, this.semanticContext); }; // An ATN configuration is equal to another if both have // the same state, they predict the same alternative, and // syntactic/semantic contexts are the same. ATNConfig.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof ATNConfig)) { return false; } else { return this.state.stateNumber===other.state.stateNumber && this.alt===other.alt && (this.context===null ? other.context===null : this.context.equals(other.context)) && this.semanticContext.equals(other.semanticContext) && this.precedenceFilterSuppressed===other.precedenceFilterSuppressed; } }; ATNConfig.prototype.hashCodeForConfigSet = function() { var hash = new Hash(); hash.update(this.state.stateNumber, this.alt, this.semanticContext); return hash.finish(); }; ATNConfig.prototype.equalsForConfigSet = function(other) { if (this === other) { return true; } else if (! (other instanceof ATNConfig)) { return false; } else { return this.state.stateNumber===other.state.stateNumber && this.alt===other.alt && this.semanticContext.equals(other.semanticContext); } }; ATNConfig.prototype.toString = function() { return "(" + this.state + "," + this.alt + (this.context!==null ? ",[" + this.context.toString() + "]" : "") + (this.semanticContext !== SemanticContext.NONE ? ("," + this.semanticContext.toString()) : "") + (this.reachesIntoOuterContext>0 ? (",up=" + this.reachesIntoOuterContext) : "") + ")"; }; function LexerATNConfig(params, config) { ATNConfig.call(this, params, config); // This is the backing field for {@link //getLexerActionExecutor}. var lexerActionExecutor = params.lexerActionExecutor || null; this.lexerActionExecutor = lexerActionExecutor || (config!==null ? config.lexerActionExecutor : null); this.passedThroughNonGreedyDecision = config!==null ? this.checkNonGreedyDecision(config, this.state) : false; return this; } LexerATNConfig.prototype = Object.create(ATNConfig.prototype); LexerATNConfig.prototype.constructor = LexerATNConfig; LexerATNConfig.prototype.updateHashCode = function(hash) { hash.update(this.state.stateNumber, this.alt, this.context, this.semanticContext, this.passedThroughNonGreedyDecision, this.lexerActionExecutor); }; LexerATNConfig.prototype.equals = function(other) { return this === other || (other instanceof LexerATNConfig && this.passedThroughNonGreedyDecision == other.passedThroughNonGreedyDecision && (this.lexerActionExecutor ? this.lexerActionExecutor.equals(other.lexerActionExecutor) : !other.lexerActionExecutor) && ATNConfig.prototype.equals.call(this, other)); }; LexerATNConfig.prototype.hashCodeForConfigSet = LexerATNConfig.prototype.hashCode; LexerATNConfig.prototype.equalsForConfigSet = LexerATNConfig.prototype.equals; LexerATNConfig.prototype.checkNonGreedyDecision = function(source, target) { return source.passedThroughNonGreedyDecision || (target instanceof DecisionState) && target.nonGreedy; }; exports.ATNConfig = ATNConfig; exports.LexerATNConfig = LexerATNConfig; /***/ }), /* 8 */ /***/ (function(module, exports) { // /* 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. */ // // The following images show the relation of states and // {@link ATNState//transitions} for various grammar constructs. // //
    // //
  • Solid edges marked with an &//0949; indicate a required // {@link EpsilonTransition}.
  • // //
  • Dashed edges indicate locations where any transition derived from // {@link Transition} might appear.
  • // //
  • Dashed nodes are place holders for either a sequence of linked // {@link BasicState} states or the inclusion of a block representing a nested // construct in one of the forms below.
  • // //
  • Nodes showing multiple outgoing alternatives with a {@code ...} support // any number of alternatives (one or more). Nodes without the {@code ...} only // support the exact number of alternatives shown in the diagram.
  • // //
// //

Basic Blocks

// //

Rule

// // // //

Block of 1 or more alternatives

// // // //

Greedy Loops

// //

Greedy Closure: {@code (...)*}

// // // //

Greedy Positive Closure: {@code (...)+}

// // // //

Greedy Optional: {@code (...)?}

// // // //

Non-Greedy Loops

// //

Non-Greedy Closure: {@code (...)*?}

// // // //

Non-Greedy Positive Closure: {@code (...)+?}

// // // //

Non-Greedy Optional: {@code (...)??}

// // // var INITIAL_NUM_TRANSITIONS = 4; function ATNState() { // Which ATN are we in? this.atn = null; this.stateNumber = ATNState.INVALID_STATE_NUMBER; this.stateType = null; this.ruleIndex = 0; // at runtime, we don't have Rule objects this.epsilonOnlyTransitions = false; // Track the transitions emanating from this ATN state. this.transitions = []; // Used to cache lookahead during parsing, not used during construction this.nextTokenWithinRule = null; return this; } // constants for serialization ATNState.INVALID_TYPE = 0; ATNState.BASIC = 1; ATNState.RULE_START = 2; ATNState.BLOCK_START = 3; ATNState.PLUS_BLOCK_START = 4; ATNState.STAR_BLOCK_START = 5; ATNState.TOKEN_START = 6; ATNState.RULE_STOP = 7; ATNState.BLOCK_END = 8; ATNState.STAR_LOOP_BACK = 9; ATNState.STAR_LOOP_ENTRY = 10; ATNState.PLUS_LOOP_BACK = 11; ATNState.LOOP_END = 12; ATNState.serializationNames = [ "INVALID", "BASIC", "RULE_START", "BLOCK_START", "PLUS_BLOCK_START", "STAR_BLOCK_START", "TOKEN_START", "RULE_STOP", "BLOCK_END", "STAR_LOOP_BACK", "STAR_LOOP_ENTRY", "PLUS_LOOP_BACK", "LOOP_END" ]; ATNState.INVALID_STATE_NUMBER = -1; ATNState.prototype.toString = function() { return this.stateNumber; }; ATNState.prototype.equals = function(other) { if (other instanceof ATNState) { return this.stateNumber===other.stateNumber; } else { return false; } }; ATNState.prototype.isNonGreedyExitState = function() { return false; }; ATNState.prototype.addTransition = function(trans, index) { if(index===undefined) { index = -1; } if (this.transitions.length===0) { this.epsilonOnlyTransitions = trans.isEpsilon; } else if(this.epsilonOnlyTransitions !== trans.isEpsilon) { this.epsilonOnlyTransitions = false; } if (index===-1) { this.transitions.push(trans); } else { this.transitions.splice(index, 1, trans); } }; function BasicState() { ATNState.call(this); this.stateType = ATNState.BASIC; return this; } BasicState.prototype = Object.create(ATNState.prototype); BasicState.prototype.constructor = BasicState; function DecisionState() { ATNState.call(this); this.decision = -1; this.nonGreedy = false; return this; } DecisionState.prototype = Object.create(ATNState.prototype); DecisionState.prototype.constructor = DecisionState; // The start of a regular {@code (...)} block. function BlockStartState() { DecisionState.call(this); this.endState = null; return this; } BlockStartState.prototype = Object.create(DecisionState.prototype); BlockStartState.prototype.constructor = BlockStartState; function BasicBlockStartState() { BlockStartState.call(this); this.stateType = ATNState.BLOCK_START; return this; } BasicBlockStartState.prototype = Object.create(BlockStartState.prototype); BasicBlockStartState.prototype.constructor = BasicBlockStartState; // Terminal node of a simple {@code (a|b|c)} block. function BlockEndState() { ATNState.call(this); this.stateType = ATNState.BLOCK_END; this.startState = null; return this; } BlockEndState.prototype = Object.create(ATNState.prototype); BlockEndState.prototype.constructor = BlockEndState; // The last node in the ATN for a rule, unless that rule is the start symbol. // In that case, there is one transition to EOF. Later, we might encode // references to all calls to this rule to compute FOLLOW sets for // error handling. // function RuleStopState() { ATNState.call(this); this.stateType = ATNState.RULE_STOP; return this; } RuleStopState.prototype = Object.create(ATNState.prototype); RuleStopState.prototype.constructor = RuleStopState; function RuleStartState() { ATNState.call(this); this.stateType = ATNState.RULE_START; this.stopState = null; this.isPrecedenceRule = false; return this; } RuleStartState.prototype = Object.create(ATNState.prototype); RuleStartState.prototype.constructor = RuleStartState; // Decision state for {@code A+} and {@code (A|B)+}. It has two transitions: // one to the loop back to start of the block and one to exit. // function PlusLoopbackState() { DecisionState.call(this); this.stateType = ATNState.PLUS_LOOP_BACK; return this; } PlusLoopbackState.prototype = Object.create(DecisionState.prototype); PlusLoopbackState.prototype.constructor = PlusLoopbackState; // Start of {@code (A|B|...)+} loop. Technically a decision state, but // we don't use for code generation; somebody might need it, so I'm defining // it for completeness. In reality, the {@link PlusLoopbackState} node is the // real decision-making note for {@code A+}. // function PlusBlockStartState() { BlockStartState.call(this); this.stateType = ATNState.PLUS_BLOCK_START; this.loopBackState = null; return this; } PlusBlockStartState.prototype = Object.create(BlockStartState.prototype); PlusBlockStartState.prototype.constructor = PlusBlockStartState; // The block that begins a closure loop. function StarBlockStartState() { BlockStartState.call(this); this.stateType = ATNState.STAR_BLOCK_START; return this; } StarBlockStartState.prototype = Object.create(BlockStartState.prototype); StarBlockStartState.prototype.constructor = StarBlockStartState; function StarLoopbackState() { ATNState.call(this); this.stateType = ATNState.STAR_LOOP_BACK; return this; } StarLoopbackState.prototype = Object.create(ATNState.prototype); StarLoopbackState.prototype.constructor = StarLoopbackState; function StarLoopEntryState() { DecisionState.call(this); this.stateType = ATNState.STAR_LOOP_ENTRY; this.loopBackState = null; // Indicates whether this state can benefit from a precedence DFA during SLL decision making. this.isPrecedenceDecision = null; return this; } StarLoopEntryState.prototype = Object.create(DecisionState.prototype); StarLoopEntryState.prototype.constructor = StarLoopEntryState; // Mark the end of a * or + loop. function LoopEndState() { ATNState.call(this); this.stateType = ATNState.LOOP_END; this.loopBackState = null; return this; } LoopEndState.prototype = Object.create(ATNState.prototype); LoopEndState.prototype.constructor = LoopEndState; // The Tokens rule start state linking to each lexer rule start state */ function TokensStartState() { DecisionState.call(this); this.stateType = ATNState.TOKEN_START; return this; } TokensStartState.prototype = Object.create(DecisionState.prototype); TokensStartState.prototype.constructor = TokensStartState; exports.ATNState = ATNState; exports.BasicState = BasicState; exports.DecisionState = DecisionState; exports.BlockStartState = BlockStartState; exports.BlockEndState = BlockEndState; exports.LoopEndState = LoopEndState; exports.RuleStartState = RuleStartState; exports.RuleStopState = RuleStopState; exports.TokensStartState = TokensStartState; exports.PlusLoopbackState = PlusLoopbackState; exports.StarLoopbackState = StarLoopbackState; exports.StarLoopEntryState = StarLoopEntryState; exports.PlusBlockStartState = PlusBlockStartState; exports.StarBlockStartState = StarBlockStartState; exports.BasicBlockStartState = BasicBlockStartState; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // A tree structure used to record the semantic context in which // an ATN configuration is valid. It's either a single predicate, // a conjunction {@code p1&&p2}, or a sum of products {@code p1||p2}. // //

I have scoped the {@link AND}, {@link OR}, and {@link Predicate} subclasses of // {@link SemanticContext} within the scope of this outer class.

// var Set = __webpack_require__(5).Set; var Hash = __webpack_require__(5).Hash; function SemanticContext() { return this; } SemanticContext.prototype.hashCode = function() { var hash = new Hash(); this.updateHashCode(hash); return hash.finish(); }; // For context independent predicates, we evaluate them without a local // context (i.e., null context). That way, we can evaluate them without // having to create proper rule-specific context during prediction (as // opposed to the parser, which creates them naturally). In a practical // sense, this avoids a cast exception from RuleContext to myruleContext. // //

For context dependent predicates, we must pass in a local context so that // references such as $arg evaluate properly as _localctx.arg. We only // capture context dependent predicates in the context in which we begin // prediction, so we passed in the outer context here in case of context // dependent predicate evaluation.

// SemanticContext.prototype.evaluate = function(parser, outerContext) { }; // // Evaluate the precedence predicates for the context and reduce the result. // // @param parser The parser instance. // @param outerContext The current parser context object. // @return The simplified semantic context after precedence predicates are // evaluated, which will be one of the following values. //
    //
  • {@link //NONE}: if the predicate simplifies to {@code true} after // precedence predicates are evaluated.
  • //
  • {@code null}: if the predicate simplifies to {@code false} after // precedence predicates are evaluated.
  • //
  • {@code this}: if the semantic context is not changed as a result of // precedence predicate evaluation.
  • //
  • A non-{@code null} {@link SemanticContext}: the new simplified // semantic context after precedence predicates are evaluated.
  • //
// SemanticContext.prototype.evalPrecedence = function(parser, outerContext) { return this; }; SemanticContext.andContext = function(a, b) { if (a === null || a === SemanticContext.NONE) { return b; } if (b === null || b === SemanticContext.NONE) { return a; } var result = new AND(a, b); if (result.opnds.length === 1) { return result.opnds[0]; } else { return result; } }; SemanticContext.orContext = function(a, b) { if (a === null) { return b; } if (b === null) { return a; } if (a === SemanticContext.NONE || b === SemanticContext.NONE) { return SemanticContext.NONE; } var result = new OR(a, b); if (result.opnds.length === 1) { return result.opnds[0]; } else { return result; } }; function Predicate(ruleIndex, predIndex, isCtxDependent) { SemanticContext.call(this); this.ruleIndex = ruleIndex === undefined ? -1 : ruleIndex; this.predIndex = predIndex === undefined ? -1 : predIndex; this.isCtxDependent = isCtxDependent === undefined ? false : isCtxDependent; // e.g., $i ref in pred return this; } Predicate.prototype = Object.create(SemanticContext.prototype); Predicate.prototype.constructor = Predicate; //The default {@link SemanticContext}, which is semantically equivalent to //a predicate of the form {@code {true}?}. // SemanticContext.NONE = new Predicate(); Predicate.prototype.evaluate = function(parser, outerContext) { var localctx = this.isCtxDependent ? outerContext : null; return parser.sempred(localctx, this.ruleIndex, this.predIndex); }; Predicate.prototype.updateHashCode = function(hash) { hash.update(this.ruleIndex, this.predIndex, this.isCtxDependent); }; Predicate.prototype.equals = function(other) { if (this === other) { return true; } else if (!(other instanceof Predicate)) { return false; } else { return this.ruleIndex === other.ruleIndex && this.predIndex === other.predIndex && this.isCtxDependent === other.isCtxDependent; } }; Predicate.prototype.toString = function() { return "{" + this.ruleIndex + ":" + this.predIndex + "}?"; }; function PrecedencePredicate(precedence) { SemanticContext.call(this); this.precedence = precedence === undefined ? 0 : precedence; } PrecedencePredicate.prototype = Object.create(SemanticContext.prototype); PrecedencePredicate.prototype.constructor = PrecedencePredicate; PrecedencePredicate.prototype.evaluate = function(parser, outerContext) { return parser.precpred(outerContext, this.precedence); }; PrecedencePredicate.prototype.evalPrecedence = function(parser, outerContext) { if (parser.precpred(outerContext, this.precedence)) { return SemanticContext.NONE; } else { return null; } }; PrecedencePredicate.prototype.compareTo = function(other) { return this.precedence - other.precedence; }; PrecedencePredicate.prototype.updateHashCode = function(hash) { hash.update(31); }; PrecedencePredicate.prototype.equals = function(other) { if (this === other) { return true; } else if (!(other instanceof PrecedencePredicate)) { return false; } else { return this.precedence === other.precedence; } }; PrecedencePredicate.prototype.toString = function() { return "{"+this.precedence+">=prec}?"; }; PrecedencePredicate.filterPrecedencePredicates = function(set) { var result = []; set.values().map( function(context) { if (context instanceof PrecedencePredicate) { result.push(context); } }); return result; }; // A semantic context which is true whenever none of the contained contexts // is false. // function AND(a, b) { SemanticContext.call(this); var operands = new Set(); if (a instanceof AND) { a.opnds.map(function(o) { operands.add(o); }); } else { operands.add(a); } if (b instanceof AND) { b.opnds.map(function(o) { operands.add(o); }); } else { operands.add(b); } var precedencePredicates = PrecedencePredicate.filterPrecedencePredicates(operands); if (precedencePredicates.length > 0) { // interested in the transition with the lowest precedence var reduced = null; precedencePredicates.map( function(p) { if(reduced===null || p.precedence // The evaluation of predicates by this context is short-circuiting, but // unordered.

// AND.prototype.evaluate = function(parser, outerContext) { for (var i = 0; i < this.opnds.length; i++) { if (!this.opnds[i].evaluate(parser, outerContext)) { return false; } } return true; }; AND.prototype.evalPrecedence = function(parser, outerContext) { var differs = false; var operands = []; for (var i = 0; i < this.opnds.length; i++) { var context = this.opnds[i]; var evaluated = context.evalPrecedence(parser, outerContext); differs |= (evaluated !== context); if (evaluated === null) { // The AND context is false if any element is false return null; } else if (evaluated !== SemanticContext.NONE) { // Reduce the result by skipping true elements operands.push(evaluated); } } if (!differs) { return this; } if (operands.length === 0) { // all elements were true, so the AND context is true return SemanticContext.NONE; } var result = null; operands.map(function(o) { result = result === null ? o : SemanticContext.andContext(result, o); }); return result; }; AND.prototype.toString = function() { var s = ""; this.opnds.map(function(o) { s += "&& " + o.toString(); }); return s.length > 3 ? s.slice(3) : s; }; // // A semantic context which is true whenever at least one of the contained // contexts is true. // function OR(a, b) { SemanticContext.call(this); var operands = new Set(); if (a instanceof OR) { a.opnds.map(function(o) { operands.add(o); }); } else { operands.add(a); } if (b instanceof OR) { b.opnds.map(function(o) { operands.add(o); }); } else { operands.add(b); } var precedencePredicates = PrecedencePredicate.filterPrecedencePredicates(operands); if (precedencePredicates.length > 0) { // interested in the transition with the highest precedence var s = precedencePredicates.sort(function(a, b) { return a.compareTo(b); }); var reduced = s[s.length-1]; operands.add(reduced); } this.opnds = operands.values(); return this; } OR.prototype = Object.create(SemanticContext.prototype); OR.prototype.constructor = OR; OR.prototype.constructor = function(other) { if (this === other) { return true; } else if (!(other instanceof OR)) { return false; } else { return this.opnds === other.opnds; } }; OR.prototype.updateHashCode = function(hash) { hash.update(this.opnds, "OR"); }; //

// The evaluation of predicates by this context is short-circuiting, but // unordered.

// OR.prototype.evaluate = function(parser, outerContext) { for (var i = 0; i < this.opnds.length; i++) { if (this.opnds[i].evaluate(parser, outerContext)) { return true; } } return false; }; OR.prototype.evalPrecedence = function(parser, outerContext) { var differs = false; var operands = []; for (var i = 0; i < this.opnds.length; i++) { var context = this.opnds[i]; var evaluated = context.evalPrecedence(parser, outerContext); differs |= (evaluated !== context); if (evaluated === SemanticContext.NONE) { // The OR context is true if any element is true return SemanticContext.NONE; } else if (evaluated !== null) { // Reduce the result by skipping false elements operands.push(evaluated); } } if (!differs) { return this; } if (operands.length === 0) { // all elements were false, so the OR context is false return null; } var result = null; operands.map(function(o) { return result === null ? o : SemanticContext.orContext(result, o); }); return result; }; OR.prototype.toString = function() { var s = ""; this.opnds.map(function(o) { s += "|| " + o.toString(); }); return s.length > 3 ? s.slice(3) : s; }; exports.SemanticContext = SemanticContext; exports.PrecedencePredicate = PrecedencePredicate; exports.Predicate = Predicate; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ /*jslint smarttabs:true */ var Token = __webpack_require__(6).Token; /* stop is not included! */ function Interval(start, stop) { this.start = start; this.stop = stop; return this; } Interval.prototype.contains = function(item) { return item >= this.start && item < this.stop; }; Interval.prototype.toString = function() { if(this.start===this.stop-1) { return this.start.toString(); } else { return this.start.toString() + ".." + (this.stop-1).toString(); } }; Object.defineProperty(Interval.prototype, "length", { get : function() { return this.stop - this.start; } }); function IntervalSet() { this.intervals = null; this.readOnly = false; } IntervalSet.prototype.first = function(v) { if (this.intervals === null || this.intervals.length===0) { return Token.INVALID_TYPE; } else { return this.intervals[0].start; } }; IntervalSet.prototype.addOne = function(v) { this.addInterval(new Interval(v, v + 1)); }; IntervalSet.prototype.addRange = function(l, h) { this.addInterval(new Interval(l, h + 1)); }; IntervalSet.prototype.addInterval = function(v) { if (this.intervals === null) { this.intervals = []; this.intervals.push(v); } else { // find insert pos for (var k = 0; k < this.intervals.length; k++) { var i = this.intervals[k]; // distinct range -> insert if (v.stop < i.start) { this.intervals.splice(k, 0, v); return; } // contiguous range -> adjust else if (v.stop === i.start) { this.intervals[k].start = v.start; return; } // overlapping range -> adjust and reduce else if (v.start <= i.stop) { this.intervals[k] = new Interval(Math.min(i.start, v.start), Math.max(i.stop, v.stop)); this.reduce(k); return; } } // greater than any existing this.intervals.push(v); } }; IntervalSet.prototype.addSet = function(other) { if (other.intervals !== null) { for (var k = 0; k < other.intervals.length; k++) { var i = other.intervals[k]; this.addInterval(new Interval(i.start, i.stop)); } } return this; }; IntervalSet.prototype.reduce = function(k) { // only need to reduce if k is not the last if (k < this.intervalslength - 1) { var l = this.intervals[k]; var r = this.intervals[k + 1]; // if r contained in l if (l.stop >= r.stop) { this.intervals.pop(k + 1); this.reduce(k); } else if (l.stop >= r.start) { this.intervals[k] = new Interval(l.start, r.stop); this.intervals.pop(k + 1); } } }; IntervalSet.prototype.complement = function(start, stop) { var result = new IntervalSet(); result.addInterval(new Interval(start,stop+1)); for(var i=0; ii.start && v.stop=i.stop) { this.intervals.splice(k, 1); k = k - 1; // need another pass } // check for lower boundary else if(v.start"); } else { names.push("'" + String.fromCharCode(v.start) + "'"); } } else { names.push("'" + String.fromCharCode(v.start) + "'..'" + String.fromCharCode(v.stop-1) + "'"); } } if (names.length > 1) { return "{" + names.join(", ") + "}"; } else { return names[0]; } }; IntervalSet.prototype.toIndexString = function() { var names = []; for (var i = 0; i < this.intervals.length; i++) { var v = this.intervals[i]; if(v.stop===v.start+1) { if ( v.start===Token.EOF ) { names.push(""); } else { names.push(v.start.toString()); } } else { names.push(v.start.toString() + ".." + (v.stop-1).toString()); } } if (names.length > 1) { return "{" + names.join(", ") + "}"; } else { return names[0]; } }; IntervalSet.prototype.toTokenString = function(literalNames, symbolicNames) { var names = []; for (var i = 0; i < this.intervals.length; i++) { var v = this.intervals[i]; for (var j = v.start; j < v.stop; j++) { names.push(this.elementName(literalNames, symbolicNames, j)); } } if (names.length > 1) { return "{" + names.join(", ") + "}"; } else { return names[0]; } }; IntervalSet.prototype.elementName = function(literalNames, symbolicNames, a) { if (a === Token.EOF) { return ""; } else if (a === Token.EPSILON) { return ""; } else { return literalNames[a] || symbolicNames[a]; } }; exports.Interval = Interval; exports.IntervalSet = IntervalSet; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ // // An ATN transition between any two ATN states. Subclasses define // atom, set, epsilon, action, predicate, rule transitions. // //

This is a one way link. It emanates from a state (usually via a list of // transitions) and has a target state.

// //

Since we never have to change the ATN transitions once we construct it, // we can fix these transitions as specific classes. The DFA transitions // on the other hand need to update the labels as it adds transitions to // the states. We'll use the term Edge for the DFA to distinguish them from // ATN transitions.

var Token = __webpack_require__(6).Token; var Interval = __webpack_require__(10).Interval; var IntervalSet = __webpack_require__(10).IntervalSet; var Predicate = __webpack_require__(9).Predicate; var PrecedencePredicate = __webpack_require__(9).PrecedencePredicate; function Transition (target) { // The target of this transition. if (target===undefined || target===null) { throw "target cannot be null."; } this.target = target; // Are we epsilon, action, sempred? this.isEpsilon = false; this.label = null; return this; } // constants for serialization Transition.EPSILON = 1; Transition.RANGE = 2; Transition.RULE = 3; Transition.PREDICATE = 4; // e.g., {isType(input.LT(1))}? Transition.ATOM = 5; Transition.ACTION = 6; Transition.SET = 7; // ~(A|B) or ~atom, wildcard, which convert to next 2 Transition.NOT_SET = 8; Transition.WILDCARD = 9; Transition.PRECEDENCE = 10; Transition.serializationNames = [ "INVALID", "EPSILON", "RANGE", "RULE", "PREDICATE", "ATOM", "ACTION", "SET", "NOT_SET", "WILDCARD", "PRECEDENCE" ]; Transition.serializationTypes = { EpsilonTransition: Transition.EPSILON, RangeTransition: Transition.RANGE, RuleTransition: Transition.RULE, PredicateTransition: Transition.PREDICATE, AtomTransition: Transition.ATOM, ActionTransition: Transition.ACTION, SetTransition: Transition.SET, NotSetTransition: Transition.NOT_SET, WildcardTransition: Transition.WILDCARD, PrecedencePredicateTransition: Transition.PRECEDENCE }; // TODO: make all transitions sets? no, should remove set edges function AtomTransition(target, label) { Transition.call(this, target); this.label_ = label; // The token type or character value; or, signifies special label. this.label = this.makeLabel(); this.serializationType = Transition.ATOM; return this; } AtomTransition.prototype = Object.create(Transition.prototype); AtomTransition.prototype.constructor = AtomTransition; AtomTransition.prototype.makeLabel = function() { var s = new IntervalSet(); s.addOne(this.label_); return s; }; AtomTransition.prototype.matches = function( symbol, minVocabSymbol, maxVocabSymbol) { return this.label_ === symbol; }; AtomTransition.prototype.toString = function() { return this.label_; }; function RuleTransition(ruleStart, ruleIndex, precedence, followState) { Transition.call(this, ruleStart); this.ruleIndex = ruleIndex; // ptr to the rule definition object for this rule ref this.precedence = precedence; this.followState = followState; // what node to begin computations following ref to rule this.serializationType = Transition.RULE; this.isEpsilon = true; return this; } RuleTransition.prototype = Object.create(Transition.prototype); RuleTransition.prototype.constructor = RuleTransition; RuleTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return false; }; function EpsilonTransition(target, outermostPrecedenceReturn) { Transition.call(this, target); this.serializationType = Transition.EPSILON; this.isEpsilon = true; this.outermostPrecedenceReturn = outermostPrecedenceReturn; return this; } EpsilonTransition.prototype = Object.create(Transition.prototype); EpsilonTransition.prototype.constructor = EpsilonTransition; EpsilonTransition.prototype.matches = function( symbol, minVocabSymbol, maxVocabSymbol) { return false; }; EpsilonTransition.prototype.toString = function() { return "epsilon"; }; function RangeTransition(target, start, stop) { Transition.call(this, target); this.serializationType = Transition.RANGE; this.start = start; this.stop = stop; this.label = this.makeLabel(); return this; } RangeTransition.prototype = Object.create(Transition.prototype); RangeTransition.prototype.constructor = RangeTransition; RangeTransition.prototype.makeLabel = function() { var s = new IntervalSet(); s.addRange(this.start, this.stop); return s; }; RangeTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return symbol >= this.start && symbol <= this.stop; }; RangeTransition.prototype.toString = function() { return "'" + String.fromCharCode(this.start) + "'..'" + String.fromCharCode(this.stop) + "'"; }; function AbstractPredicateTransition(target) { Transition.call(this, target); return this; } AbstractPredicateTransition.prototype = Object.create(Transition.prototype); AbstractPredicateTransition.prototype.constructor = AbstractPredicateTransition; function PredicateTransition(target, ruleIndex, predIndex, isCtxDependent) { AbstractPredicateTransition.call(this, target); this.serializationType = Transition.PREDICATE; this.ruleIndex = ruleIndex; this.predIndex = predIndex; this.isCtxDependent = isCtxDependent; // e.g., $i ref in pred this.isEpsilon = true; return this; } PredicateTransition.prototype = Object.create(AbstractPredicateTransition.prototype); PredicateTransition.prototype.constructor = PredicateTransition; PredicateTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return false; }; PredicateTransition.prototype.getPredicate = function() { return new Predicate(this.ruleIndex, this.predIndex, this.isCtxDependent); }; PredicateTransition.prototype.toString = function() { return "pred_" + this.ruleIndex + ":" + this.predIndex; }; function ActionTransition(target, ruleIndex, actionIndex, isCtxDependent) { Transition.call(this, target); this.serializationType = Transition.ACTION; this.ruleIndex = ruleIndex; this.actionIndex = actionIndex===undefined ? -1 : actionIndex; this.isCtxDependent = isCtxDependent===undefined ? false : isCtxDependent; // e.g., $i ref in pred this.isEpsilon = true; return this; } ActionTransition.prototype = Object.create(Transition.prototype); ActionTransition.prototype.constructor = ActionTransition; ActionTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return false; }; ActionTransition.prototype.toString = function() { return "action_" + this.ruleIndex + ":" + this.actionIndex; }; // A transition containing a set of values. function SetTransition(target, set) { Transition.call(this, target); this.serializationType = Transition.SET; if (set !==undefined && set !==null) { this.label = set; } else { this.label = new IntervalSet(); this.label.addOne(Token.INVALID_TYPE); } return this; } SetTransition.prototype = Object.create(Transition.prototype); SetTransition.prototype.constructor = SetTransition; SetTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return this.label.contains(symbol); }; SetTransition.prototype.toString = function() { return this.label.toString(); }; function NotSetTransition(target, set) { SetTransition.call(this, target, set); this.serializationType = Transition.NOT_SET; return this; } NotSetTransition.prototype = Object.create(SetTransition.prototype); NotSetTransition.prototype.constructor = NotSetTransition; NotSetTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return symbol >= minVocabSymbol && symbol <= maxVocabSymbol && !SetTransition.prototype.matches.call(this, symbol, minVocabSymbol, maxVocabSymbol); }; NotSetTransition.prototype.toString = function() { return '~' + SetTransition.prototype.toString.call(this); }; function WildcardTransition(target) { Transition.call(this, target); this.serializationType = Transition.WILDCARD; return this; } WildcardTransition.prototype = Object.create(Transition.prototype); WildcardTransition.prototype.constructor = WildcardTransition; WildcardTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return symbol >= minVocabSymbol && symbol <= maxVocabSymbol; }; WildcardTransition.prototype.toString = function() { return "."; }; function PrecedencePredicateTransition(target, precedence) { AbstractPredicateTransition.call(this, target); this.serializationType = Transition.PRECEDENCE; this.precedence = precedence; this.isEpsilon = true; return this; } PrecedencePredicateTransition.prototype = Object.create(AbstractPredicateTransition.prototype); PrecedencePredicateTransition.prototype.constructor = PrecedencePredicateTransition; PrecedencePredicateTransition.prototype.matches = function(symbol, minVocabSymbol, maxVocabSymbol) { return false; }; PrecedencePredicateTransition.prototype.getPredicate = function() { return new PrecedencePredicate(this.precedence); }; PrecedencePredicateTransition.prototype.toString = function() { return this.precedence + " >= _p"; }; exports.Transition = Transition; exports.AtomTransition = AtomTransition; exports.SetTransition = SetTransition; exports.NotSetTransition = NotSetTransition; exports.RuleTransition = RuleTransition; exports.ActionTransition = ActionTransition; exports.EpsilonTransition = EpsilonTransition; exports.RangeTransition = RangeTransition; exports.WildcardTransition = WildcardTransition; exports.PredicateTransition = PredicateTransition; exports.PrecedencePredicateTransition = PrecedencePredicateTransition; exports.AbstractPredicateTransition = AbstractPredicateTransition; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// var RuleContext = __webpack_require__(13).RuleContext; var Hash = __webpack_require__(5).Hash; function PredictionContext(cachedHashCode) { this.cachedHashCode = cachedHashCode; } // Represents {@code $} in local context prediction, which means wildcard. // {@code//+x =//}. // / PredictionContext.EMPTY = null; // Represents {@code $} in an array in full context mode, when {@code $} // doesn't mean wildcard: {@code $ + x = [$,x]}. Here, // {@code $} = {@link //EMPTY_RETURN_STATE}. // / PredictionContext.EMPTY_RETURN_STATE = 0x7FFFFFFF; PredictionContext.globalNodeCount = 1; PredictionContext.id = PredictionContext.globalNodeCount; // Stores the computed hash code of this {@link PredictionContext}. The hash // code is computed in parts to match the following reference algorithm. // //
	// private int referenceHashCode() {
	// int hash = {@link MurmurHash//initialize MurmurHash.initialize}({@link
	// //INITIAL_HASH});
	//
	// for (int i = 0; i < {@link //size()}; i++) {
	// hash = {@link MurmurHash//update MurmurHash.update}(hash, {@link //getParent
	// getParent}(i));
	// }
	//
	// for (int i = 0; i < {@link //size()}; i++) {
	// hash = {@link MurmurHash//update MurmurHash.update}(hash, {@link
	// //getReturnState getReturnState}(i));
	// }
	//
	// hash = {@link MurmurHash//finish MurmurHash.finish}(hash, 2// {@link
	// //size()});
	// return hash;
	// }
	// 
// / // This means only the {@link //EMPTY} context is in set. PredictionContext.prototype.isEmpty = function() { return this === PredictionContext.EMPTY; }; PredictionContext.prototype.hasEmptyPath = function() { return this.getReturnState(this.length - 1) === PredictionContext.EMPTY_RETURN_STATE; }; PredictionContext.prototype.hashCode = function() { return this.cachedHashCode; }; PredictionContext.prototype.updateHashCode = function(hash) { hash.update(this.cachedHashCode); }; /* function calculateHashString(parent, returnState) { return "" + parent + returnState; } */ // Used to cache {@link PredictionContext} objects. Its used for the shared // context cash associated with contexts in DFA states. This cache // can be used for both lexers and parsers. function PredictionContextCache() { this.cache = {}; return this; } // Add a context to the cache and return it. If the context already exists, // return that one instead and do not add a new context to the cache. // Protect shared cache from unsafe thread access. // PredictionContextCache.prototype.add = function(ctx) { if (ctx === PredictionContext.EMPTY) { return PredictionContext.EMPTY; } var existing = this.cache[ctx] || null; if (existing !== null) { return existing; } this.cache[ctx] = ctx; return ctx; }; PredictionContextCache.prototype.get = function(ctx) { return this.cache[ctx] || null; }; Object.defineProperty(PredictionContextCache.prototype, "length", { get : function() { return this.cache.length; } }); function SingletonPredictionContext(parent, returnState) { var hashCode = 0; if(parent !== null) { var hash = new Hash(); hash.update(parent, returnState); hashCode = hash.finish(); } PredictionContext.call(this, hashCode); this.parentCtx = parent; this.returnState = returnState; } SingletonPredictionContext.prototype = Object.create(PredictionContext.prototype); SingletonPredictionContext.prototype.contructor = SingletonPredictionContext; SingletonPredictionContext.create = function(parent, returnState) { if (returnState === PredictionContext.EMPTY_RETURN_STATE && parent === null) { // someone can pass in the bits of an array ctx that mean $ return PredictionContext.EMPTY; } else { return new SingletonPredictionContext(parent, returnState); } }; Object.defineProperty(SingletonPredictionContext.prototype, "length", { get : function() { return 1; } }); SingletonPredictionContext.prototype.getParent = function(index) { return this.parentCtx; }; SingletonPredictionContext.prototype.getReturnState = function(index) { return this.returnState; }; SingletonPredictionContext.prototype.equals = function(other) { if (this === other) { return true; } else if (!(other instanceof SingletonPredictionContext)) { return false; } else if (this.hashCode() !== other.hashCode()) { return false; // can't be same if hash is different } else { if(this.returnState !== other.returnState) return false; else if(this.parentCtx==null) return other.parentCtx==null else return this.parentCtx.equals(other.parentCtx); } }; SingletonPredictionContext.prototype.toString = function() { var up = this.parentCtx === null ? "" : this.parentCtx.toString(); if (up.length === 0) { if (this.returnState === PredictionContext.EMPTY_RETURN_STATE) { return "$"; } else { return "" + this.returnState; } } else { return "" + this.returnState + " " + up; } }; function EmptyPredictionContext() { SingletonPredictionContext.call(this, null, PredictionContext.EMPTY_RETURN_STATE); return this; } EmptyPredictionContext.prototype = Object.create(SingletonPredictionContext.prototype); EmptyPredictionContext.prototype.constructor = EmptyPredictionContext; EmptyPredictionContext.prototype.isEmpty = function() { return true; }; EmptyPredictionContext.prototype.getParent = function(index) { return null; }; EmptyPredictionContext.prototype.getReturnState = function(index) { return this.returnState; }; EmptyPredictionContext.prototype.equals = function(other) { return this === other; }; EmptyPredictionContext.prototype.toString = function() { return "$"; }; PredictionContext.EMPTY = new EmptyPredictionContext(); function ArrayPredictionContext(parents, returnStates) { // Parent can be null only if full ctx mode and we make an array // from {@link //EMPTY} and non-empty. We merge {@link //EMPTY} by using // null parent and // returnState == {@link //EMPTY_RETURN_STATE}. var h = new Hash(); h.update(parents, returnStates); var hashCode = h.finish(); PredictionContext.call(this, hashCode); this.parents = parents; this.returnStates = returnStates; return this; } ArrayPredictionContext.prototype = Object.create(PredictionContext.prototype); ArrayPredictionContext.prototype.constructor = ArrayPredictionContext; ArrayPredictionContext.prototype.isEmpty = function() { // since EMPTY_RETURN_STATE can only appear in the last position, we // don't need to verify that size==1 return this.returnStates[0] === PredictionContext.EMPTY_RETURN_STATE; }; Object.defineProperty(ArrayPredictionContext.prototype, "length", { get : function() { return this.returnStates.length; } }); ArrayPredictionContext.prototype.getParent = function(index) { return this.parents[index]; }; ArrayPredictionContext.prototype.getReturnState = function(index) { return this.returnStates[index]; }; ArrayPredictionContext.prototype.equals = function(other) { if (this === other) { return true; } else if (!(other instanceof ArrayPredictionContext)) { return false; } else if (this.hashCode() !== other.hashCode()) { return false; // can't be same if hash is different } else { return this.returnStates === other.returnStates && this.parents === other.parents; } }; ArrayPredictionContext.prototype.toString = function() { if (this.isEmpty()) { return "[]"; } else { var s = "["; for (var i = 0; i < this.returnStates.length; i++) { if (i > 0) { s = s + ", "; } if (this.returnStates[i] === PredictionContext.EMPTY_RETURN_STATE) { s = s + "$"; continue; } s = s + this.returnStates[i]; if (this.parents[i] !== null) { s = s + " " + this.parents[i]; } else { s = s + "null"; } } return s + "]"; } }; // Convert a {@link RuleContext} tree to a {@link PredictionContext} graph. // Return {@link //EMPTY} if {@code outerContext} is empty or null. // / function predictionContextFromRuleContext(atn, outerContext) { if (outerContext === undefined || outerContext === null) { outerContext = RuleContext.EMPTY; } // if we are in RuleContext of start rule, s, then PredictionContext // is EMPTY. Nobody called us. (if we are empty, return empty) if (outerContext.parentCtx === null || outerContext === RuleContext.EMPTY) { return PredictionContext.EMPTY; } // If we have a parent, convert it to a PredictionContext graph var parent = predictionContextFromRuleContext(atn, outerContext.parentCtx); var state = atn.states[outerContext.invokingState]; var transition = state.transitions[0]; return SingletonPredictionContext.create(parent, transition.followState.stateNumber); } /* function calculateListsHashString(parents, returnStates) { var s = ""; parents.map(function(p) { s = s + p; }); returnStates.map(function(r) { s = s + r; }); return s; } */ function merge(a, b, rootIsWildcard, mergeCache) { // share same graph if both same if (a === b) { return a; } if (a instanceof SingletonPredictionContext && b instanceof SingletonPredictionContext) { return mergeSingletons(a, b, rootIsWildcard, mergeCache); } // At least one of a or b is array // If one is $ and rootIsWildcard, return $ as// wildcard if (rootIsWildcard) { if (a instanceof EmptyPredictionContext) { return a; } if (b instanceof EmptyPredictionContext) { return b; } } // convert singleton so both are arrays to normalize if (a instanceof SingletonPredictionContext) { a = new ArrayPredictionContext([a.getParent()], [a.returnState]); } if (b instanceof SingletonPredictionContext) { b = new ArrayPredictionContext([b.getParent()], [b.returnState]); } return mergeArrays(a, b, rootIsWildcard, mergeCache); } // // Merge two {@link SingletonPredictionContext} instances. // //

Stack tops equal, parents merge is same; return left graph.
//

// //

Same stack top, parents differ; merge parents giving array node, then // remainders of those graphs. A new root node is created to point to the // merged parents.
//

// //

Different stack tops pointing to same parent. Make array node for the // root where both element in the root point to the same (original) // parent.
//

// //

Different stack tops pointing to different parents. Make array node for // the root where each element points to the corresponding original // parent.
//

// // @param a the first {@link SingletonPredictionContext} // @param b the second {@link SingletonPredictionContext} // @param rootIsWildcard {@code true} if this is a local-context merge, // otherwise false to indicate a full-context merge // @param mergeCache // / function mergeSingletons(a, b, rootIsWildcard, mergeCache) { if (mergeCache !== null) { var previous = mergeCache.get(a, b); if (previous !== null) { return previous; } previous = mergeCache.get(b, a); if (previous !== null) { return previous; } } var rootMerge = mergeRoot(a, b, rootIsWildcard); if (rootMerge !== null) { if (mergeCache !== null) { mergeCache.set(a, b, rootMerge); } return rootMerge; } if (a.returnState === b.returnState) { var parent = merge(a.parentCtx, b.parentCtx, rootIsWildcard, mergeCache); // if parent is same as existing a or b parent or reduced to a parent, // return it if (parent === a.parentCtx) { return a; // ax + bx = ax, if a=b } if (parent === b.parentCtx) { return b; // ax + bx = bx, if a=b } // else: ax + ay = a'[x,y] // merge parents x and y, giving array node with x,y then remainders // of those graphs. dup a, a' points at merged array // new joined parent so create new singleton pointing to it, a' var spc = SingletonPredictionContext.create(parent, a.returnState); if (mergeCache !== null) { mergeCache.set(a, b, spc); } return spc; } else { // a != b payloads differ // see if we can collapse parents due to $+x parents if local ctx var singleParent = null; if (a === b || (a.parentCtx !== null && a.parentCtx === b.parentCtx)) { // ax + // bx = // [a,b]x singleParent = a.parentCtx; } if (singleParent !== null) { // parents are same // sort payloads and use same parent var payloads = [ a.returnState, b.returnState ]; if (a.returnState > b.returnState) { payloads[0] = b.returnState; payloads[1] = a.returnState; } var parents = [ singleParent, singleParent ]; var apc = new ArrayPredictionContext(parents, payloads); if (mergeCache !== null) { mergeCache.set(a, b, apc); } return apc; } // parents differ and can't merge them. Just pack together // into array; can't merge. // ax + by = [ax,by] var payloads = [ a.returnState, b.returnState ]; var parents = [ a.parentCtx, b.parentCtx ]; if (a.returnState > b.returnState) { // sort by payload payloads[0] = b.returnState; payloads[1] = a.returnState; parents = [ b.parentCtx, a.parentCtx ]; } var a_ = new ArrayPredictionContext(parents, payloads); if (mergeCache !== null) { mergeCache.set(a, b, a_); } return a_; } } // // Handle case where at least one of {@code a} or {@code b} is // {@link //EMPTY}. In the following diagrams, the symbol {@code $} is used // to represent {@link //EMPTY}. // //

Local-Context Merges

// //

These local-context merge operations are used when {@code rootIsWildcard} // is true.

// //

{@link //EMPTY} is superset of any graph; return {@link //EMPTY}.
//

// //

{@link //EMPTY} and anything is {@code //EMPTY}, so merged parent is // {@code //EMPTY}; return left graph.
//

// //

Special case of last merge if local context.
//

// //

Full-Context Merges

// //

These full-context merge operations are used when {@code rootIsWildcard} // is false.

// //

// //

Must keep all contexts; {@link //EMPTY} in array is a special value (and // null parent).
//

// //

// // @param a the first {@link SingletonPredictionContext} // @param b the second {@link SingletonPredictionContext} // @param rootIsWildcard {@code true} if this is a local-context merge, // otherwise false to indicate a full-context merge // / function mergeRoot(a, b, rootIsWildcard) { if (rootIsWildcard) { if (a === PredictionContext.EMPTY) { return PredictionContext.EMPTY; // // + b =// } if (b === PredictionContext.EMPTY) { return PredictionContext.EMPTY; // a +// =// } } else { if (a === PredictionContext.EMPTY && b === PredictionContext.EMPTY) { return PredictionContext.EMPTY; // $ + $ = $ } else if (a === PredictionContext.EMPTY) { // $ + x = [$,x] var payloads = [ b.returnState, PredictionContext.EMPTY_RETURN_STATE ]; var parents = [ b.parentCtx, null ]; return new ArrayPredictionContext(parents, payloads); } else if (b === PredictionContext.EMPTY) { // x + $ = [$,x] ($ is always first if present) var payloads = [ a.returnState, PredictionContext.EMPTY_RETURN_STATE ]; var parents = [ a.parentCtx, null ]; return new ArrayPredictionContext(parents, payloads); } } return null; } // // Merge two {@link ArrayPredictionContext} instances. // //

Different tops, different parents.
//

// //

Shared top, same parents.
//

// //

Shared top, different parents.
//

// //

Shared top, all shared parents.
//

// //

Equal tops, merge parents and reduce top to // {@link SingletonPredictionContext}.
//

// / function mergeArrays(a, b, rootIsWildcard, mergeCache) { if (mergeCache !== null) { var previous = mergeCache.get(a, b); if (previous !== null) { return previous; } previous = mergeCache.get(b, a); if (previous !== null) { return previous; } } // merge sorted payloads a + b => M var i = 0; // walks a var j = 0; // walks b var k = 0; // walks target M array var mergedReturnStates = []; var mergedParents = []; // walk and merge to yield mergedParents, mergedReturnStates while (i < a.returnStates.length && j < b.returnStates.length) { var a_parent = a.parents[i]; var b_parent = b.parents[j]; if (a.returnStates[i] === b.returnStates[j]) { // same payload (stack tops are equal), must yield merged singleton var payload = a.returnStates[i]; // $+$ = $ var bothDollars = payload === PredictionContext.EMPTY_RETURN_STATE && a_parent === null && b_parent === null; var ax_ax = (a_parent !== null && b_parent !== null && a_parent === b_parent); // ax+ax // -> // ax if (bothDollars || ax_ax) { mergedParents[k] = a_parent; // choose left mergedReturnStates[k] = payload; } else { // ax+ay -> a'[x,y] var mergedParent = merge(a_parent, b_parent, rootIsWildcard, mergeCache); mergedParents[k] = mergedParent; mergedReturnStates[k] = payload; } i += 1; // hop over left one as usual j += 1; // but also skip one in right side since we merge } else if (a.returnStates[i] < b.returnStates[j]) { // copy a[i] to M mergedParents[k] = a_parent; mergedReturnStates[k] = a.returnStates[i]; i += 1; } else { // b > a, copy b[j] to M mergedParents[k] = b_parent; mergedReturnStates[k] = b.returnStates[j]; j += 1; } k += 1; } // copy over any payloads remaining in either array if (i < a.returnStates.length) { for (var p = i; p < a.returnStates.length; p++) { mergedParents[k] = a.parents[p]; mergedReturnStates[k] = a.returnStates[p]; k += 1; } } else { for (var p = j; p < b.returnStates.length; p++) { mergedParents[k] = b.parents[p]; mergedReturnStates[k] = b.returnStates[p]; k += 1; } } // trim merged if we combined a few that had same stack tops if (k < mergedParents.length) { // write index < last position; trim if (k === 1) { // for just one merged element, return singleton top var a_ = SingletonPredictionContext.create(mergedParents[0], mergedReturnStates[0]); if (mergeCache !== null) { mergeCache.set(a, b, a_); } return a_; } mergedParents = mergedParents.slice(0, k); mergedReturnStates = mergedReturnStates.slice(0, k); } var M = new ArrayPredictionContext(mergedParents, mergedReturnStates); // if we created same array as a or b, return that instead // TODO: track whether this is possible above during merge sort for speed if (M === a) { if (mergeCache !== null) { mergeCache.set(a, b, a); } return a; } if (M === b) { if (mergeCache !== null) { mergeCache.set(a, b, b); } return b; } combineCommonParents(mergedParents); if (mergeCache !== null) { mergeCache.set(a, b, M); } return M; } // // Make pass over all M {@code parents}; merge any {@code equals()} // ones. // / function combineCommonParents(parents) { var uniqueParents = {}; for (var p = 0; p < parents.length; p++) { var parent = parents[p]; if (!(parent in uniqueParents)) { uniqueParents[parent] = parent; } } for (var q = 0; q < parents.length; q++) { parents[q] = uniqueParents[parents[q]]; } } function getCachedPredictionContext(context, contextCache, visited) { if (context.isEmpty()) { return context; } var existing = visited[context] || null; if (existing !== null) { return existing; } existing = contextCache.get(context); if (existing !== null) { visited[context] = existing; return existing; } var changed = false; var parents = []; for (var i = 0; i < parents.length; i++) { var parent = getCachedPredictionContext(context.getParent(i), contextCache, visited); if (changed || parent !== context.getParent(i)) { if (!changed) { parents = []; for (var j = 0; j < context.length; j++) { parents[j] = context.getParent(j); } changed = true; } parents[i] = parent; } } if (!changed) { contextCache.add(context); visited[context] = context; return context; } var updated = null; if (parents.length === 0) { updated = PredictionContext.EMPTY; } else if (parents.length === 1) { updated = SingletonPredictionContext.create(parents[0], context .getReturnState(0)); } else { updated = new ArrayPredictionContext(parents, context.returnStates); } contextCache.add(updated); visited[updated] = updated; visited[context] = updated; return updated; } // ter's recursive version of Sam's getAllNodes() function getAllContextNodes(context, nodes, visited) { if (nodes === null) { nodes = []; return getAllContextNodes(context, nodes, visited); } else if (visited === null) { visited = {}; return getAllContextNodes(context, nodes, visited); } else { if (context === null || visited[context] !== null) { return nodes; } visited[context] = context; nodes.push(context); for (var i = 0; i < context.length; i++) { getAllContextNodes(context.getParent(i), nodes, visited); } return nodes; } } exports.merge = merge; exports.PredictionContext = PredictionContext; exports.PredictionContextCache = PredictionContextCache; exports.SingletonPredictionContext = SingletonPredictionContext; exports.predictionContextFromRuleContext = predictionContextFromRuleContext; exports.getCachedPredictionContext = getCachedPredictionContext; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ /// // A rule context is a record of a single rule invocation. It knows // which context invoked it, if any. If there is no parent context, then // naturally the invoking state is not valid. The parent link // provides a chain upwards from the current rule invocation to the root // of the invocation tree, forming a stack. We actually carry no // information about the rule associated with this context (except // when parsing). We keep only the state number of the invoking state from // the ATN submachine that invoked this. Contrast this with the s // pointer inside ParserRuleContext that tracks the current state // being "executed" for the current rule. // // The parent contexts are useful for computing lookahead sets and // getting error information. // // These objects are used during parsing and prediction. // For the special case of parsers, we use the subclass // ParserRuleContext. // // @see ParserRuleContext /// var RuleNode = __webpack_require__(14).RuleNode; var INVALID_INTERVAL = __webpack_require__(14).INVALID_INTERVAL; var INVALID_ALT_NUMBER = __webpack_require__(3).INVALID_ALT_NUMBER; function RuleContext(parent, invokingState) { RuleNode.call(this); // What context invoked this rule? this.parentCtx = parent || null; // What state invoked the rule associated with this context? // The "return address" is the followState of invokingState // If parent is null, this should be -1. this.invokingState = invokingState || -1; return this; } RuleContext.prototype = Object.create(RuleNode.prototype); RuleContext.prototype.constructor = RuleContext; RuleContext.prototype.depth = function() { var n = 0; var p = this; while (p !== null) { p = p.parentCtx; n += 1; } return n; }; // A context is empty if there is no invoking state; meaning nobody call // current context. RuleContext.prototype.isEmpty = function() { return this.invokingState === -1; }; // satisfy the ParseTree / SyntaxTree interface RuleContext.prototype.getSourceInterval = function() { return INVALID_INTERVAL; }; RuleContext.prototype.getRuleContext = function() { return this; }; RuleContext.prototype.getPayload = function() { return this; }; // Return the combined text of all child nodes. This method only considers // tokens which have been added to the parse tree. //

// Since tokens on hidden channels (e.g. whitespace or comments) are not // added to the parse trees, they will not appear in the output of this // method. // / RuleContext.prototype.getText = function() { if (this.getChildCount() === 0) { return ""; } else { return this.children.map(function(child) { return child.getText(); }).join(""); } }; // For rule associated with this parse tree internal node, return // the outer alternative number used to match the input. Default // implementation does not compute nor store this alt num. Create // a subclass of ParserRuleContext with backing field and set // option contextSuperClass. // to set it. RuleContext.prototype.getAltNumber = function() { return INVALID_ALT_NUMBER; } // Set the outer alternative number for this context node. Default // implementation does nothing to avoid backing field overhead for // trees that don't need it. Create // a subclass of ParserRuleContext with backing field and set // option contextSuperClass. RuleContext.prototype.setAltNumber = function(altNumber) { } RuleContext.prototype.getChild = function(i) { return null; }; RuleContext.prototype.getChildCount = function() { return 0; }; RuleContext.prototype.accept = function(visitor) { return visitor.visitChildren(this); }; //need to manage circular dependencies, so export now exports.RuleContext = RuleContext; var Trees = __webpack_require__(15).Trees; // Print out a whole tree, not just a node, in LISP format // (root child1 .. childN). Print just a node if this is a leaf. // RuleContext.prototype.toStringTree = function(ruleNames, recog) { return Trees.toStringTree(this, ruleNames, recog); }; RuleContext.prototype.toString = function(ruleNames, stop) { ruleNames = ruleNames || null; stop = stop || null; var p = this; var s = "["; while (p !== null && p !== stop) { if (ruleNames === null) { if (!p.isEmpty()) { s += p.invokingState; } } else { var ri = p.ruleIndex; var ruleName = (ri >= 0 && ri < ruleNames.length) ? ruleNames[ri] : "" + ri; s += ruleName; } if (p.parentCtx !== null && (ruleNames !== null || !p.parentCtx.isEmpty())) { s += " "; } p = p.parentCtx; } s += "]"; return s; }; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ /// // The basic notion of a tree has a parent, a payload, and a list of children. // It is the most abstract interface for all the trees used by ANTLR. /// var Token = __webpack_require__(6).Token; var Interval = __webpack_require__(10).Interval; var INVALID_INTERVAL = new Interval(-1, -2); var Utils = __webpack_require__(5); function Tree() { return this; } function SyntaxTree() { Tree.call(this); return this; } SyntaxTree.prototype = Object.create(Tree.prototype); SyntaxTree.prototype.constructor = SyntaxTree; function ParseTree() { SyntaxTree.call(this); return this; } ParseTree.prototype = Object.create(SyntaxTree.prototype); ParseTree.prototype.constructor = ParseTree; function RuleNode() { ParseTree.call(this); return this; } RuleNode.prototype = Object.create(ParseTree.prototype); RuleNode.prototype.constructor = RuleNode; function TerminalNode() { ParseTree.call(this); return this; } TerminalNode.prototype = Object.create(ParseTree.prototype); TerminalNode.prototype.constructor = TerminalNode; function ErrorNode() { TerminalNode.call(this); return this; } ErrorNode.prototype = Object.create(TerminalNode.prototype); ErrorNode.prototype.constructor = ErrorNode; function ParseTreeVisitor() { return this; } ParseTreeVisitor.prototype.visit = function(ctx) { if (Array.isArray(ctx)) { return ctx.map(function(child) { return child.accept(this); }, this); } else { return ctx.accept(this); } }; ParseTreeVisitor.prototype.visitChildren = function(ctx) { return this.visit(ctx.children); } ParseTreeVisitor.prototype.visitTerminal = function(node) { }; ParseTreeVisitor.prototype.visitErrorNode = function(node) { }; function ParseTreeListener() { return this; } ParseTreeListener.prototype.visitTerminal = function(node) { }; ParseTreeListener.prototype.visitErrorNode = function(node) { }; ParseTreeListener.prototype.enterEveryRule = function(node) { }; ParseTreeListener.prototype.exitEveryRule = function(node) { }; function TerminalNodeImpl(symbol) { TerminalNode.call(this); this.parentCtx = null; this.symbol = symbol; return this; } TerminalNodeImpl.prototype = Object.create(TerminalNode.prototype); TerminalNodeImpl.prototype.constructor = TerminalNodeImpl; TerminalNodeImpl.prototype.getChild = function(i) { return null; }; TerminalNodeImpl.prototype.getSymbol = function() { return this.symbol; }; TerminalNodeImpl.prototype.getParent = function() { return this.parentCtx; }; TerminalNodeImpl.prototype.getPayload = function() { return this.symbol; }; TerminalNodeImpl.prototype.getSourceInterval = function() { if (this.symbol === null) { return INVALID_INTERVAL; } var tokenIndex = this.symbol.tokenIndex; return new Interval(tokenIndex, tokenIndex); }; TerminalNodeImpl.prototype.getChildCount = function() { return 0; }; TerminalNodeImpl.prototype.accept = function(visitor) { return visitor.visitTerminal(this); }; TerminalNodeImpl.prototype.getText = function() { return this.symbol.text; }; TerminalNodeImpl.prototype.toString = function() { if (this.symbol.type === Token.EOF) { return ""; } else { return this.symbol.text; } }; // Represents a token that was consumed during resynchronization // rather than during a valid match operation. For example, // we will create this kind of a node during single token insertion // and deletion as well as during "consume until error recovery set" // upon no viable alternative exceptions. function ErrorNodeImpl(token) { TerminalNodeImpl.call(this, token); return this; } ErrorNodeImpl.prototype = Object.create(TerminalNodeImpl.prototype); ErrorNodeImpl.prototype.constructor = ErrorNodeImpl; ErrorNodeImpl.prototype.isErrorNode = function() { return true; }; ErrorNodeImpl.prototype.accept = function(visitor) { return visitor.visitErrorNode(this); }; function ParseTreeWalker() { return this; } ParseTreeWalker.prototype.walk = function(listener, t) { var errorNode = t instanceof ErrorNode || (t.isErrorNode !== undefined && t.isErrorNode()); if (errorNode) { listener.visitErrorNode(t); } else if (t instanceof TerminalNode) { listener.visitTerminal(t); } else { this.enterRule(listener, t); for (var i = 0; i < t.getChildCount(); i++) { var child = t.getChild(i); this.walk(listener, child); } this.exitRule(listener, t); } }; // // The discovery of a rule node, involves sending two events: the generic // {@link ParseTreeListener//enterEveryRule} and a // {@link RuleContext}-specific event. First we trigger the generic and then // the rule specific. We to them in reverse order upon finishing the node. // ParseTreeWalker.prototype.enterRule = function(listener, r) { var ctx = r.getRuleContext(); listener.enterEveryRule(ctx); ctx.enterRule(listener); }; ParseTreeWalker.prototype.exitRule = function(listener, r) { var ctx = r.getRuleContext(); ctx.exitRule(listener); listener.exitEveryRule(ctx); }; ParseTreeWalker.DEFAULT = new ParseTreeWalker(); exports.RuleNode = RuleNode; exports.ErrorNode = ErrorNode; exports.TerminalNode = TerminalNode; exports.ErrorNodeImpl = ErrorNodeImpl; exports.TerminalNodeImpl = TerminalNodeImpl; exports.ParseTreeListener = ParseTreeListener; exports.ParseTreeVisitor = ParseTreeVisitor; exports.ParseTreeWalker = ParseTreeWalker; exports.INVALID_INTERVAL = INVALID_INTERVAL; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ var Utils = __webpack_require__(5); var Token = __webpack_require__(6).Token; var RuleNode = __webpack_require__(14).RuleNode; var ErrorNode = __webpack_require__(14).ErrorNode; var TerminalNode = __webpack_require__(14).TerminalNode; var ParserRuleContext = __webpack_require__(16).ParserRuleContext; var RuleContext = __webpack_require__(13).RuleContext; var INVALID_ALT_NUMBER = __webpack_require__(3).INVALID_ALT_NUMBER; /** A set of utility routines useful for all kinds of ANTLR trees. */ function Trees() { } // Print out a whole tree in LISP form. {@link //getNodeText} is used on the // node payloads to get the text for the nodes. Detect // parse trees and extract data appropriately. Trees.toStringTree = function(tree, ruleNames, recog) { ruleNames = ruleNames || null; recog = recog || null; if(recog!==null) { ruleNames = recog.ruleNames; } var s = Trees.getNodeText(tree, ruleNames); s = Utils.escapeWhitespace(s, false); var c = tree.getChildCount(); if(c===0) { return s; } var res = "(" + s + ' '; if(c>0) { s = Trees.toStringTree(tree.getChild(0), ruleNames); res = res.concat(s); } for(var i=1;i= this.children.length) { return null; } if (type === null) { return this.children[i]; } else { for(var j=0; j= this.children.length) { return null; } for(var j=0; j= idx1; }; ATNDeserializer.prototype.deserialize = function(data) { this.reset(data); this.checkVersion(); this.checkUUID(); var atn = this.readATN(); this.readStates(atn); this.readRules(atn); this.readModes(atn); var sets = []; // First, deserialize sets with 16-bit arguments <= U+FFFF. this.readSets(atn, sets, this.readInt.bind(this)); // Next, if the ATN was serialized with the Unicode SMP feature, // deserialize sets with 32-bit arguments <= U+10FFFF. if (this.isFeatureSupported(ADDED_UNICODE_SMP, this.uuid)) { this.readSets(atn, sets, this.readInt32.bind(this)); } this.readEdges(atn, sets); this.readDecisions(atn); this.readLexerActions(atn); this.markPrecedenceDecisions(atn); this.verifyATN(atn); if (this.deserializationOptions.generateRuleBypassTransitions && atn.grammarType === ATNType.PARSER ) { this.generateRuleBypassTransitions(atn); // re-verify after modification this.verifyATN(atn); } return atn; }; ATNDeserializer.prototype.reset = function(data) { var adjust = function(c) { var v = c.charCodeAt(0); return v>1 ? v-2 : v + 65533; }; var temp = data.split("").map(adjust); // don't adjust the first value since that's the version number temp[0] = data.charCodeAt(0); this.data = temp; this.pos = 0; }; ATNDeserializer.prototype.checkVersion = function() { var version = this.readInt(); if ( version !== SERIALIZED_VERSION ) { throw ("Could not deserialize ATN with version " + version + " (expected " + SERIALIZED_VERSION + ")."); } }; ATNDeserializer.prototype.checkUUID = function() { var uuid = this.readUUID(); if (SUPPORTED_UUIDS.indexOf(uuid)<0) { throw ("Could not deserialize ATN with UUID: " + uuid + " (expected " + SERIALIZED_UUID + " or a legacy UUID).", uuid, SERIALIZED_UUID); } this.uuid = uuid; }; ATNDeserializer.prototype.readATN = function() { var grammarType = this.readInt(); var maxTokenType = this.readInt(); return new ATN(grammarType, maxTokenType); }; ATNDeserializer.prototype.readStates = function(atn) { var j, pair, stateNumber; var loopBackStateNumbers = []; var endStateNumbers = []; var nstates = this.readInt(); for(var i=0; i 0) { bypassStart.addTransition(ruleToStartState.transitions[count-1]); ruleToStartState.transitions = ruleToStartState.transitions.slice(-1); } // link the new states atn.ruleToStartState[idx].addTransition(new EpsilonTransition(bypassStart)); bypassStop.addTransition(new EpsilonTransition(endState)); var matchState = new BasicState(); atn.addState(matchState); matchState.addTransition(new AtomTransition(bypassStop, atn.ruleToTokenType[idx])); bypassStart.addTransition(new EpsilonTransition(matchState)); }; ATNDeserializer.prototype.stateIsEndStateFor = function(state, idx) { if ( state.ruleIndex !== idx) { return null; } if (!( state instanceof StarLoopEntryState)) { return null; } var maybeLoopEndState = state.transitions[state.transitions.length - 1].target; if (!( maybeLoopEndState instanceof LoopEndState)) { return null; } if (maybeLoopEndState.epsilonOnlyTransitions && (maybeLoopEndState.transitions[0].target instanceof RuleStopState)) { return state; } else { return null; } }; // // Analyze the {@link StarLoopEntryState} states in the specified ATN to set // the {@link StarLoopEntryState//isPrecedenceDecision} field to the // correct value. // // @param atn The ATN. // ATNDeserializer.prototype.markPrecedenceDecisions = function(atn) { for(var i=0; i= 0); } else { this.checkCondition(state.transitions.length <= 1 || (state instanceof RuleStopState)); } } }; ATNDeserializer.prototype.checkCondition = function(condition, message) { if (!condition) { if (message === undefined || message===null) { message = "IllegalState"; } throw (message); } }; ATNDeserializer.prototype.readInt = function() { return this.data[this.pos++]; }; ATNDeserializer.prototype.readInt32 = function() { var low = this.readInt(); var high = this.readInt(); return low | (high << 16); }; ATNDeserializer.prototype.readLong = function() { var low = this.readInt32(); var high = this.readInt32(); return (low & 0x00000000FFFFFFFF) | (high << 32); }; function createByteToHex() { var bth = []; for (var i = 0; i < 256; i++) { bth[i] = (i + 0x100).toString(16).substr(1).toUpperCase(); } return bth; } var byteToHex = createByteToHex(); ATNDeserializer.prototype.readUUID = function() { var bb = []; for(var i=7;i>=0;i--) { var int = this.readInt(); /* jshint bitwise: false */ bb[(2*i)+1] = int & 0xFF; bb[2*i] = (int >> 8) & 0xFF; } return byteToHex[bb[0]] + byteToHex[bb[1]] + byteToHex[bb[2]] + byteToHex[bb[3]] + '-' + byteToHex[bb[4]] + byteToHex[bb[5]] + '-' + byteToHex[bb[6]] + byteToHex[bb[7]] + '-' + byteToHex[bb[8]] + byteToHex[bb[9]] + '-' + byteToHex[bb[10]] + byteToHex[bb[11]] + byteToHex[bb[12]] + byteToHex[bb[13]] + byteToHex[bb[14]] + byteToHex[bb[15]]; }; ATNDeserializer.prototype.edgeFactory = function(atn, type, src, trg, arg1, arg2, arg3, sets) { var target = atn.states[trg]; switch(type) { case Transition.EPSILON: return new EpsilonTransition(target); case Transition.RANGE: return arg3 !== 0 ? new RangeTransition(target, Token.EOF, arg2) : new RangeTransition(target, arg1, arg2); case Transition.RULE: return new RuleTransition(atn.states[arg1], arg2, arg3, target); case Transition.PREDICATE: return new PredicateTransition(target, arg1, arg2, arg3 !== 0); case Transition.PRECEDENCE: return new PrecedencePredicateTransition(target, arg1); case Transition.ATOM: return arg3 !== 0 ? new AtomTransition(target, Token.EOF) : new AtomTransition(target, arg1); case Transition.ACTION: return new ActionTransition(target, arg1, arg2, arg3 !== 0); case Transition.SET: return new SetTransition(target, sets[arg1]); case Transition.NOT_SET: return new NotSetTransition(target, sets[arg1]); case Transition.WILDCARD: return new WildcardTransition(target); default: throw "The specified transition type: " + type + " is not valid."; } }; ATNDeserializer.prototype.stateFactory = function(type, ruleIndex) { if (this.stateFactories === null) { var sf = []; sf[ATNState.INVALID_TYPE] = null; sf[ATNState.BASIC] = function() { return new BasicState(); }; sf[ATNState.RULE_START] = function() { return new RuleStartState(); }; sf[ATNState.BLOCK_START] = function() { return new BasicBlockStartState(); }; sf[ATNState.PLUS_BLOCK_START] = function() { return new PlusBlockStartState(); }; sf[ATNState.STAR_BLOCK_START] = function() { return new StarBlockStartState(); }; sf[ATNState.TOKEN_START] = function() { return new TokensStartState(); }; sf[ATNState.RULE_STOP] = function() { return new RuleStopState(); }; sf[ATNState.BLOCK_END] = function() { return new BlockEndState(); }; sf[ATNState.STAR_LOOP_BACK] = function() { return new StarLoopbackState(); }; sf[ATNState.STAR_LOOP_ENTRY] = function() { return new StarLoopEntryState(); }; sf[ATNState.PLUS_LOOP_BACK] = function() { return new PlusLoopbackState(); }; sf[ATNState.LOOP_END] = function() { return new LoopEndState(); }; this.stateFactories = sf; } if (type>this.stateFactories.length || this.stateFactories[type] === null) { throw("The specified state type " + type + " is not valid."); } else { var s = this.stateFactories[type](); if (s!==null) { s.ruleIndex = ruleIndex; return s; } } }; ATNDeserializer.prototype.lexerActionFactory = function(type, data1, data2) { if (this.actionFactories === null) { var af = []; af[LexerActionType.CHANNEL] = function(data1, data2) { return new LexerChannelAction(data1); }; af[LexerActionType.CUSTOM] = function(data1, data2) { return new LexerCustomAction(data1, data2); }; af[LexerActionType.MODE] = function(data1, data2) { return new LexerModeAction(data1); }; af[LexerActionType.MORE] = function(data1, data2) { return LexerMoreAction.INSTANCE; }; af[LexerActionType.POP_MODE] = function(data1, data2) { return LexerPopModeAction.INSTANCE; }; af[LexerActionType.PUSH_MODE] = function(data1, data2) { return new LexerPushModeAction(data1); }; af[LexerActionType.SKIP] = function(data1, data2) { return LexerSkipAction.INSTANCE; }; af[LexerActionType.TYPE] = function(data1, data2) { return new LexerTypeAction(data1); }; this.actionFactories = af; } if (type>this.actionFactories.length || this.actionFactories[type] === null) { throw("The specified lexer action type " + type + " is not valid."); } else { return this.actionFactories[type](data1, data2); } }; exports.ATNDeserializer = ATNDeserializer; /***/ }), /* 18 */ /***/ (function(module, exports) { /* 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. */ /// // Represents the type of recognizer an ATN applies to. function ATNType() { } ATNType.LEXER = 0; ATNType.PARSER = 1; exports.ATNType = ATNType; /***/ }), /* 19 */ /***/ (function(module, exports) { /* 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. */ function ATNDeserializationOptions(copyFrom) { if(copyFrom===undefined) { copyFrom = null; } this.readOnly = false; this.verifyATN = copyFrom===null ? true : copyFrom.verifyATN; this.generateRuleBypassTransitions = copyFrom===null ? false : copyFrom.generateRuleBypassTransitions; return this; } ATNDeserializationOptions.defaultOptions = new ATNDeserializationOptions(); ATNDeserializationOptions.defaultOptions.readOnly = true; // def __setattr__(self, key, value): // if key!="readOnly" and self.readOnly: // raise Exception("The object is read only.") // super(type(self), self).__setattr__(key,value) exports.ATNDeserializationOptions = ATNDeserializationOptions; /***/ }), /* 20 */ /***/ (function(module, exports) { // /* 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. */ // function LexerActionType() { } LexerActionType.CHANNEL = 0; //The type of a {@link LexerChannelAction} action. LexerActionType.CUSTOM = 1; //The type of a {@link LexerCustomAction} action. LexerActionType.MODE = 2; //The type of a {@link LexerModeAction} action. LexerActionType.MORE = 3; //The type of a {@link LexerMoreAction} action. LexerActionType.POP_MODE = 4; //The type of a {@link LexerPopModeAction} action. LexerActionType.PUSH_MODE = 5; //The type of a {@link LexerPushModeAction} action. LexerActionType.SKIP = 6; //The type of a {@link LexerSkipAction} action. LexerActionType.TYPE = 7; //The type of a {@link LexerTypeAction} action. function LexerAction(action) { this.actionType = action; this.isPositionDependent = false; return this; } LexerAction.prototype.hashCode = function() { var hash = new Hash(); this.updateHashCode(hash); return hash.finish() }; LexerAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType); }; LexerAction.prototype.equals = function(other) { return this === other; }; // // Implements the {@code skip} lexer action by calling {@link Lexer//skip}. // //

The {@code skip} command does not have any parameters, so this action is // implemented as a singleton instance exposed by {@link //INSTANCE}.

function LexerSkipAction() { LexerAction.call(this, LexerActionType.SKIP); return this; } LexerSkipAction.prototype = Object.create(LexerAction.prototype); LexerSkipAction.prototype.constructor = LexerSkipAction; // Provides a singleton instance of this parameterless lexer action. LexerSkipAction.INSTANCE = new LexerSkipAction(); LexerSkipAction.prototype.execute = function(lexer) { lexer.skip(); }; LexerSkipAction.prototype.toString = function() { return "skip"; }; // Implements the {@code type} lexer action by calling {@link Lexer//setType} // with the assigned type. function LexerTypeAction(type) { LexerAction.call(this, LexerActionType.TYPE); this.type = type; return this; } LexerTypeAction.prototype = Object.create(LexerAction.prototype); LexerTypeAction.prototype.constructor = LexerTypeAction; LexerTypeAction.prototype.execute = function(lexer) { lexer.type = this.type; }; LexerTypeAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.type); }; LexerTypeAction.prototype.equals = function(other) { if(this === other) { return true; } else if (! (other instanceof LexerTypeAction)) { return false; } else { return this.type === other.type; } }; LexerTypeAction.prototype.toString = function() { return "type(" + this.type + ")"; }; // Implements the {@code pushMode} lexer action by calling // {@link Lexer//pushMode} with the assigned mode. function LexerPushModeAction(mode) { LexerAction.call(this, LexerActionType.PUSH_MODE); this.mode = mode; return this; } LexerPushModeAction.prototype = Object.create(LexerAction.prototype); LexerPushModeAction.prototype.constructor = LexerPushModeAction; //

This action is implemented by calling {@link Lexer//pushMode} with the // value provided by {@link //getMode}.

LexerPushModeAction.prototype.execute = function(lexer) { lexer.pushMode(this.mode); }; LexerPushModeAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.mode); }; LexerPushModeAction.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof LexerPushModeAction)) { return false; } else { return this.mode === other.mode; } }; LexerPushModeAction.prototype.toString = function() { return "pushMode(" + this.mode + ")"; }; // Implements the {@code popMode} lexer action by calling {@link Lexer//popMode}. // //

The {@code popMode} command does not have any parameters, so this action is // implemented as a singleton instance exposed by {@link //INSTANCE}.

function LexerPopModeAction() { LexerAction.call(this,LexerActionType.POP_MODE); return this; } LexerPopModeAction.prototype = Object.create(LexerAction.prototype); LexerPopModeAction.prototype.constructor = LexerPopModeAction; LexerPopModeAction.INSTANCE = new LexerPopModeAction(); //

This action is implemented by calling {@link Lexer//popMode}.

LexerPopModeAction.prototype.execute = function(lexer) { lexer.popMode(); }; LexerPopModeAction.prototype.toString = function() { return "popMode"; }; // Implements the {@code more} lexer action by calling {@link Lexer//more}. // //

The {@code more} command does not have any parameters, so this action is // implemented as a singleton instance exposed by {@link //INSTANCE}.

function LexerMoreAction() { LexerAction.call(this, LexerActionType.MORE); return this; } LexerMoreAction.prototype = Object.create(LexerAction.prototype); LexerMoreAction.prototype.constructor = LexerMoreAction; LexerMoreAction.INSTANCE = new LexerMoreAction(); //

This action is implemented by calling {@link Lexer//popMode}.

LexerMoreAction.prototype.execute = function(lexer) { lexer.more(); }; LexerMoreAction.prototype.toString = function() { return "more"; }; // Implements the {@code mode} lexer action by calling {@link Lexer//mode} with // the assigned mode. function LexerModeAction(mode) { LexerAction.call(this, LexerActionType.MODE); this.mode = mode; return this; } LexerModeAction.prototype = Object.create(LexerAction.prototype); LexerModeAction.prototype.constructor = LexerModeAction; //

This action is implemented by calling {@link Lexer//mode} with the // value provided by {@link //getMode}.

LexerModeAction.prototype.execute = function(lexer) { lexer.mode(this.mode); }; LexerModeAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.mode); }; LexerModeAction.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof LexerModeAction)) { return false; } else { return this.mode === other.mode; } }; LexerModeAction.prototype.toString = function() { return "mode(" + this.mode + ")"; }; // Executes a custom lexer action by calling {@link Recognizer//action} with the // rule and action indexes assigned to the custom action. The implementation of // a custom action is added to the generated code for the lexer in an override // of {@link Recognizer//action} when the grammar is compiled. // //

This class may represent embedded actions created with the {...} // syntax in ANTLR 4, as well as actions created for lexer commands where the // command argument could not be evaluated when the grammar was compiled.

// Constructs a custom lexer action with the specified rule and action // indexes. // // @param ruleIndex The rule index to use for calls to // {@link Recognizer//action}. // @param actionIndex The action index to use for calls to // {@link Recognizer//action}. function LexerCustomAction(ruleIndex, actionIndex) { LexerAction.call(this, LexerActionType.CUSTOM); this.ruleIndex = ruleIndex; this.actionIndex = actionIndex; this.isPositionDependent = true; return this; } LexerCustomAction.prototype = Object.create(LexerAction.prototype); LexerCustomAction.prototype.constructor = LexerCustomAction; //

Custom actions are implemented by calling {@link Lexer//action} with the // appropriate rule and action indexes.

LexerCustomAction.prototype.execute = function(lexer) { lexer.action(null, this.ruleIndex, this.actionIndex); }; LexerCustomAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.ruleIndex, this.actionIndex); }; LexerCustomAction.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof LexerCustomAction)) { return false; } else { return this.ruleIndex === other.ruleIndex && this.actionIndex === other.actionIndex; } }; // Implements the {@code channel} lexer action by calling // {@link Lexer//setChannel} with the assigned channel. // Constructs a new {@code channel} action with the specified channel value. // @param channel The channel value to pass to {@link Lexer//setChannel}. function LexerChannelAction(channel) { LexerAction.call(this, LexerActionType.CHANNEL); this.channel = channel; return this; } LexerChannelAction.prototype = Object.create(LexerAction.prototype); LexerChannelAction.prototype.constructor = LexerChannelAction; //

This action is implemented by calling {@link Lexer//setChannel} with the // value provided by {@link //getChannel}.

LexerChannelAction.prototype.execute = function(lexer) { lexer._channel = this.channel; }; LexerChannelAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.channel); }; LexerChannelAction.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof LexerChannelAction)) { return false; } else { return this.channel === other.channel; } }; LexerChannelAction.prototype.toString = function() { return "channel(" + this.channel + ")"; }; // This implementation of {@link LexerAction} is used for tracking input offsets // for position-dependent actions within a {@link LexerActionExecutor}. // //

This action is not serialized as part of the ATN, and is only required for // position-dependent lexer actions which appear at a location other than the // end of a rule. For more information about DFA optimizations employed for // lexer actions, see {@link LexerActionExecutor//append} and // {@link LexerActionExecutor//fixOffsetBeforeMatch}.

// Constructs a new indexed custom action by associating a character offset // with a {@link LexerAction}. // //

Note: This class is only required for lexer actions for which // {@link LexerAction//isPositionDependent} returns {@code true}.

// // @param offset The offset into the input {@link CharStream}, relative to // the token start index, at which the specified lexer action should be // executed. // @param action The lexer action to execute at a particular offset in the // input {@link CharStream}. function LexerIndexedCustomAction(offset, action) { LexerAction.call(this, action.actionType); this.offset = offset; this.action = action; this.isPositionDependent = true; return this; } LexerIndexedCustomAction.prototype = Object.create(LexerAction.prototype); LexerIndexedCustomAction.prototype.constructor = LexerIndexedCustomAction; //

This method calls {@link //execute} on the result of {@link //getAction} // using the provided {@code lexer}.

LexerIndexedCustomAction.prototype.execute = function(lexer) { // assume the input stream position was properly set by the calling code this.action.execute(lexer); }; LexerIndexedCustomAction.prototype.updateHashCode = function(hash) { hash.update(this.actionType, this.offset, this.action); }; LexerIndexedCustomAction.prototype.equals = function(other) { if (this === other) { return true; } else if (! (other instanceof LexerIndexedCustomAction)) { return false; } else { return this.offset === other.offset && this.action === other.action; } }; exports.LexerActionType = LexerActionType; exports.LexerSkipAction = LexerSkipAction; exports.LexerChannelAction = LexerChannelAction; exports.LexerCustomAction = LexerCustomAction; exports.LexerIndexedCustomAction = LexerIndexedCustomAction; exports.LexerMoreAction = LexerMoreAction; exports.LexerTypeAction = LexerTypeAction; exports.LexerPushModeAction = LexerPushModeAction; exports.LexerPopModeAction = LexerPopModeAction; exports.LexerModeAction = LexerModeAction; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// // When we hit an accept state in either the DFA or the ATN, we // have to notify the character stream to start buffering characters // via {@link IntStream//mark} and record the current state. The current sim state // includes the current index into the input, the current line, // and current character position in that line. Note that the Lexer is // tracking the starting line and characterization of the token. These // variables track the "state" of the simulator when it hits an accept state. // //

We track these variables separately for the DFA and ATN simulation // because the DFA simulation often has to fail over to the ATN // simulation. If the ATN simulation fails, we need the DFA to fall // back to its previously accepted state, if any. If the ATN succeeds, // then the ATN does the accept and the DFA simulator that invoked it // can simply return the predicted token type.

/// var Token = __webpack_require__(6).Token; var Lexer = __webpack_require__(22).Lexer; var ATN = __webpack_require__(3).ATN; var ATNSimulator = __webpack_require__(27).ATNSimulator; var DFAState = __webpack_require__(28).DFAState; var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var OrderedATNConfigSet = __webpack_require__(29).OrderedATNConfigSet; var PredictionContext = __webpack_require__(12).PredictionContext; var SingletonPredictionContext = __webpack_require__(12).SingletonPredictionContext; var RuleStopState = __webpack_require__(8).RuleStopState; var LexerATNConfig = __webpack_require__(7).LexerATNConfig; var Transition = __webpack_require__(11).Transition; var LexerActionExecutor = __webpack_require__(30).LexerActionExecutor; var LexerNoViableAltException = __webpack_require__(26).LexerNoViableAltException; function resetSimState(sim) { sim.index = -1; sim.line = 0; sim.column = -1; sim.dfaState = null; } function SimState() { resetSimState(this); return this; } SimState.prototype.reset = function() { resetSimState(this); }; function LexerATNSimulator(recog, atn, decisionToDFA, sharedContextCache) { ATNSimulator.call(this, atn, sharedContextCache); this.decisionToDFA = decisionToDFA; this.recog = recog; // The current token's starting index into the character stream. // Shared across DFA to ATN simulation in case the ATN fails and the // DFA did not have a previous accept state. In this case, we use the // ATN-generated exception object. this.startIndex = -1; // line number 1..n within the input/// this.line = 1; // The index of the character relative to the beginning of the line // 0..n-1/// this.column = 0; this.mode = Lexer.DEFAULT_MODE; // Used during DFA/ATN exec to record the most recent accept configuration // info this.prevAccept = new SimState(); // done return this; } LexerATNSimulator.prototype = Object.create(ATNSimulator.prototype); LexerATNSimulator.prototype.constructor = LexerATNSimulator; LexerATNSimulator.debug = false; LexerATNSimulator.dfa_debug = false; LexerATNSimulator.MIN_DFA_EDGE = 0; LexerATNSimulator.MAX_DFA_EDGE = 127; // forces unicode to stay in ATN LexerATNSimulator.match_calls = 0; LexerATNSimulator.prototype.copyState = function(simulator) { this.column = simulator.column; this.line = simulator.line; this.mode = simulator.mode; this.startIndex = simulator.startIndex; }; LexerATNSimulator.prototype.match = function(input, mode) { this.match_calls += 1; this.mode = mode; var mark = input.mark(); try { this.startIndex = input.index; this.prevAccept.reset(); var dfa = this.decisionToDFA[mode]; if (dfa.s0 === null) { return this.matchATN(input); } else { return this.execATN(input, dfa.s0); } } finally { input.release(mark); } }; LexerATNSimulator.prototype.reset = function() { this.prevAccept.reset(); this.startIndex = -1; this.line = 1; this.column = 0; this.mode = Lexer.DEFAULT_MODE; }; LexerATNSimulator.prototype.matchATN = function(input) { var startState = this.atn.modeToStartState[this.mode]; if (LexerATNSimulator.debug) { console.log("matchATN mode " + this.mode + " start: " + startState); } var old_mode = this.mode; var s0_closure = this.computeStartState(input, startState); var suppressEdge = s0_closure.hasSemanticContext; s0_closure.hasSemanticContext = false; var next = this.addDFAState(s0_closure); if (!suppressEdge) { this.decisionToDFA[this.mode].s0 = next; } var predict = this.execATN(input, next); if (LexerATNSimulator.debug) { console.log("DFA after matchATN: " + this.decisionToDFA[old_mode].toLexerString()); } return predict; }; LexerATNSimulator.prototype.execATN = function(input, ds0) { if (LexerATNSimulator.debug) { console.log("start state closure=" + ds0.configs); } if (ds0.isAcceptState) { // allow zero-length tokens this.captureSimState(this.prevAccept, input, ds0); } var t = input.LA(1); var s = ds0; // s is current/from DFA state while (true) { // while more work if (LexerATNSimulator.debug) { console.log("execATN loop starting closure: " + s.configs); } // As we move src->trg, src->trg, we keep track of the previous trg to // avoid looking up the DFA state again, which is expensive. // If the previous target was already part of the DFA, we might // be able to avoid doing a reach operation upon t. If s!=null, // it means that semantic predicates didn't prevent us from // creating a DFA state. Once we know s!=null, we check to see if // the DFA state has an edge already for t. If so, we can just reuse // it's configuration set; there's no point in re-computing it. // This is kind of like doing DFA simulation within the ATN // simulation because DFA simulation is really just a way to avoid // computing reach/closure sets. Technically, once we know that // we have a previously added DFA state, we could jump over to // the DFA simulator. But, that would mean popping back and forth // a lot and making things more complicated algorithmically. // This optimization makes a lot of sense for loops within DFA. // A character will take us back to an existing DFA state // that already has lots of edges out of it. e.g., .* in comments. // print("Target for:" + str(s) + " and:" + str(t)) var target = this.getExistingTargetState(s, t); // print("Existing:" + str(target)) if (target === null) { target = this.computeTargetState(input, s, t); // print("Computed:" + str(target)) } if (target === ATNSimulator.ERROR) { break; } // If this is a consumable input element, make sure to consume before // capturing the accept state so the input index, line, and char // position accurately reflect the state of the interpreter at the // end of the token. if (t !== Token.EOF) { this.consume(input); } if (target.isAcceptState) { this.captureSimState(this.prevAccept, input, target); if (t === Token.EOF) { break; } } t = input.LA(1); s = target; // flip; current DFA target becomes new src/from state } return this.failOrAccept(this.prevAccept, input, s.configs, t); }; // Get an existing target state for an edge in the DFA. If the target state // for the edge has not yet been computed or is otherwise not available, // this method returns {@code null}. // // @param s The current DFA state // @param t The next input symbol // @return The existing target DFA state for the given input symbol // {@code t}, or {@code null} if the target state for this edge is not // already cached LexerATNSimulator.prototype.getExistingTargetState = function(s, t) { if (s.edges === null || t < LexerATNSimulator.MIN_DFA_EDGE || t > LexerATNSimulator.MAX_DFA_EDGE) { return null; } var target = s.edges[t - LexerATNSimulator.MIN_DFA_EDGE]; if(target===undefined) { target = null; } if (LexerATNSimulator.debug && target !== null) { console.log("reuse state " + s.stateNumber + " edge to " + target.stateNumber); } return target; }; // Compute a target state for an edge in the DFA, and attempt to add the // computed state and corresponding edge to the DFA. // // @param input The input stream // @param s The current DFA state // @param t The next input symbol // // @return The computed target DFA state for the given input symbol // {@code t}. If {@code t} does not lead to a valid DFA state, this method // returns {@link //ERROR}. LexerATNSimulator.prototype.computeTargetState = function(input, s, t) { var reach = new OrderedATNConfigSet(); // if we don't find an existing DFA state // Fill reach starting from closure, following t transitions this.getReachableConfigSet(input, s.configs, reach, t); if (reach.items.length === 0) { // we got nowhere on t from s if (!reach.hasSemanticContext) { // we got nowhere on t, don't throw out this knowledge; it'd // cause a failover from DFA later. this.addDFAEdge(s, t, ATNSimulator.ERROR); } // stop when we can't match any more char return ATNSimulator.ERROR; } // Add an edge from s to target DFA found/created for reach return this.addDFAEdge(s, t, null, reach); }; LexerATNSimulator.prototype.failOrAccept = function(prevAccept, input, reach, t) { if (this.prevAccept.dfaState !== null) { var lexerActionExecutor = prevAccept.dfaState.lexerActionExecutor; this.accept(input, lexerActionExecutor, this.startIndex, prevAccept.index, prevAccept.line, prevAccept.column); return prevAccept.dfaState.prediction; } else { // if no accept and EOF is first char, return EOF if (t === Token.EOF && input.index === this.startIndex) { return Token.EOF; } throw new LexerNoViableAltException(this.recog, input, this.startIndex, reach); } }; // Given a starting configuration set, figure out all ATN configurations // we can reach upon input {@code t}. Parameter {@code reach} is a return // parameter. LexerATNSimulator.prototype.getReachableConfigSet = function(input, closure, reach, t) { // this is used to skip processing for configs which have a lower priority // than a config that already reached an accept state for the same rule var skipAlt = ATN.INVALID_ALT_NUMBER; for (var i = 0; i < closure.items.length; i++) { var cfg = closure.items[i]; var currentAltReachedAcceptState = (cfg.alt === skipAlt); if (currentAltReachedAcceptState && cfg.passedThroughNonGreedyDecision) { continue; } if (LexerATNSimulator.debug) { console.log("testing %s at %s\n", this.getTokenName(t), cfg .toString(this.recog, true)); } for (var j = 0; j < cfg.state.transitions.length; j++) { var trans = cfg.state.transitions[j]; // for each transition var target = this.getReachableTarget(trans, t); if (target !== null) { var lexerActionExecutor = cfg.lexerActionExecutor; if (lexerActionExecutor !== null) { lexerActionExecutor = lexerActionExecutor.fixOffsetBeforeMatch(input.index - this.startIndex); } var treatEofAsEpsilon = (t === Token.EOF); var config = new LexerATNConfig({state:target, lexerActionExecutor:lexerActionExecutor}, cfg); if (this.closure(input, config, reach, currentAltReachedAcceptState, true, treatEofAsEpsilon)) { // any remaining configs for this alt have a lower priority // than the one that just reached an accept state. skipAlt = cfg.alt; } } } } }; LexerATNSimulator.prototype.accept = function(input, lexerActionExecutor, startIndex, index, line, charPos) { if (LexerATNSimulator.debug) { console.log("ACTION %s\n", lexerActionExecutor); } // seek to after last char in token input.seek(index); this.line = line; this.column = charPos; if (lexerActionExecutor !== null && this.recog !== null) { lexerActionExecutor.execute(this.recog, input, startIndex); } }; LexerATNSimulator.prototype.getReachableTarget = function(trans, t) { if (trans.matches(t, 0, Lexer.MAX_CHAR_VALUE)) { return trans.target; } else { return null; } }; LexerATNSimulator.prototype.computeStartState = function(input, p) { var initialContext = PredictionContext.EMPTY; var configs = new OrderedATNConfigSet(); for (var i = 0; i < p.transitions.length; i++) { var target = p.transitions[i].target; var cfg = new LexerATNConfig({state:target, alt:i+1, context:initialContext}, null); this.closure(input, cfg, configs, false, false, false); } return configs; }; // Since the alternatives within any lexer decision are ordered by // preference, this method stops pursuing the closure as soon as an accept // state is reached. After the first accept state is reached by depth-first // search from {@code config}, all other (potentially reachable) states for // this rule would have a lower priority. // // @return {@code true} if an accept state is reached, otherwise // {@code false}. LexerATNSimulator.prototype.closure = function(input, config, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon) { var cfg = null; if (LexerATNSimulator.debug) { console.log("closure(" + config.toString(this.recog, true) + ")"); } if (config.state instanceof RuleStopState) { if (LexerATNSimulator.debug) { if (this.recog !== null) { console.log("closure at %s rule stop %s\n", this.recog.ruleNames[config.state.ruleIndex], config); } else { console.log("closure at rule stop %s\n", config); } } if (config.context === null || config.context.hasEmptyPath()) { if (config.context === null || config.context.isEmpty()) { configs.add(config); return true; } else { configs.add(new LexerATNConfig({ state:config.state, context:PredictionContext.EMPTY}, config)); currentAltReachedAcceptState = true; } } if (config.context !== null && !config.context.isEmpty()) { for (var i = 0; i < config.context.length; i++) { if (config.context.getReturnState(i) !== PredictionContext.EMPTY_RETURN_STATE) { var newContext = config.context.getParent(i); // "pop" return state var returnState = this.atn.states[config.context.getReturnState(i)]; cfg = new LexerATNConfig({ state:returnState, context:newContext }, config); currentAltReachedAcceptState = this.closure(input, cfg, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon); } } } return currentAltReachedAcceptState; } // optimization if (!config.state.epsilonOnlyTransitions) { if (!currentAltReachedAcceptState || !config.passedThroughNonGreedyDecision) { configs.add(config); } } for (var j = 0; j < config.state.transitions.length; j++) { var trans = config.state.transitions[j]; cfg = this.getEpsilonTarget(input, config, trans, configs, speculative, treatEofAsEpsilon); if (cfg !== null) { currentAltReachedAcceptState = this.closure(input, cfg, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon); } } return currentAltReachedAcceptState; }; // side-effect: can alter configs.hasSemanticContext LexerATNSimulator.prototype.getEpsilonTarget = function(input, config, trans, configs, speculative, treatEofAsEpsilon) { var cfg = null; if (trans.serializationType === Transition.RULE) { var newContext = SingletonPredictionContext.create(config.context, trans.followState.stateNumber); cfg = new LexerATNConfig( { state:trans.target, context:newContext}, config); } else if (trans.serializationType === Transition.PRECEDENCE) { throw "Precedence predicates are not supported in lexers."; } else if (trans.serializationType === Transition.PREDICATE) { // Track traversing semantic predicates. If we traverse, // we cannot add a DFA state for this "reach" computation // because the DFA would not test the predicate again in the // future. Rather than creating collections of semantic predicates // like v3 and testing them on prediction, v4 will test them on the // fly all the time using the ATN not the DFA. This is slower but // semantically it's not used that often. One of the key elements to // this predicate mechanism is not adding DFA states that see // predicates immediately afterwards in the ATN. For example, // a : ID {p1}? | ID {p2}? ; // should create the start state for rule 'a' (to save start state // competition), but should not create target of ID state. The // collection of ATN states the following ID references includes // states reached by traversing predicates. Since this is when we // test them, we cannot cash the DFA state target of ID. if (LexerATNSimulator.debug) { console.log("EVAL rule " + trans.ruleIndex + ":" + trans.predIndex); } configs.hasSemanticContext = true; if (this.evaluatePredicate(input, trans.ruleIndex, trans.predIndex, speculative)) { cfg = new LexerATNConfig({ state:trans.target}, config); } } else if (trans.serializationType === Transition.ACTION) { if (config.context === null || config.context.hasEmptyPath()) { // execute actions anywhere in the start rule for a token. // // TODO: if the entry rule is invoked recursively, some // actions may be executed during the recursive call. The // problem can appear when hasEmptyPath() is true but // isEmpty() is false. In this case, the config needs to be // split into two contexts - one with just the empty path // and another with everything but the empty path. // Unfortunately, the current algorithm does not allow // getEpsilonTarget to return two configurations, so // additional modifications are needed before we can support // the split operation. var lexerActionExecutor = LexerActionExecutor.append(config.lexerActionExecutor, this.atn.lexerActions[trans.actionIndex]); cfg = new LexerATNConfig({ state:trans.target, lexerActionExecutor:lexerActionExecutor }, config); } else { // ignore actions in referenced rules cfg = new LexerATNConfig( { state:trans.target}, config); } } else if (trans.serializationType === Transition.EPSILON) { cfg = new LexerATNConfig({ state:trans.target}, config); } else if (trans.serializationType === Transition.ATOM || trans.serializationType === Transition.RANGE || trans.serializationType === Transition.SET) { if (treatEofAsEpsilon) { if (trans.matches(Token.EOF, 0, Lexer.MAX_CHAR_VALUE)) { cfg = new LexerATNConfig( { state:trans.target }, config); } } } return cfg; }; // Evaluate a predicate specified in the lexer. // //

If {@code speculative} is {@code true}, this method was called before // {@link //consume} for the matched character. This method should call // {@link //consume} before evaluating the predicate to ensure position // sensitive values, including {@link Lexer//getText}, {@link Lexer//getLine}, // and {@link Lexer//getcolumn}, properly reflect the current // lexer state. This method should restore {@code input} and the simulator // to the original state before returning (i.e. undo the actions made by the // call to {@link //consume}.

// // @param input The input stream. // @param ruleIndex The rule containing the predicate. // @param predIndex The index of the predicate within the rule. // @param speculative {@code true} if the current index in {@code input} is // one character before the predicate's location. // // @return {@code true} if the specified predicate evaluates to // {@code true}. // / LexerATNSimulator.prototype.evaluatePredicate = function(input, ruleIndex, predIndex, speculative) { // assume true if no recognizer was provided if (this.recog === null) { return true; } if (!speculative) { return this.recog.sempred(null, ruleIndex, predIndex); } var savedcolumn = this.column; var savedLine = this.line; var index = input.index; var marker = input.mark(); try { this.consume(input); return this.recog.sempred(null, ruleIndex, predIndex); } finally { this.column = savedcolumn; this.line = savedLine; input.seek(index); input.release(marker); } }; LexerATNSimulator.prototype.captureSimState = function(settings, input, dfaState) { settings.index = input.index; settings.line = this.line; settings.column = this.column; settings.dfaState = dfaState; }; LexerATNSimulator.prototype.addDFAEdge = function(from_, tk, to, cfgs) { if (to === undefined) { to = null; } if (cfgs === undefined) { cfgs = null; } if (to === null && cfgs !== null) { // leading to this call, ATNConfigSet.hasSemanticContext is used as a // marker indicating dynamic predicate evaluation makes this edge // dependent on the specific input sequence, so the static edge in the // DFA should be omitted. The target DFAState is still created since // execATN has the ability to resynchronize with the DFA state cache // following the predicate evaluation step. // // TJP notes: next time through the DFA, we see a pred again and eval. // If that gets us to a previously created (but dangling) DFA // state, we can continue in pure DFA mode from there. // / var suppressEdge = cfgs.hasSemanticContext; cfgs.hasSemanticContext = false; to = this.addDFAState(cfgs); if (suppressEdge) { return to; } } // add the edge if (tk < LexerATNSimulator.MIN_DFA_EDGE || tk > LexerATNSimulator.MAX_DFA_EDGE) { // Only track edges within the DFA bounds return to; } if (LexerATNSimulator.debug) { console.log("EDGE " + from_ + " -> " + to + " upon " + tk); } if (from_.edges === null) { // make room for tokens 1..n and -1 masquerading as index 0 from_.edges = []; } from_.edges[tk - LexerATNSimulator.MIN_DFA_EDGE] = to; // connect return to; }; // Add a new DFA state if there isn't one with this set of // configurations already. This method also detects the first // configuration containing an ATN rule stop state. Later, when // traversing the DFA, we will know which rule to accept. LexerATNSimulator.prototype.addDFAState = function(configs) { var proposed = new DFAState(null, configs); var firstConfigWithRuleStopState = null; for (var i = 0; i < configs.items.length; i++) { var cfg = configs.items[i]; if (cfg.state instanceof RuleStopState) { firstConfigWithRuleStopState = cfg; break; } } if (firstConfigWithRuleStopState !== null) { proposed.isAcceptState = true; proposed.lexerActionExecutor = firstConfigWithRuleStopState.lexerActionExecutor; proposed.prediction = this.atn.ruleToTokenType[firstConfigWithRuleStopState.state.ruleIndex]; } var dfa = this.decisionToDFA[this.mode]; var existing = dfa.states.get(proposed); if (existing!==null) { return existing; } var newState = proposed; newState.stateNumber = dfa.states.length; configs.setReadonly(true); newState.configs = configs; dfa.states.add(newState); return newState; }; LexerATNSimulator.prototype.getDFA = function(mode) { return this.decisionToDFA[mode]; }; // Get the text matched so far for the current token. LexerATNSimulator.prototype.getText = function(input) { // index is first lookahead char, don't include. return input.getText(this.startIndex, input.index - 1); }; LexerATNSimulator.prototype.consume = function(input) { var curChar = input.LA(1); if (curChar === "\n".charCodeAt(0)) { this.line += 1; this.column = 0; } else { this.column += 1; } input.consume(); }; LexerATNSimulator.prototype.getTokenName = function(tt) { if (tt === -1) { return "EOF"; } else { return "'" + String.fromCharCode(tt) + "'"; } }; exports.LexerATNSimulator = LexerATNSimulator; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ /// // A lexer is recognizer that draws input symbols from a character stream. // lexer grammars result in a subclass of this object. A Lexer object // uses simplified match() and error recovery mechanisms in the interest of speed. var Token = __webpack_require__(6).Token; var Recognizer = __webpack_require__(23).Recognizer; var CommonTokenFactory = __webpack_require__(25).CommonTokenFactory; var RecognitionException = __webpack_require__(26).RecognitionException; var LexerNoViableAltException = __webpack_require__(26).LexerNoViableAltException; function TokenSource() { return this; } function Lexer(input) { Recognizer.call(this); this._input = input; this._factory = CommonTokenFactory.DEFAULT; this._tokenFactorySourcePair = [ this, input ]; this._interp = null; // child classes must populate this // The goal of all lexer rules/methods is to create a token object. // this is an instance variable as multiple rules may collaborate to // create a single token. nextToken will return this object after // matching lexer rule(s). If you subclass to allow multiple token // emissions, then set this to the last token to be matched or // something nonnull so that the auto token emit mechanism will not // emit another token. this._token = null; // What character index in the stream did the current token start at? // Needed, for example, to get the text for current token. Set at // the start of nextToken. this._tokenStartCharIndex = -1; // The line on which the first character of the token resides/// this._tokenStartLine = -1; // The character position of first character within the line/// this._tokenStartColumn = -1; // Once we see EOF on char stream, next token will be EOF. // If you have DONE : EOF ; then you see DONE EOF. this._hitEOF = false; // The channel number for the current token/// this._channel = Token.DEFAULT_CHANNEL; // The token type for the current token/// this._type = Token.INVALID_TYPE; this._modeStack = []; this._mode = Lexer.DEFAULT_MODE; // You can set the text for the current token to override what is in // the input char buffer. Use setText() or can set this instance var. // / this._text = null; return this; } Lexer.prototype = Object.create(Recognizer.prototype); Lexer.prototype.constructor = Lexer; Lexer.DEFAULT_MODE = 0; Lexer.MORE = -2; Lexer.SKIP = -3; Lexer.DEFAULT_TOKEN_CHANNEL = Token.DEFAULT_CHANNEL; Lexer.HIDDEN = Token.HIDDEN_CHANNEL; Lexer.MIN_CHAR_VALUE = 0x0000; Lexer.MAX_CHAR_VALUE = 0x10FFFF; Lexer.prototype.reset = function() { // wack Lexer state variables if (this._input !== null) { this._input.seek(0); // rewind the input } this._token = null; this._type = Token.INVALID_TYPE; this._channel = Token.DEFAULT_CHANNEL; this._tokenStartCharIndex = -1; this._tokenStartColumn = -1; this._tokenStartLine = -1; this._text = null; this._hitEOF = false; this._mode = Lexer.DEFAULT_MODE; this._modeStack = []; this._interp.reset(); }; // Return a token from this source; i.e., match a token on the char stream. Lexer.prototype.nextToken = function() { if (this._input === null) { throw "nextToken requires a non-null input stream."; } // Mark start location in char stream so unbuffered streams are // guaranteed at least have text of current token var tokenStartMarker = this._input.mark(); try { while (true) { if (this._hitEOF) { this.emitEOF(); return this._token; } this._token = null; this._channel = Token.DEFAULT_CHANNEL; this._tokenStartCharIndex = this._input.index; this._tokenStartColumn = this._interp.column; this._tokenStartLine = this._interp.line; this._text = null; var continueOuter = false; while (true) { this._type = Token.INVALID_TYPE; var ttype = Lexer.SKIP; try { ttype = this._interp.match(this._input, this._mode); } catch (e) { if(e instanceof RecognitionException) { this.notifyListeners(e); // report error this.recover(e); } else { console.log(e.stack); throw e; } } if (this._input.LA(1) === Token.EOF) { this._hitEOF = true; } if (this._type === Token.INVALID_TYPE) { this._type = ttype; } if (this._type === Lexer.SKIP) { continueOuter = true; break; } if (this._type !== Lexer.MORE) { break; } } if (continueOuter) { continue; } if (this._token === null) { this.emit(); } return this._token; } } finally { // make sure we release marker after match or // unbuffered char stream will keep buffering this._input.release(tokenStartMarker); } }; // Instruct the lexer to skip creating a token for current lexer rule // and look for another token. nextToken() knows to keep looking when // a lexer rule finishes with token set to SKIP_TOKEN. Recall that // if token==null at end of any token rule, it creates one for you // and emits it. // / Lexer.prototype.skip = function() { this._type = Lexer.SKIP; }; Lexer.prototype.more = function() { this._type = Lexer.MORE; }; Lexer.prototype.mode = function(m) { this._mode = m; }; Lexer.prototype.pushMode = function(m) { if (this._interp.debug) { console.log("pushMode " + m); } this._modeStack.push(this._mode); this.mode(m); }; Lexer.prototype.popMode = function() { if (this._modeStack.length === 0) { throw "Empty Stack"; } if (this._interp.debug) { console.log("popMode back to " + this._modeStack.slice(0, -1)); } this.mode(this._modeStack.pop()); return this._mode; }; // Set the char stream and reset the lexer Object.defineProperty(Lexer.prototype, "inputStream", { get : function() { return this._input; }, set : function(input) { this._input = null; this._tokenFactorySourcePair = [ this, this._input ]; this.reset(); this._input = input; this._tokenFactorySourcePair = [ this, this._input ]; } }); Object.defineProperty(Lexer.prototype, "sourceName", { get : function sourceName() { return this._input.sourceName; } }); // By default does not support multiple emits per nextToken invocation // for efficiency reasons. Subclass and override this method, nextToken, // and getToken (to push tokens into a list and pull from that list // rather than a single variable as this implementation does). // / Lexer.prototype.emitToken = function(token) { this._token = token; }; // The standard method called to automatically emit a token at the // outermost lexical rule. The token object should point into the // char buffer start..stop. If there is a text override in 'text', // use that to set the token's text. Override this method to emit // custom Token objects or provide a new factory. // / Lexer.prototype.emit = function() { var t = this._factory.create(this._tokenFactorySourcePair, this._type, this._text, this._channel, this._tokenStartCharIndex, this .getCharIndex() - 1, this._tokenStartLine, this._tokenStartColumn); this.emitToken(t); return t; }; Lexer.prototype.emitEOF = function() { var cpos = this.column; var lpos = this.line; var eof = this._factory.create(this._tokenFactorySourcePair, Token.EOF, null, Token.DEFAULT_CHANNEL, this._input.index, this._input.index - 1, lpos, cpos); this.emitToken(eof); return eof; }; Object.defineProperty(Lexer.prototype, "type", { get : function() { return this.type; }, set : function(type) { this._type = type; } }); Object.defineProperty(Lexer.prototype, "line", { get : function() { return this._interp.line; }, set : function(line) { this._interp.line = line; } }); Object.defineProperty(Lexer.prototype, "column", { get : function() { return this._interp.column; }, set : function(column) { this._interp.column = column; } }); // What is the index of the current character of lookahead?/// Lexer.prototype.getCharIndex = function() { return this._input.index; }; // Return the text matched so far for the current token or any text override. //Set the complete text of this token; it wipes any previous changes to the text. Object.defineProperty(Lexer.prototype, "text", { get : function() { if (this._text !== null) { return this._text; } else { return this._interp.getText(this._input); } }, set : function(text) { this._text = text; } }); // Return a list of all Token objects in input char stream. // Forces load of all tokens. Does not include EOF token. // / Lexer.prototype.getAllTokens = function() { var tokens = []; var t = this.nextToken(); while (t.type !== Token.EOF) { tokens.push(t); t = this.nextToken(); } return tokens; }; Lexer.prototype.notifyListeners = function(e) { var start = this._tokenStartCharIndex; var stop = this._input.index; var text = this._input.getText(start, stop); var msg = "token recognition error at: '" + this.getErrorDisplay(text) + "'"; var listener = this.getErrorListenerDispatch(); listener.syntaxError(this, null, this._tokenStartLine, this._tokenStartColumn, msg, e); }; Lexer.prototype.getErrorDisplay = function(s) { var d = []; for (var i = 0; i < s.length; i++) { d.push(s[i]); } return d.join(''); }; Lexer.prototype.getErrorDisplayForChar = function(c) { if (c.charCodeAt(0) === Token.EOF) { return ""; } else if (c === '\n') { return "\\n"; } else if (c === '\t') { return "\\t"; } else if (c === '\r') { return "\\r"; } else { return c; } }; Lexer.prototype.getCharErrorDisplay = function(c) { return "'" + this.getErrorDisplayForChar(c) + "'"; }; // Lexers can normally match any char in it's vocabulary after matching // a token, so do the easy thing and just kill a character and hope // it all works out. You can instead use the rule invocation stack // to do sophisticated error recovery if you are in a fragment rule. // / Lexer.prototype.recover = function(re) { if (this._input.LA(1) !== Token.EOF) { if (re instanceof LexerNoViableAltException) { // skip a char and try again this._interp.consume(this._input); } else { // TODO: Do we lose character or line position information? this._input.consume(); } } }; exports.Lexer = Lexer; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // var Token = __webpack_require__(6).Token; var ConsoleErrorListener = __webpack_require__(24).ConsoleErrorListener; var ProxyErrorListener = __webpack_require__(24).ProxyErrorListener; function Recognizer() { this._listeners = [ ConsoleErrorListener.INSTANCE ]; this._interp = null; this._stateNumber = -1; return this; } Recognizer.tokenTypeMapCache = {}; Recognizer.ruleIndexMapCache = {}; Recognizer.prototype.checkVersion = function(toolVersion) { var runtimeVersion = "4.7.1"; if (runtimeVersion!==toolVersion) { console.log("ANTLR runtime and generated code versions disagree: "+runtimeVersion+"!="+toolVersion); } }; Recognizer.prototype.addErrorListener = function(listener) { this._listeners.push(listener); }; Recognizer.prototype.removeErrorListeners = function() { this._listeners = []; }; Recognizer.prototype.getTokenTypeMap = function() { var tokenNames = this.getTokenNames(); if (tokenNames===null) { throw("The current recognizer does not provide a list of token names."); } var result = this.tokenTypeMapCache[tokenNames]; if(result===undefined) { result = tokenNames.reduce(function(o, k, i) { o[k] = i; }); result.EOF = Token.EOF; this.tokenTypeMapCache[tokenNames] = result; } return result; }; // Get a map from rule names to rule indexes. // //

Used for XPath and tree pattern compilation.

// Recognizer.prototype.getRuleIndexMap = function() { var ruleNames = this.ruleNames; if (ruleNames===null) { throw("The current recognizer does not provide a list of rule names."); } var result = this.ruleIndexMapCache[ruleNames]; if(result===undefined) { result = ruleNames.reduce(function(o, k, i) { o[k] = i; }); this.ruleIndexMapCache[ruleNames] = result; } return result; }; Recognizer.prototype.getTokenType = function(tokenName) { var ttype = this.getTokenTypeMap()[tokenName]; if (ttype !==undefined) { return ttype; } else { return Token.INVALID_TYPE; } }; // What is the error header, normally line/character position information?// Recognizer.prototype.getErrorHeader = function(e) { var line = e.getOffendingToken().line; var column = e.getOffendingToken().column; return "line " + line + ":" + column; }; // How should a token be displayed in an error message? The default // is to display just the text, but during development you might // want to have a lot of information spit out. Override in that case // to use t.toString() (which, for CommonToken, dumps everything about // the token). This is better than forcing you to override a method in // your token objects because you don't have to go modify your lexer // so that it creates a new Java type. // // @deprecated This method is not called by the ANTLR 4 Runtime. Specific // implementations of {@link ANTLRErrorStrategy} may provide a similar // feature when necessary. For example, see // {@link DefaultErrorStrategy//getTokenErrorDisplay}. // Recognizer.prototype.getTokenErrorDisplay = function(t) { if (t===null) { return ""; } var s = t.text; if (s===null) { if (t.type===Token.EOF) { s = ""; } else { s = "<" + t.type + ">"; } } s = s.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"); return "'" + s + "'"; }; Recognizer.prototype.getErrorListenerDispatch = function() { return new ProxyErrorListener(this._listeners); }; // subclass needs to override these if there are sempreds or actions // that the ATN interp needs to execute Recognizer.prototype.sempred = function(localctx, ruleIndex, actionIndex) { return true; }; Recognizer.prototype.precpred = function(localctx , precedence) { return true; }; //Indicate that the recognizer has changed internal state that is //consistent with the ATN state passed in. This way we always know //where we are in the ATN as the parser goes along. The rule //context objects form a stack that lets us see the stack of //invoking rules. Combine this and we have complete ATN //configuration information. Object.defineProperty(Recognizer.prototype, "state", { get : function() { return this._stateNumber; }, set : function(state) { this._stateNumber = state; } }); exports.Recognizer = Recognizer; /***/ }), /* 24 */ /***/ (function(module, exports) { // /* 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. */ // Provides an empty default implementation of {@link ANTLRErrorListener}. The // default implementation of each method does nothing, but can be overridden as // necessary. function ErrorListener() { return this; } ErrorListener.prototype.syntaxError = function(recognizer, offendingSymbol, line, column, msg, e) { }; ErrorListener.prototype.reportAmbiguity = function(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) { }; ErrorListener.prototype.reportAttemptingFullContext = function(recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs) { }; ErrorListener.prototype.reportContextSensitivity = function(recognizer, dfa, startIndex, stopIndex, prediction, configs) { }; function ConsoleErrorListener() { ErrorListener.call(this); return this; } ConsoleErrorListener.prototype = Object.create(ErrorListener.prototype); ConsoleErrorListener.prototype.constructor = ConsoleErrorListener; // // Provides a default instance of {@link ConsoleErrorListener}. // ConsoleErrorListener.INSTANCE = new ConsoleErrorListener(); // // {@inheritDoc} // //

// This implementation prints messages to {@link System//err} containing the // values of {@code line}, {@code charPositionInLine}, and {@code msg} using // the following format.

// //
	// line line:charPositionInLine msg
	// 
// ConsoleErrorListener.prototype.syntaxError = function(recognizer, offendingSymbol, line, column, msg, e) { console.error("line " + line + ":" + column + " " + msg); }; function ProxyErrorListener(delegates) { ErrorListener.call(this); if (delegates===null) { throw "delegates"; } this.delegates = delegates; return this; } ProxyErrorListener.prototype = Object.create(ErrorListener.prototype); ProxyErrorListener.prototype.constructor = ProxyErrorListener; ProxyErrorListener.prototype.syntaxError = function(recognizer, offendingSymbol, line, column, msg, e) { this.delegates.map(function(d) { d.syntaxError(recognizer, offendingSymbol, line, column, msg, e); }); }; ProxyErrorListener.prototype.reportAmbiguity = function(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) { this.delegates.map(function(d) { d.reportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs); }); }; ProxyErrorListener.prototype.reportAttemptingFullContext = function(recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs) { this.delegates.map(function(d) { d.reportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs); }); }; ProxyErrorListener.prototype.reportContextSensitivity = function(recognizer, dfa, startIndex, stopIndex, prediction, configs) { this.delegates.map(function(d) { d.reportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, configs); }); }; exports.ErrorListener = ErrorListener; exports.ConsoleErrorListener = ConsoleErrorListener; exports.ProxyErrorListener = ProxyErrorListener; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // // This default implementation of {@link TokenFactory} creates // {@link CommonToken} objects. // var CommonToken = __webpack_require__(6).CommonToken; function TokenFactory() { return this; } function CommonTokenFactory(copyText) { TokenFactory.call(this); // Indicates whether {@link CommonToken//setText} should be called after // constructing tokens to explicitly set the text. This is useful for cases // where the input stream might not be able to provide arbitrary substrings // of text from the input after the lexer creates a token (e.g. the // implementation of {@link CharStream//getText} in // {@link UnbufferedCharStream} throws an // {@link UnsupportedOperationException}). Explicitly setting the token text // allows {@link Token//getText} to be called at any time regardless of the // input stream implementation. // //

// The default value is {@code false} to avoid the performance and memory // overhead of copying text for every token unless explicitly requested.

// this.copyText = copyText===undefined ? false : copyText; return this; } CommonTokenFactory.prototype = Object.create(TokenFactory.prototype); CommonTokenFactory.prototype.constructor = CommonTokenFactory; // // The default {@link CommonTokenFactory} instance. // //

// This token factory does not explicitly copy token text when constructing // tokens.

// CommonTokenFactory.DEFAULT = new CommonTokenFactory(); CommonTokenFactory.prototype.create = function(source, type, text, channel, start, stop, line, column) { var t = new CommonToken(source, type, channel, start, stop); t.line = line; t.column = column; if (text !==null) { t.text = text; } else if (this.copyText && source[1] !==null) { t.text = source[1].getText(start,stop); } return t; }; CommonTokenFactory.prototype.createThin = function(type, text) { var t = new CommonToken(null, type); t.text = text; return t; }; exports.CommonTokenFactory = CommonTokenFactory; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ // The root of the ANTLR exception hierarchy. In general, ANTLR tracks just // 3 kinds of errors: prediction errors, failed predicate errors, and // mismatched input errors. In each case, the parser knows where it is // in the input, where it is in the ATN, the rule invocation stack, // and what kind of problem occurred. var PredicateTransition = __webpack_require__(11).PredicateTransition; function RecognitionException(params) { Error.call(this); if (!!Error.captureStackTrace) { Error.captureStackTrace(this, RecognitionException); } else { var stack = new Error().stack; } this.message = params.message; this.recognizer = params.recognizer; this.input = params.input; this.ctx = params.ctx; // The current {@link Token} when an error occurred. Since not all streams // support accessing symbols by index, we have to track the {@link Token} // instance itself. this.offendingToken = null; // Get the ATN state number the parser was in at the time the error // occurred. For {@link NoViableAltException} and // {@link LexerNoViableAltException} exceptions, this is the // {@link DecisionState} number. For others, it is the state whose outgoing // edge we couldn't match. this.offendingState = -1; if (this.recognizer!==null) { this.offendingState = this.recognizer.state; } return this; } RecognitionException.prototype = Object.create(Error.prototype); RecognitionException.prototype.constructor = RecognitionException; //

If the state number is not known, this method returns -1.

// // Gets the set of input symbols which could potentially follow the // previously matched symbol at the time this exception was thrown. // //

If the set of expected tokens is not known and could not be computed, // this method returns {@code null}.

// // @return The set of token types that could potentially follow the current // state in the ATN, or {@code null} if the information is not available. // / RecognitionException.prototype.getExpectedTokens = function() { if (this.recognizer!==null) { return this.recognizer.atn.getExpectedTokens(this.offendingState, this.ctx); } else { return null; } }; RecognitionException.prototype.toString = function() { return this.message; }; function LexerNoViableAltException(lexer, input, startIndex, deadEndConfigs) { RecognitionException.call(this, {message:"", recognizer:lexer, input:input, ctx:null}); this.startIndex = startIndex; this.deadEndConfigs = deadEndConfigs; return this; } LexerNoViableAltException.prototype = Object.create(RecognitionException.prototype); LexerNoViableAltException.prototype.constructor = LexerNoViableAltException; LexerNoViableAltException.prototype.toString = function() { var symbol = ""; if (this.startIndex >= 0 && this.startIndex < this.input.size) { symbol = this.input.getText((this.startIndex,this.startIndex)); } return "LexerNoViableAltException" + symbol; }; // Indicates that the parser could not decide which of two or more paths // to take based upon the remaining input. It tracks the starting token // of the offending input and also knows where the parser was // in the various paths when the error. Reported by reportNoViableAlternative() // function NoViableAltException(recognizer, input, startToken, offendingToken, deadEndConfigs, ctx) { ctx = ctx || recognizer._ctx; offendingToken = offendingToken || recognizer.getCurrentToken(); startToken = startToken || recognizer.getCurrentToken(); input = input || recognizer.getInputStream(); RecognitionException.call(this, {message:"", recognizer:recognizer, input:input, ctx:ctx}); // Which configurations did we try at input.index() that couldn't match // input.LT(1)?// this.deadEndConfigs = deadEndConfigs; // The token object at the start index; the input stream might // not be buffering tokens so get a reference to it. (At the // time the error occurred, of course the stream needs to keep a // buffer all of the tokens but later we might not have access to those.) this.startToken = startToken; this.offendingToken = offendingToken; } NoViableAltException.prototype = Object.create(RecognitionException.prototype); NoViableAltException.prototype.constructor = NoViableAltException; // This signifies any kind of mismatched input exceptions such as // when the current input does not match the expected token. // function InputMismatchException(recognizer) { RecognitionException.call(this, {message:"", recognizer:recognizer, input:recognizer.getInputStream(), ctx:recognizer._ctx}); this.offendingToken = recognizer.getCurrentToken(); } InputMismatchException.prototype = Object.create(RecognitionException.prototype); InputMismatchException.prototype.constructor = InputMismatchException; // 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. function FailedPredicateException(recognizer, predicate, message) { RecognitionException.call(this, {message:this.formatMessage(predicate,message || null), recognizer:recognizer, input:recognizer.getInputStream(), ctx:recognizer._ctx}); var s = recognizer._interp.atn.states[recognizer.state]; var trans = s.transitions[0]; if (trans instanceof PredicateTransition) { this.ruleIndex = trans.ruleIndex; this.predicateIndex = trans.predIndex; } else { this.ruleIndex = 0; this.predicateIndex = 0; } this.predicate = predicate; this.offendingToken = recognizer.getCurrentToken(); return this; } FailedPredicateException.prototype = Object.create(RecognitionException.prototype); FailedPredicateException.prototype.constructor = FailedPredicateException; FailedPredicateException.prototype.formatMessage = function(predicate, message) { if (message !==null) { return message; } else { return "failed predicate: {" + predicate + "}?"; } }; function ParseCancellationException() { Error.call(this); Error.captureStackTrace(this, ParseCancellationException); return this; } ParseCancellationException.prototype = Object.create(Error.prototype); ParseCancellationException.prototype.constructor = ParseCancellationException; exports.RecognitionException = RecognitionException; exports.NoViableAltException = NoViableAltException; exports.LexerNoViableAltException = LexerNoViableAltException; exports.InputMismatchException = InputMismatchException; exports.FailedPredicateException = FailedPredicateException; exports.ParseCancellationException = ParseCancellationException; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// var DFAState = __webpack_require__(28).DFAState; var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var getCachedPredictionContext = __webpack_require__(12).getCachedPredictionContext; function ATNSimulator(atn, sharedContextCache) { // The context cache maps all PredictionContext objects that are == // to a single cached copy. This cache is shared across all contexts // in all ATNConfigs in all DFA states. We rebuild each ATNConfigSet // to use only cached nodes/graphs in addDFAState(). We don't want to // fill this during closure() since there are lots of contexts that // pop up but are not used ever again. It also greatly slows down closure(). // //

This cache makes a huge difference in memory and a little bit in speed. // For the Java grammar on java.*, it dropped the memory requirements // at the end from 25M to 16M. We don't store any of the full context // graphs in the DFA because they are limited to local context only, // but apparently there's a lot of repetition there as well. We optimize // the config contexts before storing the config set in the DFA states // by literally rebuilding them with cached subgraphs only.

// //

I tried a cache for use during closure operations, that was // whacked after each adaptivePredict(). It cost a little bit // more time I think and doesn't save on the overall footprint // so it's not worth the complexity.

/// this.atn = atn; this.sharedContextCache = sharedContextCache; return this; } // Must distinguish between missing edge and edge we know leads nowhere/// ATNSimulator.ERROR = new DFAState(0x7FFFFFFF, new ATNConfigSet()); ATNSimulator.prototype.getCachedContext = function(context) { if (this.sharedContextCache ===null) { return context; } var visited = {}; return getCachedPredictionContext(context, this.sharedContextCache, visited); }; exports.ATNSimulator = ATNSimulator; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var Utils = __webpack_require__(5); var Hash = Utils.Hash; var Set = Utils.Set; // Map a predicate to a predicted alternative./// function PredPrediction(pred, alt) { this.alt = alt; this.pred = pred; return this; } PredPrediction.prototype.toString = function() { return "(" + this.pred + ", " + this.alt + ")"; }; // A DFA state represents a set of possible ATN configurations. // As Aho, Sethi, Ullman p. 117 says "The DFA uses its state // to keep track of all possible states the ATN can be in after // reading each input symbol. That is to say, after reading // input a1a2..an, the DFA is in a state that represents the // subset T of the states of the ATN that are reachable from the // ATN's start state along some path labeled a1a2..an." // In conventional NFA→DFA conversion, therefore, the subset T // would be a bitset representing the set of states the // ATN could be in. We need to track the alt predicted by each // state as well, however. More importantly, we need to maintain // a stack of states, tracking the closure operations as they // jump from rule to rule, emulating rule invocations (method calls). // I have to add a stack to simulate the proper lookahead sequences for // the underlying LL grammar from which the ATN was derived. // //

I use a set of ATNConfig objects not simple states. An ATNConfig // is both a state (ala normal conversion) and a RuleContext describing // the chain of rules (if any) followed to arrive at that state.

// //

A DFA state may have multiple references to a particular state, // but with different ATN contexts (with same or different alts) // meaning that state was reached via a different set of rule invocations.

// / function DFAState(stateNumber, configs) { if (stateNumber === null) { stateNumber = -1; } if (configs === null) { configs = new ATNConfigSet(); } this.stateNumber = stateNumber; this.configs = configs; // {@code edges[symbol]} points to target of symbol. Shift up by 1 so (-1) // {@link Token//EOF} maps to {@code edges[0]}. this.edges = null; this.isAcceptState = false; // if accept state, what ttype do we match or alt do we predict? // This is set to {@link ATN//INVALID_ALT_NUMBER} when {@link // //predicates}{@code !=null} or // {@link //requiresFullContext}. this.prediction = 0; this.lexerActionExecutor = null; // Indicates that this state was created during SLL prediction that // discovered a conflict between the configurations in the state. Future // {@link ParserATNSimulator//execATN} invocations immediately jumped doing // full context prediction if this field is true. this.requiresFullContext = false; // During SLL parsing, this is a list of predicates associated with the // ATN configurations of the DFA state. When we have predicates, // {@link //requiresFullContext} is {@code false} since full context // prediction evaluates predicates // on-the-fly. If this is not null, then {@link //prediction} is // {@link ATN//INVALID_ALT_NUMBER}. // //

We only use these for non-{@link //requiresFullContext} but // conflicting states. That // means we know from the context (it's $ or we don't dip into outer // context) that it's an ambiguity not a conflict.

// //

This list is computed by {@link // ParserATNSimulator//predicateDFAState}.

this.predicates = null; return this; } // Get the set of all alts mentioned by all ATN configurations in this // DFA state. DFAState.prototype.getAltSet = function() { var alts = new Set(); if (this.configs !== null) { for (var i = 0; i < this.configs.length; i++) { var c = this.configs[i]; alts.add(c.alt); } } if (alts.length === 0) { return null; } else { return alts; } }; // Two {@link DFAState} instances are equal if their ATN configuration sets // are the same. This method is used to see if a state already exists. // //

Because the number of alternatives and number of ATN configurations are // finite, there is a finite number of DFA states that can be processed. // This is necessary to show that the algorithm terminates.

// //

Cannot test the DFA state numbers here because in // {@link ParserATNSimulator//addDFAState} we need to know if any other state // exists that has this exact set of ATN configurations. The // {@link //stateNumber} is irrelevant.

DFAState.prototype.equals = function(other) { // compare set of ATN configurations in this set with other return this === other || (other instanceof DFAState && this.configs.equals(other.configs)); }; DFAState.prototype.toString = function() { var s = "" + this.stateNumber + ":" + this.configs; if(this.isAcceptState) { s = s + "=>"; if (this.predicates !== null) s = s + this.predicates; else s = s + this.prediction; } return s; }; DFAState.prototype.hashCode = function() { var hash = new Hash(); hash.update(this.configs); if(this.isAcceptState) { if (this.predicates !== null) hash.update(this.predicates); else hash.update(this.prediction); } return hash.finish(); }; exports.DFAState = DFAState; exports.PredPrediction = PredPrediction; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // Specialized {@link Set}{@code <}{@link ATNConfig}{@code >} that can track // info about the set, with support for combining similar configurations using a // graph-structured stack. /// var ATN = __webpack_require__(3).ATN; var Utils = __webpack_require__(5); var Hash = Utils.Hash; var Set = Utils.Set; var SemanticContext = __webpack_require__(9).SemanticContext; var merge = __webpack_require__(12).merge; function hashATNConfig(c) { return c.hashCodeForConfigSet(); } function equalATNConfigs(a, b) { if ( a===b ) { return true; } else if ( a===null || b===null ) { return false; } else return a.equalsForConfigSet(b); } function ATNConfigSet(fullCtx) { // // The reason that we need this is because we don't want the hash map to use // the standard hash code and equals. We need all configurations with the // same // {@code (s,i,_,semctx)} to be equal. Unfortunately, this key effectively // doubles // the number of objects associated with ATNConfigs. The other solution is // to // use a hash table that lets us specify the equals/hashcode operation. // All configs but hashed by (s, i, _, pi) not including context. Wiped out // when we go readonly as this set becomes a DFA state. this.configLookup = new Set(hashATNConfig, equalATNConfigs); // Indicates that this configuration set is part of a full context // LL prediction. It will be used to determine how to merge $. With SLL // it's a wildcard whereas it is not for LL context merge. this.fullCtx = fullCtx === undefined ? true : fullCtx; // Indicates that the set of configurations is read-only. Do not // allow any code to manipulate the set; DFA states will point at // the sets and they must not change. This does not protect the other // fields; in particular, conflictingAlts is set after // we've made this readonly. this.readOnly = false; // Track the elements as they are added to the set; supports get(i)/// this.configs = []; // TODO: these fields make me pretty uncomfortable but nice to pack up info // together, saves recomputation // TODO: can we track conflicts as they are added to save scanning configs // later? this.uniqueAlt = 0; this.conflictingAlts = null; // Used in parser and lexer. In lexer, it indicates we hit a pred // while computing a closure operation. Don't make a DFA state from this. this.hasSemanticContext = false; this.dipsIntoOuterContext = false; this.cachedHashCode = -1; return this; } // Adding a new config means merging contexts with existing configs for // {@code (s, i, pi, _)}, where {@code s} is the // {@link ATNConfig//state}, {@code i} is the {@link ATNConfig//alt}, and // {@code pi} is the {@link ATNConfig//semanticContext}. We use // {@code (s,i,pi)} as key. // //

This method updates {@link //dipsIntoOuterContext} and // {@link //hasSemanticContext} when necessary.

// / ATNConfigSet.prototype.add = function(config, mergeCache) { if (mergeCache === undefined) { mergeCache = null; } if (this.readOnly) { throw "This set is readonly"; } if (config.semanticContext !== SemanticContext.NONE) { this.hasSemanticContext = true; } if (config.reachesIntoOuterContext > 0) { this.dipsIntoOuterContext = true; } var existing = this.configLookup.add(config); if (existing === config) { this.cachedHashCode = -1; this.configs.push(config); // track order here return true; } // a previous (s,i,pi,_), merge with it and save result var rootIsWildcard = !this.fullCtx; var merged = merge(existing.context, config.context, rootIsWildcard, mergeCache); // no need to check for existing.context, config.context in cache // since only way to create new graphs is "call rule" and here. We // cache at both places. existing.reachesIntoOuterContext = Math.max( existing.reachesIntoOuterContext, config.reachesIntoOuterContext); // make sure to preserve the precedence filter suppression during the merge if (config.precedenceFilterSuppressed) { existing.precedenceFilterSuppressed = true; } existing.context = merged; // replace context; no need to alt mapping return true; }; ATNConfigSet.prototype.getStates = function() { var states = new Set(); for (var i = 0; i < this.configs.length; i++) { states.add(this.configs[i].state); } return states; }; ATNConfigSet.prototype.getPredicates = function() { var preds = []; for (var i = 0; i < this.configs.length; i++) { var c = this.configs[i].semanticContext; if (c !== SemanticContext.NONE) { preds.push(c.semanticContext); } } return preds; }; Object.defineProperty(ATNConfigSet.prototype, "items", { get : function() { return this.configs; } }); ATNConfigSet.prototype.optimizeConfigs = function(interpreter) { if (this.readOnly) { throw "This set is readonly"; } if (this.configLookup.length === 0) { return; } for (var i = 0; i < this.configs.length; i++) { var config = this.configs[i]; config.context = interpreter.getCachedContext(config.context); } }; ATNConfigSet.prototype.addAll = function(coll) { for (var i = 0; i < coll.length; i++) { this.add(coll[i]); } return false; }; ATNConfigSet.prototype.equals = function(other) { return this === other || (other instanceof ATNConfigSet && Utils.equalArrays(this.configs, other.configs) && this.fullCtx === other.fullCtx && this.uniqueAlt === other.uniqueAlt && this.conflictingAlts === other.conflictingAlts && this.hasSemanticContext === other.hasSemanticContext && this.dipsIntoOuterContext === other.dipsIntoOuterContext); }; ATNConfigSet.prototype.hashCode = function() { var hash = new Hash(); this.updateHashCode(hash); return hash.finish(); }; ATNConfigSet.prototype.updateHashCode = function(hash) { if (this.readOnly) { if (this.cachedHashCode === -1) { var hash = new Hash(); hash.update(this.configs); this.cachedHashCode = hash.finish(); } hash.update(this.cachedHashCode); } else { hash.update(this.configs); } }; Object.defineProperty(ATNConfigSet.prototype, "length", { get : function() { return this.configs.length; } }); ATNConfigSet.prototype.isEmpty = function() { return this.configs.length === 0; }; ATNConfigSet.prototype.contains = function(item) { if (this.configLookup === null) { throw "This method is not implemented for readonly sets."; } return this.configLookup.contains(item); }; ATNConfigSet.prototype.containsFast = function(item) { if (this.configLookup === null) { throw "This method is not implemented for readonly sets."; } return this.configLookup.containsFast(item); }; ATNConfigSet.prototype.clear = function() { if (this.readOnly) { throw "This set is readonly"; } this.configs = []; this.cachedHashCode = -1; this.configLookup = new Set(); }; ATNConfigSet.prototype.setReadonly = function(readOnly) { this.readOnly = readOnly; if (readOnly) { this.configLookup = null; // can't mod, no need for lookup cache } }; ATNConfigSet.prototype.toString = function() { return Utils.arrayToString(this.configs) + (this.hasSemanticContext ? ",hasSemanticContext=" + this.hasSemanticContext : "") + (this.uniqueAlt !== ATN.INVALID_ALT_NUMBER ? ",uniqueAlt=" + this.uniqueAlt : "") + (this.conflictingAlts !== null ? ",conflictingAlts=" + this.conflictingAlts : "") + (this.dipsIntoOuterContext ? ",dipsIntoOuterContext" : ""); }; function OrderedATNConfigSet() { ATNConfigSet.call(this); this.configLookup = new Set(); return this; } OrderedATNConfigSet.prototype = Object.create(ATNConfigSet.prototype); OrderedATNConfigSet.prototype.constructor = OrderedATNConfigSet; exports.ATNConfigSet = ATNConfigSet; exports.OrderedATNConfigSet = OrderedATNConfigSet; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// // Represents an executor for a sequence of lexer actions which traversed during // the matching operation of a lexer rule (token). // //

The executor tracks position information for position-dependent lexer actions // efficiently, ensuring that actions appearing only at the end of the rule do // not cause bloating of the {@link DFA} created for the lexer.

var hashStuff = __webpack_require__(5).hashStuff; var LexerIndexedCustomAction = __webpack_require__(20).LexerIndexedCustomAction; function LexerActionExecutor(lexerActions) { this.lexerActions = lexerActions === null ? [] : lexerActions; // Caches the result of {@link //hashCode} since the hash code is an element // of the performance-critical {@link LexerATNConfig//hashCode} operation. this.cachedHashCode = hashStuff(lexerActions); // "".join([str(la) for la in // lexerActions])) return this; } // Creates a {@link LexerActionExecutor} which executes the actions for // the input {@code lexerActionExecutor} followed by a specified // {@code lexerAction}. // // @param lexerActionExecutor The executor for actions already traversed by // the lexer while matching a token within a particular // {@link LexerATNConfig}. If this is {@code null}, the method behaves as // though it were an empty executor. // @param lexerAction The lexer action to execute after the actions // specified in {@code lexerActionExecutor}. // // @return A {@link LexerActionExecutor} for executing the combine actions // of {@code lexerActionExecutor} and {@code lexerAction}. LexerActionExecutor.append = function(lexerActionExecutor, lexerAction) { if (lexerActionExecutor === null) { return new LexerActionExecutor([ lexerAction ]); } var lexerActions = lexerActionExecutor.lexerActions.concat([ lexerAction ]); return new LexerActionExecutor(lexerActions); }; // Creates a {@link LexerActionExecutor} which encodes the current offset // for position-dependent lexer actions. // //

Normally, when the executor encounters lexer actions where // {@link LexerAction//isPositionDependent} returns {@code true}, it calls // {@link IntStream//seek} on the input {@link CharStream} to set the input // position to the end of the current token. This behavior provides // for efficient DFA representation of lexer actions which appear at the end // of a lexer rule, even when the lexer rule matches a variable number of // characters.

// //

Prior to traversing a match transition in the ATN, the current offset // from the token start index is assigned to all position-dependent lexer // actions which have not already been assigned a fixed offset. By storing // the offsets relative to the token start index, the DFA representation of // lexer actions which appear in the middle of tokens remains efficient due // to sharing among tokens of the same length, regardless of their absolute // position in the input stream.

// //

If the current executor already has offsets assigned to all // position-dependent lexer actions, the method returns {@code this}.

// // @param offset The current offset to assign to all position-dependent // lexer actions which do not already have offsets assigned. // // @return A {@link LexerActionExecutor} which stores input stream offsets // for all position-dependent lexer actions. // / LexerActionExecutor.prototype.fixOffsetBeforeMatch = function(offset) { var updatedLexerActions = null; for (var i = 0; i < this.lexerActions.length; i++) { if (this.lexerActions[i].isPositionDependent && !(this.lexerActions[i] instanceof LexerIndexedCustomAction)) { if (updatedLexerActions === null) { updatedLexerActions = this.lexerActions.concat([]); } updatedLexerActions[i] = new LexerIndexedCustomAction(offset, this.lexerActions[i]); } } if (updatedLexerActions === null) { return this; } else { return new LexerActionExecutor(updatedLexerActions); } }; // Execute the actions encapsulated by this executor within the context of a // particular {@link Lexer}. // //

This method calls {@link IntStream//seek} to set the position of the // {@code input} {@link CharStream} prior to calling // {@link LexerAction//execute} on a position-dependent action. Before the // method returns, the input position will be restored to the same position // it was in when the method was invoked.

// // @param lexer The lexer instance. // @param input The input stream which is the source for the current token. // When this method is called, the current {@link IntStream//index} for // {@code input} should be the start of the following token, i.e. 1 // character past the end of the current token. // @param startIndex The token start index. This value may be passed to // {@link IntStream//seek} to set the {@code input} position to the beginning // of the token. // / LexerActionExecutor.prototype.execute = function(lexer, input, startIndex) { var requiresSeek = false; var stopIndex = input.index; try { for (var i = 0; i < this.lexerActions.length; i++) { var lexerAction = this.lexerActions[i]; if (lexerAction instanceof LexerIndexedCustomAction) { var offset = lexerAction.offset; input.seek(startIndex + offset); lexerAction = lexerAction.action; requiresSeek = (startIndex + offset) !== stopIndex; } else if (lexerAction.isPositionDependent) { input.seek(stopIndex); requiresSeek = false; } lexerAction.execute(lexer); } } finally { if (requiresSeek) { input.seek(stopIndex); } } }; LexerActionExecutor.prototype.hashCode = function() { return this.cachedHashCode; }; LexerActionExecutor.prototype.updateHashCode = function(hash) { hash.update(this.cachedHashCode); }; LexerActionExecutor.prototype.equals = function(other) { if (this === other) { return true; } else if (!(other instanceof LexerActionExecutor)) { return false; } else if (this.cachedHashCode != other.cachedHashCode) { return false; } else if (this.lexerActions.length != other.lexerActions.length) { return false; } else { var numActions = this.lexerActions.length for (var idx = 0; idx < numActions; ++idx) { if (!this.lexerActions[idx].equals(other.lexerActions[idx])) { return false; } } return true; } }; exports.LexerActionExecutor = LexerActionExecutor; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // // The embodiment of the adaptive LL(*), ALL(*), parsing strategy. // //

// The basic complexity of the adaptive strategy makes it harder to understand. // We begin with ATN simulation to build paths in a DFA. Subsequent prediction // requests go through the DFA first. If they reach a state without an edge for // the current symbol, the algorithm fails over to the ATN simulation to // complete the DFA path for the current input (until it finds a conflict state // or uniquely predicting state).

// //

// All of that is done without using the outer context because we want to create // a DFA that is not dependent upon the rule invocation stack when we do a // prediction. One DFA works in all contexts. We avoid using context not // necessarily because it's slower, although it can be, but because of the DFA // caching problem. The closure routine only considers the rule invocation stack // created during prediction beginning in the decision rule. For example, if // prediction occurs without invoking another rule's ATN, there are no context // stacks in the configurations. When lack of context leads to a conflict, we // don't know if it's an ambiguity or a weakness in the strong LL(*) parsing // strategy (versus full LL(*)).

// //

// When SLL yields a configuration set with conflict, we rewind the input and // retry the ATN simulation, this time using full outer context without adding // to the DFA. Configuration context stacks will be the full invocation stacks // from the start rule. If we get a conflict using full context, then we can // definitively say we have a true ambiguity for that input sequence. If we // don't get a conflict, it implies that the decision is sensitive to the outer // context. (It is not context-sensitive in the sense of context-sensitive // grammars.)

// //

// The next time we reach this DFA state with an SLL conflict, through DFA // simulation, we will again retry the ATN simulation using full context mode. // This is slow because we can't save the results and have to "interpret" the // ATN each time we get that input.

// //

// CACHING FULL CONTEXT PREDICTIONS

// //

// We could cache results from full context to predicted alternative easily and // that saves a lot of time but doesn't work in presence of predicates. The set // of visible predicates from the ATN start state changes depending on the // context, because closure can fall off the end of a rule. I tried to cache // tuples (stack context, semantic context, predicted alt) but it was slower // than interpreting and much more complicated. Also required a huge amount of // memory. The goal is not to create the world's fastest parser anyway. I'd like // to keep this algorithm simple. By launching multiple threads, we can improve // the speed of parsing across a large number of files.

// //

// There is no strict ordering between the amount of input used by SLL vs LL, // which makes it really hard to build a cache for full context. Let's say that // we have input A B C that leads to an SLL conflict with full context X. That // implies that using X we might only use A B but we could also use A B C D to // resolve conflict. Input A B C D could predict alternative 1 in one position // in the input and A B C E could predict alternative 2 in another position in // input. The conflicting SLL configurations could still be non-unique in the // full context prediction, which would lead us to requiring more input than the // original A B C. To make a prediction cache work, we have to track the exact // input used during the previous prediction. That amounts to a cache that maps // X to a specific DFA for that context.

// //

// Something should be done for left-recursive expression predictions. They are // likely LL(1) + pred eval. Easier to do the whole SLL unless error and retry // with full LL thing Sam does.

// //

// AVOIDING FULL CONTEXT PREDICTION

// //

// We avoid doing full context retry when the outer context is empty, we did not // dip into the outer context by falling off the end of the decision state rule, // or when we force SLL mode.

// //

// As an example of the not dip into outer context case, consider as super // constructor calls versus function calls. One grammar might look like // this:

// //
	// ctorBody
	//   : '{' superCall? stat* '}'
	//   ;
	// 
// //

// Or, you might see something like

// //
	// stat
	//   : superCall ';'
	//   | expression ';'
	//   | ...
	//   ;
	// 
// //

// In both cases I believe that no closure operations will dip into the outer // context. In the first case ctorBody in the worst case will stop at the '}'. // In the 2nd case it should stop at the ';'. Both cases should stay within the // entry rule and not dip into the outer context.

// //

// PREDICATES

// //

// Predicates are always evaluated if present in either SLL or LL both. SLL and // LL simulation deals with predicates differently. SLL collects predicates as // it performs closure operations like ANTLR v3 did. It delays predicate // evaluation until it reaches and accept state. This allows us to cache the SLL // ATN simulation whereas, if we had evaluated predicates on-the-fly during // closure, the DFA state configuration sets would be different and we couldn't // build up a suitable DFA.

// //

// When building a DFA accept state during ATN simulation, we evaluate any // predicates and return the sole semantically valid alternative. If there is // more than 1 alternative, we report an ambiguity. If there are 0 alternatives, // we throw an exception. Alternatives without predicates act like they have // true predicates. The simple way to think about it is to strip away all // alternatives with false predicates and choose the minimum alternative that // remains.

// //

// When we start in the DFA and reach an accept state that's predicated, we test // those and return the minimum semantically viable alternative. If no // alternatives are viable, we throw an exception.

// //

// During full LL ATN simulation, closure always evaluates predicates and // on-the-fly. This is crucial to reducing the configuration set size during // closure. It hits a landmine when parsing with the Java grammar, for example, // without this on-the-fly evaluation.

// //

// SHARING DFA

// //

// All instances of the same parser share the same decision DFAs through a // static field. Each instance gets its own ATN simulator but they share the // same {@link //decisionToDFA} field. They also share a // {@link PredictionContextCache} object that makes sure that all // {@link PredictionContext} objects are shared among the DFA states. This makes // a big size difference.

// //

// THREAD SAFETY

// //

// The {@link ParserATNSimulator} locks on the {@link //decisionToDFA} field when // it adds a new DFA object to that array. {@link //addDFAEdge} // locks on the DFA for the current decision when setting the // {@link DFAState//edges} field. {@link //addDFAState} locks on // the DFA for the current decision when looking up a DFA state to see if it // already exists. We must make sure that all requests to add DFA states that // are equivalent result in the same shared DFA object. This is because lots of // threads will be trying to update the DFA at once. The // {@link //addDFAState} method also locks inside the DFA lock // but this time on the shared context cache when it rebuilds the // configurations' {@link PredictionContext} objects using cached // subgraphs/nodes. No other locking occurs, even during DFA simulation. This is // safe as long as we can guarantee that all threads referencing // {@code s.edge[t]} get the same physical target {@link DFAState}, or // {@code null}. Once into the DFA, the DFA simulation does not reference the // {@link DFA//states} map. It follows the {@link DFAState//edges} field to new // targets. The DFA simulator will either find {@link DFAState//edges} to be // {@code null}, to be non-{@code null} and {@code dfa.edges[t]} null, or // {@code dfa.edges[t]} to be non-null. The // {@link //addDFAEdge} method could be racing to set the field // but in either case the DFA simulator works; if {@code null}, and requests ATN // simulation. It could also race trying to get {@code dfa.edges[t]}, but either // way it will work because it's not doing a test and set operation.

// //

// Starting with SLL then failing to combined SLL/LL (Two-Stage // Parsing)

// //

// Sam pointed out that if SLL does not give a syntax error, then there is no // point in doing full LL, which is slower. We only have to try LL if we get a // syntax error. For maximum speed, Sam starts the parser set to pure SLL // mode with the {@link BailErrorStrategy}:

// //
	// parser.{@link Parser//getInterpreter() getInterpreter()}.{@link //setPredictionMode setPredictionMode}{@code (}{@link PredictionMode//SLL}{@code )};
	// parser.{@link Parser//setErrorHandler setErrorHandler}(new {@link BailErrorStrategy}());
	// 
// //

// If it does not get a syntax error, then we're done. If it does get a syntax // error, we need to retry with the combined SLL/LL strategy.

// //

// The reason this works is as follows. If there are no SLL conflicts, then the // grammar is SLL (at least for that input set). If there is an SLL conflict, // the full LL analysis must yield a set of viable alternatives which is a // subset of the alternatives reported by SLL. If the LL set is a singleton, // then the grammar is LL but not SLL. If the LL set is the same size as the SLL // set, the decision is SLL. If the LL set has size > 1, then that decision // is truly ambiguous on the current input. If the LL set is smaller, then the // SLL conflict resolution might choose an alternative that the full LL would // rule out as a possibility based upon better context information. If that's // the case, then the SLL parse will definitely get an error because the full LL // analysis says it's not viable. If SLL conflict resolution chooses an // alternative within the LL set, them both SLL and LL would choose the same // alternative because they both choose the minimum of multiple conflicting // alternatives.

// //

// Let's say we have a set of SLL conflicting alternatives {@code {1, 2, 3}} and // a smaller LL set called s. If s is {@code {2, 3}}, then SLL // parsing will get an error because SLL will pursue alternative 1. If // s is {@code {1, 2}} or {@code {1, 3}} then both SLL and LL will // choose the same alternative because alternative one is the minimum of either // set. If s is {@code {2}} or {@code {3}} then SLL will get a syntax // error. If s is {@code {1}} then SLL will succeed.

// //

// Of course, if the input is invalid, then we will get an error for sure in // both SLL and LL parsing. Erroneous input will therefore require 2 passes over // the input.

// var Utils = __webpack_require__(5); var Set = Utils.Set; var BitSet = Utils.BitSet; var DoubleDict = Utils.DoubleDict; var ATN = __webpack_require__(3).ATN; var ATNState = __webpack_require__(8).ATNState; var ATNConfig = __webpack_require__(7).ATNConfig; var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var Token = __webpack_require__(6).Token; var DFAState = __webpack_require__(28).DFAState; var PredPrediction = __webpack_require__(28).PredPrediction; var ATNSimulator = __webpack_require__(27).ATNSimulator; var PredictionMode = __webpack_require__(32).PredictionMode; var RuleContext = __webpack_require__(13).RuleContext; var ParserRuleContext = __webpack_require__(16).ParserRuleContext; var SemanticContext = __webpack_require__(9).SemanticContext; var StarLoopEntryState = __webpack_require__(8).StarLoopEntryState; var RuleStopState = __webpack_require__(8).RuleStopState; var PredictionContext = __webpack_require__(12).PredictionContext; var Interval = __webpack_require__(10).Interval; var Transitions = __webpack_require__(11); var Transition = Transitions.Transition; var SetTransition = Transitions.SetTransition; var NotSetTransition = Transitions.NotSetTransition; var RuleTransition = Transitions.RuleTransition; var ActionTransition = Transitions.ActionTransition; var NoViableAltException = __webpack_require__(26).NoViableAltException; var SingletonPredictionContext = __webpack_require__(12).SingletonPredictionContext; var predictionContextFromRuleContext = __webpack_require__(12).predictionContextFromRuleContext; function ParserATNSimulator(parser, atn, decisionToDFA, sharedContextCache) { ATNSimulator.call(this, atn, sharedContextCache); this.parser = parser; this.decisionToDFA = decisionToDFA; // SLL, LL, or LL + exact ambig detection?// this.predictionMode = PredictionMode.LL; // LAME globals to avoid parameters!!!!! I need these down deep in predTransition this._input = null; this._startIndex = 0; this._outerContext = null; this._dfa = null; // Each prediction operation uses a cache for merge of prediction contexts. // Don't keep around as it wastes huge amounts of memory. DoubleKeyMap // isn't synchronized but we're ok since two threads shouldn't reuse same // parser/atnsim object because it can only handle one input at a time. // This maps graphs a and b to merged result c. (a,b)→c. We can avoid // the merge if we ever see a and b again. Note that (b,a)→c should // also be examined during cache lookup. // this.mergeCache = null; return this; } ParserATNSimulator.prototype = Object.create(ATNSimulator.prototype); ParserATNSimulator.prototype.constructor = ParserATNSimulator; ParserATNSimulator.prototype.debug = false; ParserATNSimulator.prototype.debug_closure = false; ParserATNSimulator.prototype.debug_add = false; ParserATNSimulator.prototype.debug_list_atn_decisions = false; ParserATNSimulator.prototype.dfa_debug = false; ParserATNSimulator.prototype.retry_debug = false; ParserATNSimulator.prototype.reset = function() { }; ParserATNSimulator.prototype.adaptivePredict = function(input, decision, outerContext) { if (this.debug || this.debug_list_atn_decisions) { console.log("adaptivePredict decision " + decision + " exec LA(1)==" + this.getLookaheadName(input) + " line " + input.LT(1).line + ":" + input.LT(1).column); } this._input = input; this._startIndex = input.index; this._outerContext = outerContext; var dfa = this.decisionToDFA[decision]; this._dfa = dfa; var m = input.mark(); var index = input.index; // Now we are certain to have a specific decision's DFA // But, do we still need an initial state? try { var s0; if (dfa.precedenceDfa) { // the start state for a precedence DFA depends on the current // parser precedence, and is provided by a DFA method. s0 = dfa.getPrecedenceStartState(this.parser.getPrecedence()); } else { // the start state for a "regular" DFA is just s0 s0 = dfa.s0; } if (s0===null) { if (outerContext===null) { outerContext = RuleContext.EMPTY; } if (this.debug || this.debug_list_atn_decisions) { console.log("predictATN decision " + dfa.decision + " exec LA(1)==" + this.getLookaheadName(input) + ", outerContext=" + outerContext.toString(this.parser.ruleNames)); } var fullCtx = false; var s0_closure = this.computeStartState(dfa.atnStartState, RuleContext.EMPTY, fullCtx); if( dfa.precedenceDfa) { // If this is a precedence DFA, we use applyPrecedenceFilter // to convert the computed start state to a precedence start // state. We then use DFA.setPrecedenceStartState to set the // appropriate start state for the precedence level rather // than simply setting DFA.s0. // dfa.s0.configs = s0_closure; // not used for prediction but useful to know start configs anyway s0_closure = this.applyPrecedenceFilter(s0_closure); s0 = this.addDFAState(dfa, new DFAState(null, s0_closure)); dfa.setPrecedenceStartState(this.parser.getPrecedence(), s0); } else { s0 = this.addDFAState(dfa, new DFAState(null, s0_closure)); dfa.s0 = s0; } } var alt = this.execATN(dfa, s0, input, index, outerContext); if (this.debug) { console.log("DFA after predictATN: " + dfa.toString(this.parser.literalNames)); } return alt; } finally { this._dfa = null; this.mergeCache = null; // wack cache after each prediction input.seek(index); input.release(m); } }; // Performs ATN simulation to compute a predicted alternative based // upon the remaining input, but also updates the DFA cache to avoid // having to traverse the ATN again for the same input sequence. // There are some key conditions we're looking for after computing a new // set of ATN configs (proposed DFA state): // if the set is empty, there is no viable alternative for current symbol // does the state uniquely predict an alternative? // does the state have a conflict that would prevent us from // putting it on the work list? // We also have some key operations to do: // add an edge from previous DFA state to potentially new DFA state, D, // upon current symbol but only if adding to work list, which means in all // cases except no viable alternative (and possibly non-greedy decisions?) // collecting predicates and adding semantic context to DFA accept states // adding rule context to context-sensitive DFA accept states // consuming an input symbol // reporting a conflict // reporting an ambiguity // reporting a context sensitivity // reporting insufficient predicates // cover these cases: // dead end // single alt // single alt + preds // conflict // conflict + preds // ParserATNSimulator.prototype.execATN = function(dfa, s0, input, startIndex, outerContext ) { if (this.debug || this.debug_list_atn_decisions) { console.log("execATN decision " + dfa.decision + " exec LA(1)==" + this.getLookaheadName(input) + " line " + input.LT(1).line + ":" + input.LT(1).column); } var alt; var previousD = s0; if (this.debug) { console.log("s0 = " + s0); } var t = input.LA(1); while(true) { // while more work var D = this.getExistingTargetState(previousD, t); if(D===null) { D = this.computeTargetState(dfa, previousD, t); } if(D===ATNSimulator.ERROR) { // if any configs in previous dipped into outer context, that // means that input up to t actually finished entry rule // at least for SLL decision. Full LL doesn't dip into outer // so don't need special case. // We will get an error no matter what so delay until after // decision; better error message. Also, no reachable target // ATN states in SLL implies LL will also get nowhere. // If conflict in states that dip out, choose min since we // will get error no matter what. var e = this.noViableAlt(input, outerContext, previousD.configs, startIndex); input.seek(startIndex); alt = this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previousD.configs, outerContext); if(alt!==ATN.INVALID_ALT_NUMBER) { return alt; } else { throw e; } } if(D.requiresFullContext && this.predictionMode !== PredictionMode.SLL) { // IF PREDS, MIGHT RESOLVE TO SINGLE ALT => SLL (or syntax error) var conflictingAlts = null; if (D.predicates!==null) { if (this.debug) { console.log("DFA state has preds in DFA sim LL failover"); } var conflictIndex = input.index; if(conflictIndex !== startIndex) { input.seek(startIndex); } conflictingAlts = this.evalSemanticContext(D.predicates, outerContext, true); if (conflictingAlts.length===1) { if(this.debug) { console.log("Full LL avoided"); } return conflictingAlts.minValue(); } if (conflictIndex !== startIndex) { // restore the index so reporting the fallback to full // context occurs with the index at the correct spot input.seek(conflictIndex); } } if (this.dfa_debug) { console.log("ctx sensitive state " + outerContext +" in " + D); } var fullCtx = true; var s0_closure = this.computeStartState(dfa.atnStartState, outerContext, fullCtx); this.reportAttemptingFullContext(dfa, conflictingAlts, D.configs, startIndex, input.index); alt = this.execATNWithFullContext(dfa, D, s0_closure, input, startIndex, outerContext); return alt; } if (D.isAcceptState) { if (D.predicates===null) { return D.prediction; } var stopIndex = input.index; input.seek(startIndex); var alts = this.evalSemanticContext(D.predicates, outerContext, true); if (alts.length===0) { throw this.noViableAlt(input, outerContext, D.configs, startIndex); } else if (alts.length===1) { return alts.minValue(); } else { // report ambiguity after predicate evaluation to make sure the correct set of ambig alts is reported. this.reportAmbiguity(dfa, D, startIndex, stopIndex, false, alts, D.configs); return alts.minValue(); } } previousD = D; if (t !== Token.EOF) { input.consume(); t = input.LA(1); } } }; // // Get an existing target state for an edge in the DFA. If the target state // for the edge has not yet been computed or is otherwise not available, // this method returns {@code null}. // // @param previousD The current DFA state // @param t The next input symbol // @return The existing target DFA state for the given input symbol // {@code t}, or {@code null} if the target state for this edge is not // already cached // ParserATNSimulator.prototype.getExistingTargetState = function(previousD, t) { var edges = previousD.edges; if (edges===null) { return null; } else { return edges[t + 1] || null; } }; // // Compute a target state for an edge in the DFA, and attempt to add the // computed state and corresponding edge to the DFA. // // @param dfa The DFA // @param previousD The current DFA state // @param t The next input symbol // // @return The computed target DFA state for the given input symbol // {@code t}. If {@code t} does not lead to a valid DFA state, this method // returns {@link //ERROR}. // ParserATNSimulator.prototype.computeTargetState = function(dfa, previousD, t) { var reach = this.computeReachSet(previousD.configs, t, false); if(reach===null) { this.addDFAEdge(dfa, previousD, t, ATNSimulator.ERROR); return ATNSimulator.ERROR; } // create new target state; we'll add to DFA after it's complete var D = new DFAState(null, reach); var predictedAlt = this.getUniqueAlt(reach); if (this.debug) { var altSubSets = PredictionMode.getConflictingAltSubsets(reach); console.log("SLL altSubSets=" + Utils.arrayToString(altSubSets) + ", previous=" + previousD.configs + ", configs=" + reach + ", predict=" + predictedAlt + ", allSubsetsConflict=" + PredictionMode.allSubsetsConflict(altSubSets) + ", conflictingAlts=" + this.getConflictingAlts(reach)); } if (predictedAlt!==ATN.INVALID_ALT_NUMBER) { // NO CONFLICT, UNIQUELY PREDICTED ALT D.isAcceptState = true; D.configs.uniqueAlt = predictedAlt; D.prediction = predictedAlt; } else if (PredictionMode.hasSLLConflictTerminatingPrediction(this.predictionMode, reach)) { // MORE THAN ONE VIABLE ALTERNATIVE D.configs.conflictingAlts = this.getConflictingAlts(reach); D.requiresFullContext = true; // in SLL-only mode, we will stop at this state and return the minimum alt D.isAcceptState = true; D.prediction = D.configs.conflictingAlts.minValue(); } if (D.isAcceptState && D.configs.hasSemanticContext) { this.predicateDFAState(D, this.atn.getDecisionState(dfa.decision)); if( D.predicates!==null) { D.prediction = ATN.INVALID_ALT_NUMBER; } } // all adds to dfa are done after we've created full D state D = this.addDFAEdge(dfa, previousD, t, D); return D; }; ParserATNSimulator.prototype.predicateDFAState = function(dfaState, decisionState) { // We need to test all predicates, even in DFA states that // uniquely predict alternative. var nalts = decisionState.transitions.length; // Update DFA so reach becomes accept state with (predicate,alt) // pairs if preds found for conflicting alts var altsToCollectPredsFrom = this.getConflictingAltsOrUniqueAlt(dfaState.configs); var altToPred = this.getPredsForAmbigAlts(altsToCollectPredsFrom, dfaState.configs, nalts); if (altToPred!==null) { dfaState.predicates = this.getPredicatePredictions(altsToCollectPredsFrom, altToPred); dfaState.prediction = ATN.INVALID_ALT_NUMBER; // make sure we use preds } else { // There are preds in configs but they might go away // when OR'd together like {p}? || NONE == NONE. If neither // alt has preds, resolve to min alt dfaState.prediction = altsToCollectPredsFrom.minValue(); } }; // comes back with reach.uniqueAlt set to a valid alt ParserATNSimulator.prototype.execATNWithFullContext = function(dfa, D, // how far we got before failing over s0, input, startIndex, outerContext) { if (this.debug || this.debug_list_atn_decisions) { console.log("execATNWithFullContext "+s0); } var fullCtx = true; var foundExactAmbig = false; var reach = null; var previous = s0; input.seek(startIndex); var t = input.LA(1); var predictedAlt = -1; while (true) { // while more work reach = this.computeReachSet(previous, t, fullCtx); if (reach===null) { // if any configs in previous dipped into outer context, that // means that input up to t actually finished entry rule // at least for LL decision. Full LL doesn't dip into outer // so don't need special case. // We will get an error no matter what so delay until after // decision; better error message. Also, no reachable target // ATN states in SLL implies LL will also get nowhere. // If conflict in states that dip out, choose min since we // will get error no matter what. var e = this.noViableAlt(input, outerContext, previous, startIndex); input.seek(startIndex); var alt = this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previous, outerContext); if(alt!==ATN.INVALID_ALT_NUMBER) { return alt; } else { throw e; } } var altSubSets = PredictionMode.getConflictingAltSubsets(reach); if(this.debug) { console.log("LL altSubSets=" + altSubSets + ", predict=" + PredictionMode.getUniqueAlt(altSubSets) + ", resolvesToJustOneViableAlt=" + PredictionMode.resolvesToJustOneViableAlt(altSubSets)); } reach.uniqueAlt = this.getUniqueAlt(reach); // unique prediction? if(reach.uniqueAlt!==ATN.INVALID_ALT_NUMBER) { predictedAlt = reach.uniqueAlt; break; } else if (this.predictionMode !== PredictionMode.LL_EXACT_AMBIG_DETECTION) { predictedAlt = PredictionMode.resolvesToJustOneViableAlt(altSubSets); if(predictedAlt !== ATN.INVALID_ALT_NUMBER) { break; } } else { // In exact ambiguity mode, we never try to terminate early. // Just keeps scarfing until we know what the conflict is if (PredictionMode.allSubsetsConflict(altSubSets) && PredictionMode.allSubsetsEqual(altSubSets)) { foundExactAmbig = true; predictedAlt = PredictionMode.getSingleViableAlt(altSubSets); break; } // else there are multiple non-conflicting subsets or // we're not sure what the ambiguity is yet. // So, keep going. } previous = reach; if( t !== Token.EOF) { input.consume(); t = input.LA(1); } } // If the configuration set uniquely predicts an alternative, // without conflict, then we know that it's a full LL decision // not SLL. if (reach.uniqueAlt !== ATN.INVALID_ALT_NUMBER ) { this.reportContextSensitivity(dfa, predictedAlt, reach, startIndex, input.index); return predictedAlt; } // We do not check predicates here because we have checked them // on-the-fly when doing full context prediction. // // In non-exact ambiguity detection mode, we might actually be able to // detect an exact ambiguity, but I'm not going to spend the cycles // needed to check. We only emit ambiguity warnings in exact ambiguity // mode. // // For example, we might know that we have conflicting configurations. // But, that does not mean that there is no way forward without a // conflict. It's possible to have nonconflicting alt subsets as in: // altSubSets=[{1, 2}, {1, 2}, {1}, {1, 2}] // from // // [(17,1,[5 $]), (13,1,[5 10 $]), (21,1,[5 10 $]), (11,1,[$]), // (13,2,[5 10 $]), (21,2,[5 10 $]), (11,2,[$])] // // In this case, (17,1,[5 $]) indicates there is some next sequence that // would resolve this without conflict to alternative 1. Any other viable // next sequence, however, is associated with a conflict. We stop // looking for input because no amount of further lookahead will alter // the fact that we should predict alternative 1. We just can't say for // sure that there is an ambiguity without looking further. this.reportAmbiguity(dfa, D, startIndex, input.index, foundExactAmbig, null, reach); return predictedAlt; }; ParserATNSimulator.prototype.computeReachSet = function(closure, t, fullCtx) { if (this.debug) { console.log("in computeReachSet, starting closure: " + closure); } if( this.mergeCache===null) { this.mergeCache = new DoubleDict(); } var intermediate = new ATNConfigSet(fullCtx); // Configurations already in a rule stop state indicate reaching the end // of the decision rule (local context) or end of the start rule (full // context). Once reached, these configurations are never updated by a // closure operation, so they are handled separately for the performance // advantage of having a smaller intermediate set when calling closure. // // For full-context reach operations, separate handling is required to // ensure that the alternative matching the longest overall sequence is // chosen when multiple such configurations can match the input. var skippedStopStates = null; // First figure out where we can reach on input t for (var i=0; iWhen {@code lookToEndOfRule} is true, this method uses // {@link ATN//nextTokens} for each configuration in {@code configs} which is // not already in a rule stop state to see if a rule stop state is reachable // from the configuration via epsilon-only transitions.

// // @param configs the configuration set to update // @param lookToEndOfRule when true, this method checks for rule stop states // reachable by epsilon-only transitions from each configuration in // {@code configs}. // // @return {@code configs} if all configurations in {@code configs} are in a // rule stop state, otherwise return a new configuration set containing only // the configurations from {@code configs} which are in a rule stop state // ParserATNSimulator.prototype.removeAllConfigsNotInRuleStopState = function(configs, lookToEndOfRule) { if (PredictionMode.allConfigsInRuleStopStates(configs)) { return configs; } var result = new ATNConfigSet(configs.fullCtx); for(var i=0; i //
  • Evaluate the precedence predicates for each configuration using // {@link SemanticContext//evalPrecedence}.
  • //
  • Remove all configurations which predict an alternative greater than // 1, for which another configuration that predicts alternative 1 is in the // same ATN state with the same prediction context. This transformation is // valid for the following reasons: //
      //
    • The closure block cannot contain any epsilon transitions which bypass // the body of the closure, so all states reachable via alternative 1 are // part of the precedence alternatives of the transformed left-recursive // rule.
    • //
    • The "primary" portion of a left recursive rule cannot contain an // epsilon transition, so the only way an alternative other than 1 can exist // in a state that is also reachable via alternative 1 is by nesting calls // to the left-recursive rule, with the outer calls not being at the // preferred precedence level.
    • //
    //
  • // // //

    // The prediction context must be considered by this filter to address // situations like the following. //

    // //
    	// grammar TA;
    	// prog: statement* EOF;
    	// statement: letterA | statement letterA 'b' ;
    	// letterA: 'a';
    	// 
    //
    //

    // If the above grammar, the ATN state immediately before the token // reference {@code 'a'} in {@code letterA} is reachable from the left edge // of both the primary and closure blocks of the left-recursive rule // {@code statement}. The prediction context associated with each of these // configurations distinguishes between them, and prevents the alternative // which stepped out to {@code prog} (and then back in to {@code statement} // from being eliminated by the filter. //

    // // @param configs The configuration set computed by // {@link //computeStartState} as the start state for the DFA. // @return The transformed configuration set representing the start state // for a precedence DFA at a particular precedence level (determined by // calling {@link Parser//getPrecedence}). // ParserATNSimulator.prototype.applyPrecedenceFilter = function(configs) { var config; var statesFromAlt1 = []; var configSet = new ATNConfigSet(configs.fullCtx); for(var i=0; i1 // (basically a graph subtraction algorithm). if (!config.precedenceFilterSuppressed) { var context = statesFromAlt1[config.state.stateNumber] || null; if (context!==null && context.equals(config.context)) { // eliminated continue; } } configSet.add(config, this.mergeCache); } return configSet; }; ParserATNSimulator.prototype.getReachableTarget = function(trans, ttype) { if (trans.matches(ttype, 0, this.atn.maxTokenType)) { return trans.target; } else { return null; } }; ParserATNSimulator.prototype.getPredsForAmbigAlts = function(ambigAlts, configs, nalts) { // REACH=[1|1|[]|0:0, 1|2|[]|0:1] // altToPred starts as an array of all null contexts. The entry at index i // corresponds to alternative i. altToPred[i] may have one of three values: // 1. null: no ATNConfig c is found such that c.alt==i // 2. SemanticContext.NONE: At least one ATNConfig c exists such that // c.alt==i and c.semanticContext==SemanticContext.NONE. In other words, // alt i has at least one unpredicated config. // 3. Non-NONE Semantic Context: There exists at least one, and for all // ATNConfig c such that c.alt==i, c.semanticContext!=SemanticContext.NONE. // // From this, it is clear that NONE||anything==NONE. // var altToPred = []; for(var i=0;i // The default implementation of this method uses the following // algorithm to identify an ATN configuration which successfully parsed the // decision entry rule. Choosing such an alternative ensures that the // {@link ParserRuleContext} returned by the calling rule will be complete // and valid, and the syntax error will be reported later at a more // localized location.

    // //
      //
    • If a syntactically valid path or paths reach the end of the decision rule and // they are semantically valid if predicated, return the min associated alt.
    • //
    • Else, if a semantically invalid but syntactically valid path exist // or paths exist, return the minimum associated alt. //
    • //
    • Otherwise, return {@link ATN//INVALID_ALT_NUMBER}.
    • //
    // //

    // In some scenarios, the algorithm described above could predict an // alternative which will result in a {@link FailedPredicateException} in // the parser. Specifically, this could occur if the only configuration // capable of successfully parsing to the end of the decision rule is // blocked by a semantic predicate. By choosing this alternative within // {@link //adaptivePredict} instead of throwing a // {@link NoViableAltException}, the resulting // {@link FailedPredicateException} in the parser will identify the specific // predicate which is preventing the parser from successfully parsing the // decision rule, which helps developers identify and correct logic errors // in semantic predicates. //

    // // @param configs The ATN configurations which were valid immediately before // the {@link //ERROR} state was reached // @param outerContext The is the \gamma_0 initial parser context from the paper // or the parser stack at the instant before prediction commences. // // @return The value to return from {@link //adaptivePredict}, or // {@link ATN//INVALID_ALT_NUMBER} if a suitable alternative was not // identified and {@link //adaptivePredict} should report an error instead. // ParserATNSimulator.prototype.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule = function(configs, outerContext) { var cfgs = this.splitAccordingToSemanticValidity(configs, outerContext); var semValidConfigs = cfgs[0]; var semInvalidConfigs = cfgs[1]; var alt = this.getAltThatFinishedDecisionEntryRule(semValidConfigs); if (alt!==ATN.INVALID_ALT_NUMBER) { // semantically/syntactically viable path exists return alt; } // Is there a syntactically valid path with a failed pred? if (semInvalidConfigs.items.length>0) { alt = this.getAltThatFinishedDecisionEntryRule(semInvalidConfigs); if (alt!==ATN.INVALID_ALT_NUMBER) { // syntactically viable path exists return alt; } } return ATN.INVALID_ALT_NUMBER; }; ParserATNSimulator.prototype.getAltThatFinishedDecisionEntryRule = function(configs) { var alts = []; for(var i=0;i0 || ((c.state instanceof RuleStopState) && c.context.hasEmptyPath())) { if(alts.indexOf(c.alt)<0) { alts.push(c.alt); } } } if (alts.length===0) { return ATN.INVALID_ALT_NUMBER; } else { return Math.min.apply(null, alts); } }; // Walk the list of configurations and split them according to // those that have preds evaluating to true/false. If no pred, assume // true pred and include in succeeded set. Returns Pair of sets. // // Create a new set so as not to alter the incoming parameter. // // Assumption: the input stream has been restored to the starting point // prediction, which is where predicates need to evaluate. // ParserATNSimulator.prototype.splitAccordingToSemanticValidity = function( configs, outerContext) { var succeeded = new ATNConfigSet(configs.fullCtx); var failed = new ATNConfigSet(configs.fullCtx); for(var i=0;i50) { throw "problem"; } } if (config.state instanceof RuleStopState) { // We hit rule end. If we have context info, use it // run thru all possible stack tops in ctx if (! config.context.isEmpty()) { for ( var i =0; i 0. if (closureBusy.add(c)!==c) { // avoid infinite recursion for right-recursive rules continue; } if (this._dfa !== null && this._dfa.precedenceDfa) { if (t.outermostPrecedenceReturn === this._dfa.atnStartState.ruleIndex) { c.precedenceFilterSuppressed = true; } } c.reachesIntoOuterContext += 1; configs.dipsIntoOuterContext = true; // TODO: can remove? only care when we add to set per middle of this method newDepth -= 1; if (this.debug) { console.log("dips into outer ctx: " + c); } } else if (t instanceof RuleTransition) { // latch when newDepth goes negative - once we step out of the entry context we can't return if (newDepth >= 0) { newDepth += 1; } } this.closureCheckingStopState(c, configs, closureBusy, continueCollecting, fullCtx, newDepth, treatEofAsEpsilon); } } }; ParserATNSimulator.prototype.canDropLoopEntryEdgeInLeftRecursiveRule = function(config) { // return False var p = config.state; // First check to see if we are in StarLoopEntryState generated during // left-recursion elimination. For efficiency, also check if // the context has an empty stack case. If so, it would mean // global FOLLOW so we can't perform optimization // Are we the special loop entry/exit state? or SLL wildcard if(p.stateType != ATNState.STAR_LOOP_ENTRY) return false; if(p.stateType != ATNState.STAR_LOOP_ENTRY || !p.isPrecedenceDecision || config.context.isEmpty() || config.context.hasEmptyPath()) return false; // Require all return states to return back to the same rule that p is in. var numCtxs = config.context.length; for(var i=0; i=0) { return this.parser.ruleNames[index]; } else { return ""; } }; ParserATNSimulator.prototype.getEpsilonTarget = function(config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon) { switch(t.serializationType) { case Transition.RULE: return this.ruleTransition(config, t); case Transition.PRECEDENCE: return this.precedenceTransition(config, t, collectPredicates, inContext, fullCtx); case Transition.PREDICATE: return this.predTransition(config, t, collectPredicates, inContext, fullCtx); case Transition.ACTION: return this.actionTransition(config, t); case Transition.EPSILON: return new ATNConfig({state:t.target}, config); case Transition.ATOM: case Transition.RANGE: case Transition.SET: // EOF transitions act like epsilon transitions after the first EOF // transition is traversed if (treatEofAsEpsilon) { if (t.matches(Token.EOF, 0, 1)) { return new ATNConfig({state: t.target}, config); } } return null; default: return null; } }; ParserATNSimulator.prototype.actionTransition = function(config, t) { if (this.debug) { var index = t.actionIndex==-1 ? 65535 : t.actionIndex; console.log("ACTION edge " + t.ruleIndex + ":" + index); } return new ATNConfig({state:t.target}, config); }; ParserATNSimulator.prototype.precedenceTransition = function(config, pt, collectPredicates, inContext, fullCtx) { if (this.debug) { console.log("PRED (collectPredicates=" + collectPredicates + ") " + pt.precedence + ">=_p, ctx dependent=true"); if (this.parser!==null) { console.log("context surrounding pred is " + Utils.arrayToString(this.parser.getRuleInvocationStack())); } } var c = null; if (collectPredicates && inContext) { if (fullCtx) { // In full context mode, we can evaluate predicates on-the-fly // during closure, which dramatically reduces the size of // the config sets. It also obviates the need to test predicates // later during conflict resolution. var currentPosition = this._input.index; this._input.seek(this._startIndex); var predSucceeds = pt.getPredicate().evaluate(this.parser, this._outerContext); this._input.seek(currentPosition); if (predSucceeds) { c = new ATNConfig({state:pt.target}, config); // no pred context } } else { var newSemCtx = SemanticContext.andContext(config.semanticContext, pt.getPredicate()); c = new ATNConfig({state:pt.target, semanticContext:newSemCtx}, config); } } else { c = new ATNConfig({state:pt.target}, config); } if (this.debug) { console.log("config from pred transition=" + c); } return c; }; ParserATNSimulator.prototype.predTransition = function(config, pt, collectPredicates, inContext, fullCtx) { if (this.debug) { console.log("PRED (collectPredicates=" + collectPredicates + ") " + pt.ruleIndex + ":" + pt.predIndex + ", ctx dependent=" + pt.isCtxDependent); if (this.parser!==null) { console.log("context surrounding pred is " + Utils.arrayToString(this.parser.getRuleInvocationStack())); } } var c = null; if (collectPredicates && ((pt.isCtxDependent && inContext) || ! pt.isCtxDependent)) { if (fullCtx) { // In full context mode, we can evaluate predicates on-the-fly // during closure, which dramatically reduces the size of // the config sets. It also obviates the need to test predicates // later during conflict resolution. var currentPosition = this._input.index; this._input.seek(this._startIndex); var predSucceeds = pt.getPredicate().evaluate(this.parser, this._outerContext); this._input.seek(currentPosition); if (predSucceeds) { c = new ATNConfig({state:pt.target}, config); // no pred context } } else { var newSemCtx = SemanticContext.andContext(config.semanticContext, pt.getPredicate()); c = new ATNConfig({state:pt.target, semanticContext:newSemCtx}, config); } } else { c = new ATNConfig({state:pt.target}, config); } if (this.debug) { console.log("config from pred transition=" + c); } return c; }; ParserATNSimulator.prototype.ruleTransition = function(config, t) { if (this.debug) { console.log("CALL rule " + this.getRuleName(t.target.ruleIndex) + ", ctx=" + config.context); } var returnState = t.followState; var newContext = SingletonPredictionContext.create(config.context, returnState.stateNumber); return new ATNConfig({state:t.target, context:newContext}, config ); }; ParserATNSimulator.prototype.getConflictingAlts = function(configs) { var altsets = PredictionMode.getConflictingAltSubsets(configs); return PredictionMode.getAlts(altsets); }; // Sam pointed out a problem with the previous definition, v3, of // ambiguous states. If we have another state associated with conflicting // alternatives, we should keep going. For example, the following grammar // // s : (ID | ID ID?) ';' ; // // When the ATN simulation reaches the state before ';', it has a DFA // state that looks like: [12|1|[], 6|2|[], 12|2|[]]. Naturally // 12|1|[] and 12|2|[] conflict, but we cannot stop processing this node // because alternative to has another way to continue, via [6|2|[]]. // The key is that we have a single state that has config's only associated // with a single alternative, 2, and crucially the state transitions // among the configurations are all non-epsilon transitions. That means // we don't consider any conflicts that include alternative 2. So, we // ignore the conflict between alts 1 and 2. We ignore a set of // conflicting alts when there is an intersection with an alternative // associated with a single alt state in the state→config-list map. // // It's also the case that we might have two conflicting configurations but // also a 3rd nonconflicting configuration for a different alternative: // [1|1|[], 1|2|[], 8|3|[]]. This can come about from grammar: // // a : A | A | A B ; // // After matching input A, we reach the stop state for rule A, state 1. // State 8 is the state right before B. Clearly alternatives 1 and 2 // conflict and no amount of further lookahead will separate the two. // However, alternative 3 will be able to continue and so we do not // stop working on this state. In the previous example, we're concerned // with states associated with the conflicting alternatives. Here alt // 3 is not associated with the conflicting configs, but since we can continue // looking for input reasonably, I don't declare the state done. We // ignore a set of conflicting alts when we have an alternative // that we still need to pursue. // ParserATNSimulator.prototype.getConflictingAltsOrUniqueAlt = function(configs) { var conflictingAlts = null; if (configs.uniqueAlt!== ATN.INVALID_ALT_NUMBER) { conflictingAlts = new BitSet(); conflictingAlts.add(configs.uniqueAlt); } else { conflictingAlts = configs.conflictingAlts; } return conflictingAlts; }; ParserATNSimulator.prototype.getTokenName = function( t) { if (t===Token.EOF) { return "EOF"; } if( this.parser!==null && this.parser.literalNames!==null) { if (t >= this.parser.literalNames.length && t >= this.parser.symbolicNames.length) { console.log("" + t + " ttype out of range: " + this.parser.literalNames); console.log("" + this.parser.getInputStream().getTokens()); } else { var name = this.parser.literalNames[t] || this.parser.symbolicNames[t]; return name + "<" + t + ">"; } } return "" + t; }; ParserATNSimulator.prototype.getLookaheadName = function(input) { return this.getTokenName(input.LA(1)); }; // Used for debugging in adaptivePredict around execATN but I cut // it out for clarity now that alg. works well. We can leave this // "dead" code for a bit. // ParserATNSimulator.prototype.dumpDeadEndConfigs = function(nvae) { console.log("dead end configs: "); var decs = nvae.getDeadEndConfigs(); for(var i=0; i0) { var t = c.state.transitions[0]; if (t instanceof AtomTransition) { trans = "Atom "+ this.getTokenName(t.label); } else if (t instanceof SetTransition) { var neg = (t instanceof NotSetTransition); trans = (neg ? "~" : "") + "Set " + t.set; } } console.error(c.toString(this.parser, true) + ":" + trans); } }; ParserATNSimulator.prototype.noViableAlt = function(input, outerContext, configs, startIndex) { return new NoViableAltException(this.parser, input, input.get(startIndex), input.LT(1), configs, outerContext); }; ParserATNSimulator.prototype.getUniqueAlt = function(configs) { var alt = ATN.INVALID_ALT_NUMBER; for(var i=0;iIf {@code to} is {@code null}, this method returns {@code null}. // Otherwise, this method returns the {@link DFAState} returned by calling // {@link //addDFAState} for the {@code to} state.

    // // @param dfa The DFA // @param from The source state for the edge // @param t The input symbol // @param to The target state for the edge // // @return If {@code to} is {@code null}, this method returns {@code null}; // otherwise this method returns the result of calling {@link //addDFAState} // on {@code to} // ParserATNSimulator.prototype.addDFAEdge = function(dfa, from_, t, to) { if( this.debug) { console.log("EDGE " + from_ + " -> " + to + " upon " + this.getTokenName(t)); } if (to===null) { return null; } to = this.addDFAState(dfa, to); // used existing if possible not incoming if (from_===null || t < -1 || t > this.atn.maxTokenType) { return to; } if (from_.edges===null) { from_.edges = []; } from_.edges[t+1] = to; // connect if (this.debug) { var literalNames = this.parser===null ? null : this.parser.literalNames; var symbolicNames = this.parser===null ? null : this.parser.symbolicNames; console.log("DFA=\n" + dfa.toString(literalNames, symbolicNames)); } return to; }; // // Add state {@code D} to the DFA if it is not already present, and return // the actual instance stored in the DFA. If a state equivalent to {@code D} // is already in the DFA, the existing state is returned. Otherwise this // method returns {@code D} after adding it to the DFA. // //

    If {@code D} is {@link //ERROR}, this method returns {@link //ERROR} and // does not change the DFA.

    // // @param dfa The dfa // @param D The DFA state to add // @return The state stored in the DFA. This will be either the existing // state if {@code D} is already in the DFA, or {@code D} itself if the // state was not already present. // ParserATNSimulator.prototype.addDFAState = function(dfa, D) { if (D == ATNSimulator.ERROR) { return D; } var existing = dfa.states.get(D); if(existing!==null) { return existing; } D.stateNumber = dfa.states.length; if (! D.configs.readOnly) { D.configs.optimizeConfigs(this); D.configs.setReadonly(true); } dfa.states.add(D); if (this.debug) { console.log("adding new DFA state: " + D); } return D; }; ParserATNSimulator.prototype.reportAttemptingFullContext = function(dfa, conflictingAlts, configs, startIndex, stopIndex) { if (this.debug || this.retry_debug) { var interval = new Interval(startIndex, stopIndex + 1); console.log("reportAttemptingFullContext decision=" + dfa.decision + ":" + configs + ", input=" + this.parser.getTokenStream().getText(interval)); } if (this.parser!==null) { this.parser.getErrorListenerDispatch().reportAttemptingFullContext(this.parser, dfa, startIndex, stopIndex, conflictingAlts, configs); } }; ParserATNSimulator.prototype.reportContextSensitivity = function(dfa, prediction, configs, startIndex, stopIndex) { if (this.debug || this.retry_debug) { var interval = new Interval(startIndex, stopIndex + 1); console.log("reportContextSensitivity decision=" + dfa.decision + ":" + configs + ", input=" + this.parser.getTokenStream().getText(interval)); } if (this.parser!==null) { this.parser.getErrorListenerDispatch().reportContextSensitivity(this.parser, dfa, startIndex, stopIndex, prediction, configs); } }; // If context sensitive parsing, we know it's ambiguity not conflict// ParserATNSimulator.prototype.reportAmbiguity = function(dfa, D, startIndex, stopIndex, exact, ambigAlts, configs ) { if (this.debug || this.retry_debug) { var interval = new Interval(startIndex, stopIndex + 1); console.log("reportAmbiguity " + ambigAlts + ":" + configs + ", input=" + this.parser.getTokenStream().getText(interval)); } if (this.parser!==null) { this.parser.getErrorListenerDispatch().reportAmbiguity(this.parser, dfa, startIndex, stopIndex, exact, ambigAlts, configs); } }; exports.ParserATNSimulator = ParserATNSimulator; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // // This enumeration defines the prediction modes available in ANTLR 4 along with // utility methods for analyzing configuration sets for conflicts and/or // ambiguities. var Set = __webpack_require__(5).Set; var Map = __webpack_require__(5).Map; var BitSet = __webpack_require__(5).BitSet; var AltDict = __webpack_require__(5).AltDict; var ATN = __webpack_require__(3).ATN; var RuleStopState = __webpack_require__(8).RuleStopState; var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var ATNConfig = __webpack_require__(7).ATNConfig; var SemanticContext = __webpack_require__(9).SemanticContext; var Hash = __webpack_require__(5).Hash; var hashStuff = __webpack_require__(5).hashStuff; var equalArrays = __webpack_require__(5).equalArrays; function PredictionMode() { return this; } // // The SLL(*) prediction mode. This prediction mode ignores the current // parser context when making predictions. This is the fastest prediction // mode, and provides correct results for many grammars. This prediction // mode is more powerful than the prediction mode provided by ANTLR 3, but // may result in syntax errors for grammar and input combinations which are // not SLL. // //

    // When using this prediction mode, the parser will either return a correct // parse tree (i.e. the same parse tree that would be returned with the // {@link //LL} prediction mode), or it will report a syntax error. If a // syntax error is encountered when using the {@link //SLL} prediction mode, // it may be due to either an actual syntax error in the input or indicate // that the particular combination of grammar and input requires the more // powerful {@link //LL} prediction abilities to complete successfully.

    // //

    // This prediction mode does not provide any guarantees for prediction // behavior for syntactically-incorrect inputs.

    // PredictionMode.SLL = 0; // // The LL(*) prediction mode. This prediction mode allows the current parser // context to be used for resolving SLL conflicts that occur during // prediction. This is the fastest prediction mode that guarantees correct // parse results for all combinations of grammars with syntactically correct // inputs. // //

    // When using this prediction mode, the parser will make correct decisions // for all syntactically-correct grammar and input combinations. However, in // cases where the grammar is truly ambiguous this prediction mode might not // report a precise answer for exactly which alternatives are // ambiguous.

    // //

    // This prediction mode does not provide any guarantees for prediction // behavior for syntactically-incorrect inputs.

    // PredictionMode.LL = 1; // // The LL(*) prediction mode with exact ambiguity detection. In addition to // the correctness guarantees provided by the {@link //LL} prediction mode, // this prediction mode instructs the prediction algorithm to determine the // complete and exact set of ambiguous alternatives for every ambiguous // decision encountered while parsing. // //

    // This prediction mode may be used for diagnosing ambiguities during // grammar development. Due to the performance overhead of calculating sets // of ambiguous alternatives, this prediction mode should be avoided when // the exact results are not necessary.

    // //

    // This prediction mode does not provide any guarantees for prediction // behavior for syntactically-incorrect inputs.

    // PredictionMode.LL_EXACT_AMBIG_DETECTION = 2; // // Computes the SLL prediction termination condition. // //

    // This method computes the SLL prediction termination condition for both of // the following cases.

    // //
      //
    • The usual SLL+LL fallback upon SLL conflict
    • //
    • Pure SLL without LL fallback
    • //
    // //

    COMBINED SLL+LL PARSING

    // //

    When LL-fallback is enabled upon SLL conflict, correct predictions are // ensured regardless of how the termination condition is computed by this // method. Due to the substantially higher cost of LL prediction, the // prediction should only fall back to LL when the additional lookahead // cannot lead to a unique SLL prediction.

    // //

    Assuming combined SLL+LL parsing, an SLL configuration set with only // conflicting subsets should fall back to full LL, even if the // configuration sets don't resolve to the same alternative (e.g. // {@code {1,2}} and {@code {3,4}}. If there is at least one non-conflicting // configuration, SLL could continue with the hopes that more lookahead will // resolve via one of those non-conflicting configurations.

    // //

    Here's the prediction termination rule them: SLL (for SLL+LL parsing) // stops when it sees only conflicting configuration subsets. In contrast, // full LL keeps going when there is uncertainty.

    // //

    HEURISTIC

    // //

    As a heuristic, we stop prediction when we see any conflicting subset // unless we see a state that only has one alternative associated with it. // The single-alt-state thing lets prediction continue upon rules like // (otherwise, it would admit defeat too soon):

    // //

    {@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) ';' ;}

    // //

    When the ATN simulation reaches the state before {@code ';'}, it has a // DFA state that looks like: {@code [12|1|[], 6|2|[], 12|2|[]]}. Naturally // {@code 12|1|[]} and {@code 12|2|[]} conflict, but we cannot stop // processing this node because alternative to has another way to continue, // via {@code [6|2|[]]}.

    // //

    It also let's us continue for this rule:

    // //

    {@code [1|1|[], 1|2|[], 8|3|[]] a : A | A | A B ;}

    // //

    After matching input A, we reach the stop state for rule A, state 1. // State 8 is the state right before B. Clearly alternatives 1 and 2 // conflict and no amount of further lookahead will separate the two. // However, alternative 3 will be able to continue and so we do not stop // working on this state. In the previous example, we're concerned with // states associated with the conflicting alternatives. Here alt 3 is not // associated with the conflicting configs, but since we can continue // looking for input reasonably, don't declare the state done.

    // //

    PURE SLL PARSING

    // //

    To handle pure SLL parsing, all we have to do is make sure that we // combine stack contexts for configurations that differ only by semantic // predicate. From there, we can do the usual SLL termination heuristic.

    // //

    PREDICATES IN SLL+LL PARSING

    // //

    SLL decisions don't evaluate predicates until after they reach DFA stop // states because they need to create the DFA cache that works in all // semantic situations. In contrast, full LL evaluates predicates collected // during start state computation so it can ignore predicates thereafter. // This means that SLL termination detection can totally ignore semantic // predicates.

    // //

    Implementation-wise, {@link ATNConfigSet} combines stack contexts but not // semantic predicate contexts so we might see two configurations like the // following.

    // //

    {@code (s, 1, x, {}), (s, 1, x', {p})}

    // //

    Before testing these configurations against others, we have to merge // {@code x} and {@code x'} (without modifying the existing configurations). // For example, we test {@code (x+x')==x''} when looking for conflicts in // the following configurations.

    // //

    {@code (s, 1, x, {}), (s, 1, x', {p}), (s, 2, x'', {})}

    // //

    If the configuration set has predicates (as indicated by // {@link ATNConfigSet//hasSemanticContext}), this algorithm makes a copy of // the configurations to strip out all of the predicates so that a standard // {@link ATNConfigSet} will merge everything ignoring predicates.

    // PredictionMode.hasSLLConflictTerminatingPrediction = function( mode, configs) { // Configs in rule stop states indicate reaching the end of the decision // rule (local context) or end of start rule (full context). If all // configs meet this condition, then none of the configurations is able // to match additional input so we terminate prediction. // if (PredictionMode.allConfigsInRuleStopStates(configs)) { return true; } // pure SLL mode parsing if (mode === PredictionMode.SLL) { // Don't bother with combining configs from different semantic // contexts if we can fail over to full LL; costs more time // since we'll often fail over anyway. if (configs.hasSemanticContext) { // dup configs, tossing out semantic predicates var dup = new ATNConfigSet(); for(var i=0;iCan we stop looking ahead during ATN simulation or is there some // uncertainty as to which alternative we will ultimately pick, after // consuming more input? Even if there are partial conflicts, we might know // that everything is going to resolve to the same minimum alternative. That // means we can stop since no more lookahead will change that fact. On the // other hand, there might be multiple conflicts that resolve to different // minimums. That means we need more look ahead to decide which of those // alternatives we should predict.

    // //

    The basic idea is to split the set of configurations {@code C}, into // conflicting subsets {@code (s, _, ctx, _)} and singleton subsets with // non-conflicting configurations. Two configurations conflict if they have // identical {@link ATNConfig//state} and {@link ATNConfig//context} values // but different {@link ATNConfig//alt} value, e.g. {@code (s, i, ctx, _)} // and {@code (s, j, ctx, _)} for {@code i!=j}.

    // //

    Reduce these configuration subsets to the set of possible alternatives. // You can compute the alternative subsets in one pass as follows:

    // //

    {@code A_s,ctx = {i | (s, i, ctx, _)}} for each configuration in // {@code C} holding {@code s} and {@code ctx} fixed.

    // //

    Or in pseudo-code, for each configuration {@code c} in {@code C}:

    // //
    	// map[c] U= c.{@link ATNConfig//alt alt} // map hash/equals uses s and x, not
    	// alt and not pred
    	// 
    // //

    The values in {@code map} are the set of {@code A_s,ctx} sets.

    // //

    If {@code |A_s,ctx|=1} then there is no conflict associated with // {@code s} and {@code ctx}.

    // //

    Reduce the subsets to singletons by choosing a minimum of each subset. If // the union of these alternative subsets is a singleton, then no amount of // more lookahead will help us. We will always pick that alternative. If, // however, there is more than one alternative, then we are uncertain which // alternative to predict and must continue looking for resolution. We may // or may not discover an ambiguity in the future, even if there are no // conflicting subsets this round.

    // //

    The biggest sin is to terminate early because it means we've made a // decision but were uncertain as to the eventual outcome. We haven't used // enough lookahead. On the other hand, announcing a conflict too late is no // big deal; you will still have the conflict. It's just inefficient. It // might even look until the end of file.

    // //

    No special consideration for semantic predicates is required because // predicates are evaluated on-the-fly for full LL prediction, ensuring that // no configuration contains a semantic context during the termination // check.

    // //

    CONFLICTING CONFIGS

    // //

    Two configurations {@code (s, i, x)} and {@code (s, j, x')}, conflict // when {@code i!=j} but {@code x=x'}. Because we merge all // {@code (s, i, _)} configurations together, that means that there are at // most {@code n} configurations associated with state {@code s} for // {@code n} possible alternatives in the decision. The merged stacks // complicate the comparison of configuration contexts {@code x} and // {@code x'}. Sam checks to see if one is a subset of the other by calling // merge and checking to see if the merged result is either {@code x} or // {@code x'}. If the {@code x} associated with lowest alternative {@code i} // is the superset, then {@code i} is the only possible prediction since the // others resolve to {@code min(i)} as well. However, if {@code x} is // associated with {@code j>i} then at least one stack configuration for // {@code j} is not in conflict with alternative {@code i}. The algorithm // should keep going, looking for more lookahead due to the uncertainty.

    // //

    For simplicity, I'm doing a equality check between {@code x} and // {@code x'} that lets the algorithm continue to consume lookahead longer // than necessary. The reason I like the equality is of course the // simplicity but also because that is the test you need to detect the // alternatives that are actually in conflict.

    // //

    CONTINUE/STOP RULE

    // //

    Continue if union of resolved alternative sets from non-conflicting and // conflicting alternative subsets has more than one alternative. We are // uncertain about which alternative to predict.

    // //

    The complete set of alternatives, {@code [i for (_,i,_)]}, tells us which // alternatives are still in the running for the amount of input we've // consumed at this point. The conflicting sets let us to strip away // configurations that won't lead to more states because we resolve // conflicts to the configuration with a minimum alternate for the // conflicting set.

    // //

    CASES

    // //
      // //
    • no conflicts and more than 1 alternative in set => continue
    • // //
    • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s, 3, z)}, // {@code (s', 1, y)}, {@code (s', 2, y)} yields non-conflicting set // {@code {3}} U conflicting sets {@code min({1,2})} U {@code min({1,2})} = // {@code {1,3}} => continue //
    • // //
    • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 1, y)}, // {@code (s', 2, y)}, {@code (s'', 1, z)} yields non-conflicting set // {@code {1}} U conflicting sets {@code min({1,2})} U {@code min({1,2})} = // {@code {1}} => stop and predict 1
    • // //
    • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 1, y)}, // {@code (s', 2, y)} yields conflicting, reduced sets {@code {1}} U // {@code {1}} = {@code {1}} => stop and predict 1, can announce // ambiguity {@code {1,2}}
    • // //
    • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 2, y)}, // {@code (s', 3, y)} yields conflicting, reduced sets {@code {1}} U // {@code {2}} = {@code {1,2}} => continue
    • // //
    • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 3, y)}, // {@code (s', 4, y)} yields conflicting, reduced sets {@code {1}} U // {@code {3}} = {@code {1,3}} => continue
    • // //
    // //

    EXACT AMBIGUITY DETECTION

    // //

    If all states report the same conflicting set of alternatives, then we // know we have the exact ambiguity set.

    // //

    |A_i|>1 and // A_i = A_j for all i, j.

    // //

    In other words, we continue examining lookahead until all {@code A_i} // have more than one alternative and all {@code A_i} are the same. If // {@code A={{1,2}, {1,3}}}, then regular LL prediction would terminate // because the resolved set is {@code {1}}. To determine what the real // ambiguity is, we have to know whether the ambiguity is between one and // two or one and three so we keep going. We can only stop prediction when // we need exact ambiguity detection when the sets look like // {@code A={{1,2}}} or {@code {{1,2},{1,2}}}, etc...

    // PredictionMode.resolvesToJustOneViableAlt = function(altsets) { return PredictionMode.getSingleViableAlt(altsets); }; // // Determines if every alternative subset in {@code altsets} contains more // than one alternative. // // @param altsets a collection of alternative subsets // @return {@code true} if every {@link BitSet} in {@code altsets} has // {@link BitSet//cardinality cardinality} > 1, otherwise {@code false} // PredictionMode.allSubsetsConflict = function(altsets) { return ! PredictionMode.hasNonConflictingAltSet(altsets); }; // // Determines if any single alternative subset in {@code altsets} contains // exactly one alternative. // // @param altsets a collection of alternative subsets // @return {@code true} if {@code altsets} contains a {@link BitSet} with // {@link BitSet//cardinality cardinality} 1, otherwise {@code false} // PredictionMode.hasNonConflictingAltSet = function(altsets) { for(var i=0;i1) { return true; } } return false; }; // // Determines if every alternative subset in {@code altsets} is equivalent. // // @param altsets a collection of alternative subsets // @return {@code true} if every member of {@code altsets} is equal to the // others, otherwise {@code false} // PredictionMode.allSubsetsEqual = function(altsets) { var first = null; for(var i=0;i // map[c] U= c.{@link ATNConfig//alt alt} // map hash/equals uses s and x, not // alt and not pred //
    PredictionMode.getConflictingAltSubsets = function(configs) { var configToAlts = new Map(); configToAlts.hashFunction = function(cfg) { hashStuff(cfg.state.stateNumber, cfg.context); }; configToAlts.equalsFunction = function(c1, c2) { return c1.state.stateNumber==c2.state.stateNumber && c1.context.equals(c2.context);} configs.items.map(function(cfg) { var alts = configToAlts.get(cfg); if (alts === null) { alts = new BitSet(); configToAlts.put(cfg, alts); } alts.add(cfg.alt); }); return configToAlts.getValues(); }; // // Get a map from state to alt subset from a configuration set. For each // configuration {@code c} in {@code configs}: // //
    	// map[c.{@link ATNConfig//state state}] U= c.{@link ATNConfig//alt alt}
    	// 
    // PredictionMode.getStateToAltMap = function(configs) { var m = new AltDict(); configs.items.map(function(c) { var alts = m.get(c.state); if (alts === null) { alts = new BitSet(); m.put(c.state, alts); } alts.add(c.alt); }); return m; }; PredictionMode.hasStateAssociatedWithOneAlt = function(configs) { var values = PredictionMode.getStateToAltMap(configs).values(); for(var i=0;i= size) { return undefined; } // Get the first code unit var first = string.charCodeAt(index); var second; if ( // check if it’s the start of a surrogate pair first >= 0xD800 && first <= 0xDBFF && // high surrogate size > index + 1 // there is a next code unit ) { second = string.charCodeAt(index + 1); if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; } } return first; }; if (defineProperty) { defineProperty(String.prototype, 'codePointAt', { 'value': codePointAt, 'configurable': true, 'writable': true }); } else { String.prototype.codePointAt = codePointAt; } }()); } /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ exports.DFA = __webpack_require__(35).DFA; exports.DFASerializer = __webpack_require__(36).DFASerializer; exports.LexerDFASerializer = __webpack_require__(36).LexerDFASerializer; exports.PredPrediction = __webpack_require__(28).PredPrediction; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ var Set = __webpack_require__(5).Set; var DFAState = __webpack_require__(28).DFAState; var StarLoopEntryState = __webpack_require__(8).StarLoopEntryState; var ATNConfigSet = __webpack_require__(29).ATNConfigSet; var DFASerializer = __webpack_require__(36).DFASerializer; var LexerDFASerializer = __webpack_require__(36).LexerDFASerializer; function DFA(atnStartState, decision) { if (decision === undefined) { decision = 0; } // From which ATN state did we create this DFA? this.atnStartState = atnStartState; this.decision = decision; // A set of all DFA states. Use {@link Map} so we can get old state back // ({@link Set} only allows you to see if it's there). this._states = new Set(); this.s0 = null; // {@code true} if this DFA is for a precedence decision; otherwise, // {@code false}. This is the backing field for {@link //isPrecedenceDfa}, // {@link //setPrecedenceDfa}. this.precedenceDfa = false; if (atnStartState instanceof StarLoopEntryState) { if (atnStartState.isPrecedenceDecision) { this.precedenceDfa = true; var precedenceState = new DFAState(null, new ATNConfigSet()); precedenceState.edges = []; precedenceState.isAcceptState = false; precedenceState.requiresFullContext = false; this.s0 = precedenceState; } } return this; } // Get the start state for a specific precedence value. // // @param precedence The current precedence. // @return The start state corresponding to the specified precedence, or // {@code null} if no start state exists for the specified precedence. // // @throws IllegalStateException if this is not a precedence DFA. // @see //isPrecedenceDfa() DFA.prototype.getPrecedenceStartState = function(precedence) { if (!(this.precedenceDfa)) { throw ("Only precedence DFAs may contain a precedence start state."); } // s0.edges is never null for a precedence DFA if (precedence < 0 || precedence >= this.s0.edges.length) { return null; } return this.s0.edges[precedence] || null; }; // Set the start state for a specific precedence value. // // @param precedence The current precedence. // @param startState The start state corresponding to the specified // precedence. // // @throws IllegalStateException if this is not a precedence DFA. // @see //isPrecedenceDfa() // DFA.prototype.setPrecedenceStartState = function(precedence, startState) { if (!(this.precedenceDfa)) { throw ("Only precedence DFAs may contain a precedence start state."); } if (precedence < 0) { return; } // synchronization on s0 here is ok. when the DFA is turned into a // precedence DFA, s0 will be initialized once and not updated again // s0.edges is never null for a precedence DFA this.s0.edges[precedence] = startState; }; // // Sets whether this is a precedence DFA. If the specified value differs // from the current DFA configuration, the following actions are taken; // otherwise no changes are made to the current DFA. // //
      //
    • The {@link //states} map is cleared
    • //
    • If {@code precedenceDfa} is {@code false}, the initial state // {@link //s0} is set to {@code null}; otherwise, it is initialized to a new // {@link DFAState} with an empty outgoing {@link DFAState//edges} array to // store the start states for individual precedence values.
    • //
    • The {@link //precedenceDfa} field is updated
    • //
    // // @param precedenceDfa {@code true} if this is a precedence DFA; otherwise, // {@code false} DFA.prototype.setPrecedenceDfa = function(precedenceDfa) { if (this.precedenceDfa!==precedenceDfa) { this._states = new DFAStatesSet(); if (precedenceDfa) { var precedenceState = new DFAState(null, new ATNConfigSet()); precedenceState.edges = []; precedenceState.isAcceptState = false; precedenceState.requiresFullContext = false; this.s0 = precedenceState; } else { this.s0 = null; } this.precedenceDfa = precedenceDfa; } }; Object.defineProperty(DFA.prototype, "states", { get : function() { return this._states; } }); // Return a list of all states in this DFA, ordered by state number. DFA.prototype.sortedStates = function() { var list = this._states.values(); return list.sort(function(a, b) { return a.stateNumber - b.stateNumber; }); }; DFA.prototype.toString = function(literalNames, symbolicNames) { literalNames = literalNames || null; symbolicNames = symbolicNames || null; if (this.s0 === null) { return ""; } var serializer = new DFASerializer(this, literalNames, symbolicNames); return serializer.toString(); }; DFA.prototype.toLexerString = function() { if (this.s0 === null) { return ""; } var serializer = new LexerDFASerializer(this); return serializer.toString(); }; exports.DFA = DFA; /***/ }), /* 36 */ /***/ (function(module, exports) { /* 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. */ // A DFA walker that knows how to dump them to serialized strings.#/ function DFASerializer(dfa, literalNames, symbolicNames) { this.dfa = dfa; this.literalNames = literalNames || []; this.symbolicNames = symbolicNames || []; return this; } DFASerializer.prototype.toString = function() { if(this.dfa.s0 === null) { return null; } var buf = ""; var states = this.dfa.sortedStates(); for(var i=0;i"); buf = buf.concat(this.getStateString(t)); buf = buf.concat('\n'); } } } } return buf.length===0 ? null : buf; }; DFASerializer.prototype.getEdgeLabel = function(i) { if (i===0) { return "EOF"; } else if(this.literalNames !==null || this.symbolicNames!==null) { return this.literalNames[i-1] || this.symbolicNames[i-1]; } else { return String.fromCharCode(i-1); } }; DFASerializer.prototype.getStateString = function(s) { var baseStateStr = ( s.isAcceptState ? ":" : "") + "s" + s.stateNumber + ( s.requiresFullContext ? "^" : ""); if(s.isAcceptState) { if (s.predicates !== null) { return baseStateStr + "=>" + s.predicates.toString(); } else { return baseStateStr + "=>" + s.prediction.toString(); } } else { return baseStateStr; } }; function LexerDFASerializer(dfa) { DFASerializer.call(this, dfa, null); return this; } LexerDFASerializer.prototype = Object.create(DFASerializer.prototype); LexerDFASerializer.prototype.constructor = LexerDFASerializer; LexerDFASerializer.prototype.getEdgeLabel = function(i) { return "'" + String.fromCharCode(i) + "'"; }; exports.DFASerializer = DFASerializer; exports.LexerDFASerializer = LexerDFASerializer; /***/ }), /* 37 */ /***/ (function(module, exports) { /*! https://mths.be/fromcodepoint v0.2.1 by @mathias */ if (!String.fromCodePoint) { (function() { var defineProperty = (function() { // IE 8 only supports `Object.defineProperty` on DOM elements try { var object = {}; var $defineProperty = Object.defineProperty; var result = $defineProperty(object, object, object) && $defineProperty; } catch(error) {} return result; }()); var stringFromCharCode = String.fromCharCode; var floor = Math.floor; var fromCodePoint = function(_) { var MAX_SIZE = 0x4000; var codeUnits = []; var highSurrogate; var lowSurrogate; var index = -1; var length = arguments.length; if (!length) { return ''; } var result = ''; while (++index < length) { var codePoint = Number(arguments[index]); if ( !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` codePoint < 0 || // not a valid Unicode code point codePoint > 0x10FFFF || // not a valid Unicode code point floor(codePoint) != codePoint // not an integer ) { throw RangeError('Invalid code point: ' + codePoint); } if (codePoint <= 0xFFFF) { // BMP code point codeUnits.push(codePoint); } else { // Astral code point; split in surrogate halves // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae codePoint -= 0x10000; highSurrogate = (codePoint >> 10) + 0xD800; lowSurrogate = (codePoint % 0x400) + 0xDC00; codeUnits.push(highSurrogate, lowSurrogate); } if (index + 1 == length || codeUnits.length > MAX_SIZE) { result += stringFromCharCode.apply(null, codeUnits); codeUnits.length = 0; } } return result; }; if (defineProperty) { defineProperty(String, 'fromCodePoint', { 'value': fromCodePoint, 'configurable': true, 'writable': true }); } else { String.fromCodePoint = fromCodePoint; } }()); } /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ var Tree = __webpack_require__(14); exports.Trees = __webpack_require__(15).Trees; exports.RuleNode = Tree.RuleNode; exports.ParseTreeListener = Tree.ParseTreeListener; exports.ParseTreeVisitor = Tree.ParseTreeVisitor; exports.ParseTreeWalker = Tree.ParseTreeWalker; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ exports.RecognitionException = __webpack_require__(26).RecognitionException; exports.NoViableAltException = __webpack_require__(26).NoViableAltException; exports.LexerNoViableAltException = __webpack_require__(26).LexerNoViableAltException; exports.InputMismatchException = __webpack_require__(26).InputMismatchException; exports.FailedPredicateException = __webpack_require__(26).FailedPredicateException; exports.DiagnosticErrorListener = __webpack_require__(40).DiagnosticErrorListener; exports.BailErrorStrategy = __webpack_require__(41).BailErrorStrategy; exports.ErrorListener = __webpack_require__(24).ErrorListener; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // // This implementation of {@link ANTLRErrorListener} can be used to identify // certain potential correctness and performance problems in grammars. "Reports" // are made by calling {@link Parser//notifyErrorListeners} with the appropriate // message. // //
      //
    • Ambiguities: These are cases where more than one path through the // grammar can match the input.
    • //
    • Weak context sensitivity: These are cases where full-context // prediction resolved an SLL conflict to a unique alternative which equaled the // minimum alternative of the SLL conflict.
    • //
    • Strong (forced) context sensitivity: These are cases where the // full-context prediction resolved an SLL conflict to a unique alternative, // and the minimum alternative of the SLL conflict was found to not be // a truly viable alternative. Two-stage parsing cannot be used for inputs where // this situation occurs.
    • //
    var BitSet = __webpack_require__(5).BitSet; var ErrorListener = __webpack_require__(24).ErrorListener; var Interval = __webpack_require__(10).Interval; function DiagnosticErrorListener(exactOnly) { ErrorListener.call(this); exactOnly = exactOnly || true; // whether all ambiguities or only exact ambiguities are reported. this.exactOnly = exactOnly; return this; } DiagnosticErrorListener.prototype = Object.create(ErrorListener.prototype); DiagnosticErrorListener.prototype.constructor = DiagnosticErrorListener; DiagnosticErrorListener.prototype.reportAmbiguity = function(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) { if (this.exactOnly && !exact) { return; } var msg = "reportAmbiguity d=" + this.getDecisionDescription(recognizer, dfa) + ": ambigAlts=" + this.getConflictingAlts(ambigAlts, configs) + ", input='" + recognizer.getTokenStream().getText(new Interval(startIndex, stopIndex)) + "'"; recognizer.notifyErrorListeners(msg); }; DiagnosticErrorListener.prototype.reportAttemptingFullContext = function( recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs) { var msg = "reportAttemptingFullContext d=" + this.getDecisionDescription(recognizer, dfa) + ", input='" + recognizer.getTokenStream().getText(new Interval(startIndex, stopIndex)) + "'"; recognizer.notifyErrorListeners(msg); }; DiagnosticErrorListener.prototype.reportContextSensitivity = function( recognizer, dfa, startIndex, stopIndex, prediction, configs) { var msg = "reportContextSensitivity d=" + this.getDecisionDescription(recognizer, dfa) + ", input='" + recognizer.getTokenStream().getText(new Interval(startIndex, stopIndex)) + "'"; recognizer.notifyErrorListeners(msg); }; DiagnosticErrorListener.prototype.getDecisionDescription = function(recognizer, dfa) { var decision = dfa.decision; var ruleIndex = dfa.atnStartState.ruleIndex; var ruleNames = recognizer.ruleNames; if (ruleIndex < 0 || ruleIndex >= ruleNames.length) { return "" + decision; } var ruleName = ruleNames[ruleIndex] || null; if (ruleName === null || ruleName.length === 0) { return "" + decision; } return "" + decision + " (" + ruleName + ")"; }; // // Computes the set of conflicting or ambiguous alternatives from a // configuration set, if that information was not already provided by the // parser. // // @param reportedAlts The set of conflicting or ambiguous alternatives, as // reported by the parser. // @param configs The conflicting or ambiguous configuration set. // @return Returns {@code reportedAlts} if it is not {@code null}, otherwise // returns the set of alternatives represented in {@code configs}. // DiagnosticErrorListener.prototype.getConflictingAlts = function(reportedAlts, configs) { if (reportedAlts !== null) { return reportedAlts; } var result = new BitSet(); for (var i = 0; i < configs.items.length; i++) { result.add(configs.items[i].alt); } return "{" + result.values().join(", ") + "}"; }; exports.DiagnosticErrorListener = DiagnosticErrorListener; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // var Token = __webpack_require__(6).Token; var Errors = __webpack_require__(26); var NoViableAltException = Errors.NoViableAltException; var InputMismatchException = Errors.InputMismatchException; var FailedPredicateException = Errors.FailedPredicateException; var ParseCancellationException = Errors.ParseCancellationException; var ATNState = __webpack_require__(8).ATNState; var Interval = __webpack_require__(10).Interval; var IntervalSet = __webpack_require__(10).IntervalSet; function ErrorStrategy() { } ErrorStrategy.prototype.reset = function(recognizer){ }; ErrorStrategy.prototype.recoverInline = function(recognizer){ }; ErrorStrategy.prototype.recover = function(recognizer, e){ }; ErrorStrategy.prototype.sync = function(recognizer){ }; ErrorStrategy.prototype.inErrorRecoveryMode = function(recognizer){ }; ErrorStrategy.prototype.reportError = function(recognizer){ }; // This is the default implementation of {@link ANTLRErrorStrategy} used for // error reporting and recovery in ANTLR parsers. // function DefaultErrorStrategy() { ErrorStrategy.call(this); // Indicates whether the error strategy is currently "recovering from an // error". This is used to suppress reporting multiple error messages while // attempting to recover from a detected syntax error. // // @see //inErrorRecoveryMode // this.errorRecoveryMode = false; // The index into the input stream where the last error occurred. // This is used to prevent infinite loops where an error is found // but no token is consumed during recovery...another error is found, // ad nauseum. This is a failsafe mechanism to guarantee that at least // one token/tree node is consumed for two errors. // this.lastErrorIndex = -1; this.lastErrorStates = null; return this; } DefaultErrorStrategy.prototype = Object.create(ErrorStrategy.prototype); DefaultErrorStrategy.prototype.constructor = DefaultErrorStrategy; //

    The default implementation simply calls {@link //endErrorCondition} to // ensure that the handler is not in error recovery mode.

    DefaultErrorStrategy.prototype.reset = function(recognizer) { this.endErrorCondition(recognizer); }; // // This method is called to enter error recovery mode when a recognition // exception is reported. // // @param recognizer the parser instance // DefaultErrorStrategy.prototype.beginErrorCondition = function(recognizer) { this.errorRecoveryMode = true; }; DefaultErrorStrategy.prototype.inErrorRecoveryMode = function(recognizer) { return this.errorRecoveryMode; }; // // This method is called to leave error recovery mode after recovering from // a recognition exception. // // @param recognizer // DefaultErrorStrategy.prototype.endErrorCondition = function(recognizer) { this.errorRecoveryMode = false; this.lastErrorStates = null; this.lastErrorIndex = -1; }; // // {@inheritDoc} // //

    The default implementation simply calls {@link //endErrorCondition}.

    // DefaultErrorStrategy.prototype.reportMatch = function(recognizer) { this.endErrorCondition(recognizer); }; // // {@inheritDoc} // //

    The default implementation returns immediately if the handler is already // in error recovery mode. Otherwise, it calls {@link //beginErrorCondition} // and dispatches the reporting task based on the runtime type of {@code e} // according to the following table.

    // //
      //
    • {@link NoViableAltException}: Dispatches the call to // {@link //reportNoViableAlternative}
    • //
    • {@link InputMismatchException}: Dispatches the call to // {@link //reportInputMismatch}
    • //
    • {@link FailedPredicateException}: Dispatches the call to // {@link //reportFailedPredicate}
    • //
    • All other types: calls {@link Parser//notifyErrorListeners} to report // the exception
    • //
    // DefaultErrorStrategy.prototype.reportError = function(recognizer, e) { // if we've already reported an error and have not matched a token // yet successfully, don't report any errors. if(this.inErrorRecoveryMode(recognizer)) { return; // don't report spurious errors } this.beginErrorCondition(recognizer); if ( e instanceof NoViableAltException ) { this.reportNoViableAlternative(recognizer, e); } else if ( e instanceof InputMismatchException ) { this.reportInputMismatch(recognizer, e); } else if ( e instanceof FailedPredicateException ) { this.reportFailedPredicate(recognizer, e); } else { console.log("unknown recognition error type: " + e.constructor.name); console.log(e.stack); recognizer.notifyErrorListeners(e.getOffendingToken(), e.getMessage(), e); } }; // // {@inheritDoc} // //

    The default implementation resynchronizes the parser by consuming tokens // until we find one in the resynchronization set--loosely the set of tokens // that can follow the current rule.

    // DefaultErrorStrategy.prototype.recover = function(recognizer, e) { if (this.lastErrorIndex===recognizer.getInputStream().index && this.lastErrorStates !== null && this.lastErrorStates.indexOf(recognizer.state)>=0) { // uh oh, another error at same token index and previously-visited // state in ATN; must be a case where LT(1) is in the recovery // token set so nothing got consumed. Consume a single token // at least to prevent an infinite loop; this is a failsafe. recognizer.consume(); } this.lastErrorIndex = recognizer._input.index; if (this.lastErrorStates === null) { this.lastErrorStates = []; } this.lastErrorStates.push(recognizer.state); var followSet = this.getErrorRecoverySet(recognizer); this.consumeUntil(recognizer, followSet); }; // The default implementation of {@link ANTLRErrorStrategy//sync} makes sure // that the current lookahead symbol is consistent with what were expecting // at this point in the ATN. You can call this anytime but ANTLR only // generates code to check before subrules/loops and each iteration. // //

    Implements Jim Idle's magic sync mechanism in closures and optional // subrules. E.g.,

    // //
    	// a : sync ( stuff sync )* ;
    	// sync : {consume to what can follow sync} ;
    	// 
    // // At the start of a sub rule upon error, {@link //sync} performs single // token deletion, if possible. If it can't do that, it bails on the current // rule and uses the default error recovery, which consumes until the // resynchronization set of the current rule. // //

    If the sub rule is optional ({@code (...)?}, {@code (...)*}, or block // with an empty alternative), then the expected set includes what follows // the subrule.

    // //

    During loop iteration, it consumes until it sees a token that can start a // sub rule or what follows loop. Yes, that is pretty aggressive. We opt to // stay in the loop as long as possible.

    // //

    ORIGINS

    // //

    Previous versions of ANTLR did a poor job of their recovery within loops. // A single mismatch token or missing token would force the parser to bail // out of the entire rules surrounding the loop. So, for rule

    // //
    	// classDef : 'class' ID '{' member* '}'
    	// 
    // // input with an extra token between members would force the parser to // consume until it found the next class definition rather than the next // member definition of the current class. // //

    This functionality cost a little bit of effort because the parser has to // compare token set at the start of the loop and at each iteration. If for // some reason speed is suffering for you, you can turn off this // functionality by simply overriding this method as a blank { }.

    // DefaultErrorStrategy.prototype.sync = function(recognizer) { // If already recovering, don't try to sync if (this.inErrorRecoveryMode(recognizer)) { return; } var s = recognizer._interp.atn.states[recognizer.state]; var la = recognizer.getTokenStream().LA(1); // try cheaper subset first; might get lucky. seems to shave a wee bit off var nextTokens = recognizer.atn.nextTokens(s); if (nextTokens.contains(Token.EPSILON) || nextTokens.contains(la)) { return; } switch (s.stateType) { case ATNState.BLOCK_START: case ATNState.STAR_BLOCK_START: case ATNState.PLUS_BLOCK_START: case ATNState.STAR_LOOP_ENTRY: // report error and recover if possible if( this.singleTokenDeletion(recognizer) !== null) { return; } else { throw new InputMismatchException(recognizer); } break; case ATNState.PLUS_LOOP_BACK: case ATNState.STAR_LOOP_BACK: this.reportUnwantedToken(recognizer); var expecting = new IntervalSet(); expecting.addSet(recognizer.getExpectedTokens()); var whatFollowsLoopIterationOrRule = expecting.addSet(this.getErrorRecoverySet(recognizer)); this.consumeUntil(recognizer, whatFollowsLoopIterationOrRule); break; default: // do nothing if we can't identify the exact kind of ATN state } }; // This is called by {@link //reportError} when the exception is a // {@link NoViableAltException}. // // @see //reportError // // @param recognizer the parser instance // @param e the recognition exception // DefaultErrorStrategy.prototype.reportNoViableAlternative = function(recognizer, e) { var tokens = recognizer.getTokenStream(); var input; if(tokens !== null) { if (e.startToken.type===Token.EOF) { input = ""; } else { input = tokens.getText(new Interval(e.startToken.tokenIndex, e.offendingToken.tokenIndex)); } } else { input = ""; } var msg = "no viable alternative at input " + this.escapeWSAndQuote(input); recognizer.notifyErrorListeners(msg, e.offendingToken, e); }; // // This is called by {@link //reportError} when the exception is an // {@link InputMismatchException}. // // @see //reportError // // @param recognizer the parser instance // @param e the recognition exception // DefaultErrorStrategy.prototype.reportInputMismatch = function(recognizer, e) { var msg = "mismatched input " + this.getTokenErrorDisplay(e.offendingToken) + " expecting " + e.getExpectedTokens().toString(recognizer.literalNames, recognizer.symbolicNames); recognizer.notifyErrorListeners(msg, e.offendingToken, e); }; // // This is called by {@link //reportError} when the exception is a // {@link FailedPredicateException}. // // @see //reportError // // @param recognizer the parser instance // @param e the recognition exception // DefaultErrorStrategy.prototype.reportFailedPredicate = function(recognizer, e) { var ruleName = recognizer.ruleNames[recognizer._ctx.ruleIndex]; var msg = "rule " + ruleName + " " + e.message; recognizer.notifyErrorListeners(msg, e.offendingToken, e); }; // This method is called to report a syntax error which requires the removal // of a token from the input stream. At the time this method is called, the // erroneous symbol is current {@code LT(1)} symbol and has not yet been // removed from the input stream. When this method returns, // {@code recognizer} is in error recovery mode. // //

    This method is called when {@link //singleTokenDeletion} identifies // single-token deletion as a viable recovery strategy for a mismatched // input error.

    // //

    The default implementation simply returns if the handler is already in // error recovery mode. Otherwise, it calls {@link //beginErrorCondition} to // enter error recovery mode, followed by calling // {@link Parser//notifyErrorListeners}.

    // // @param recognizer the parser instance // DefaultErrorStrategy.prototype.reportUnwantedToken = function(recognizer) { if (this.inErrorRecoveryMode(recognizer)) { return; } this.beginErrorCondition(recognizer); var t = recognizer.getCurrentToken(); var tokenName = this.getTokenErrorDisplay(t); var expecting = this.getExpectedTokens(recognizer); var msg = "extraneous input " + tokenName + " expecting " + expecting.toString(recognizer.literalNames, recognizer.symbolicNames); recognizer.notifyErrorListeners(msg, t, null); }; // This method is called to report a syntax error which requires the // insertion of a missing token into the input stream. At the time this // method is called, the missing token has not yet been inserted. When this // method returns, {@code recognizer} is in error recovery mode. // //

    This method is called when {@link //singleTokenInsertion} identifies // single-token insertion as a viable recovery strategy for a mismatched // input error.

    // //

    The default implementation simply returns if the handler is already in // error recovery mode. Otherwise, it calls {@link //beginErrorCondition} to // enter error recovery mode, followed by calling // {@link Parser//notifyErrorListeners}.

    // // @param recognizer the parser instance // DefaultErrorStrategy.prototype.reportMissingToken = function(recognizer) { if ( this.inErrorRecoveryMode(recognizer)) { return; } this.beginErrorCondition(recognizer); var t = recognizer.getCurrentToken(); var expecting = this.getExpectedTokens(recognizer); var msg = "missing " + expecting.toString(recognizer.literalNames, recognizer.symbolicNames) + " at " + this.getTokenErrorDisplay(t); recognizer.notifyErrorListeners(msg, t, null); }; //

    The default implementation attempts to recover from the mismatched input // by using single token insertion and deletion as described below. If the // recovery attempt fails, this method throws an // {@link InputMismatchException}.

    // //

    EXTRA TOKEN (single token deletion)

    // //

    {@code LA(1)} is not what we are looking for. If {@code LA(2)} has the // right token, however, then assume {@code LA(1)} is some extra spurious // token and delete it. Then consume and return the next token (which was // the {@code LA(2)} token) as the successful result of the match operation.

    // //

    This recovery strategy is implemented by {@link // //singleTokenDeletion}.

    // //

    MISSING TOKEN (single token insertion)

    // //

    If current token (at {@code LA(1)}) is consistent with what could come // after the expected {@code LA(1)} token, then assume the token is missing // and use the parser's {@link TokenFactory} to create it on the fly. The // "insertion" is performed by returning the created token as the successful // result of the match operation.

    // //

    This recovery strategy is implemented by {@link // //singleTokenInsertion}.

    // //

    EXAMPLE

    // //

    For example, Input {@code i=(3;} is clearly missing the {@code ')'}. When // the parser returns from the nested call to {@code expr}, it will have // call chain:

    // //
    	// stat → expr → atom
    	// 
    // // and it will be trying to match the {@code ')'} at this point in the // derivation: // //
    	// => ID '=' '(' INT ')' ('+' atom)* ';'
    	// ^
    	// 
    // // The attempt to match {@code ')'} will fail when it sees {@code ';'} and // call {@link //recoverInline}. To recover, it sees that {@code LA(1)==';'} // is in the set of tokens that can follow the {@code ')'} token reference // in rule {@code atom}. It can assume that you forgot the {@code ')'}. // DefaultErrorStrategy.prototype.recoverInline = function(recognizer) { // SINGLE TOKEN DELETION var matchedSymbol = this.singleTokenDeletion(recognizer); if (matchedSymbol !== null) { // we have deleted the extra token. // now, move past ttype token as if all were ok recognizer.consume(); return matchedSymbol; } // SINGLE TOKEN INSERTION if (this.singleTokenInsertion(recognizer)) { return this.getMissingSymbol(recognizer); } // even that didn't work; must throw the exception throw new InputMismatchException(recognizer); }; // // This method implements the single-token insertion inline error recovery // strategy. It is called by {@link //recoverInline} if the single-token // deletion strategy fails to recover from the mismatched input. If this // method returns {@code true}, {@code recognizer} will be in error recovery // mode. // //

    This method determines whether or not single-token insertion is viable by // checking if the {@code LA(1)} input symbol could be successfully matched // if it were instead the {@code LA(2)} symbol. If this method returns // {@code true}, the caller is responsible for creating and inserting a // token with the correct type to produce this behavior.

    // // @param recognizer the parser instance // @return {@code true} if single-token insertion is a viable recovery // strategy for the current mismatched input, otherwise {@code false} // DefaultErrorStrategy.prototype.singleTokenInsertion = function(recognizer) { var currentSymbolType = recognizer.getTokenStream().LA(1); // if current token is consistent with what could come after current // ATN state, then we know we're missing a token; error recovery // is free to conjure up and insert the missing token var atn = recognizer._interp.atn; var currentState = atn.states[recognizer.state]; var next = currentState.transitions[0].target; var expectingAtLL2 = atn.nextTokens(next, recognizer._ctx); if (expectingAtLL2.contains(currentSymbolType) ){ this.reportMissingToken(recognizer); return true; } else { return false; } }; // This method implements the single-token deletion inline error recovery // strategy. It is called by {@link //recoverInline} to attempt to recover // from mismatched input. If this method returns null, the parser and error // handler state will not have changed. If this method returns non-null, // {@code recognizer} will not be in error recovery mode since the // returned token was a successful match. // //

    If the single-token deletion is successful, this method calls // {@link //reportUnwantedToken} to report the error, followed by // {@link Parser//consume} to actually "delete" the extraneous token. Then, // before returning {@link //reportMatch} is called to signal a successful // match.

    // // @param recognizer the parser instance // @return the successfully matched {@link Token} instance if single-token // deletion successfully recovers from the mismatched input, otherwise // {@code null} // DefaultErrorStrategy.prototype.singleTokenDeletion = function(recognizer) { var nextTokenType = recognizer.getTokenStream().LA(2); var expecting = this.getExpectedTokens(recognizer); if (expecting.contains(nextTokenType)) { this.reportUnwantedToken(recognizer); // print("recoverFromMismatchedToken deleting " \ // + str(recognizer.getTokenStream().LT(1)) \ // + " since " + str(recognizer.getTokenStream().LT(2)) \ // + " is what we want", file=sys.stderr) recognizer.consume(); // simply delete extra token // we want to return the token we're actually matching var matchedSymbol = recognizer.getCurrentToken(); this.reportMatch(recognizer); // we know current token is correct return matchedSymbol; } else { return null; } }; // Conjure up a missing token during error recovery. // // The recognizer attempts to recover from single missing // symbols. But, actions might refer to that missing symbol. // For example, x=ID {f($x);}. The action clearly assumes // that there has been an identifier matched previously and that // $x points at that token. If that token is missing, but // the next token in the stream is what we want we assume that // this token is missing and we keep going. Because we // have to return some token to replace the missing token, // we have to conjure one up. This method gives the user control // over the tokens returned for missing tokens. Mostly, // you will want to create something special for identifier // tokens. For literals such as '{' and ',', the default // action in the parser or tree parser works. It simply creates // a CommonToken of the appropriate type. The text will be the token. // If you change what tokens must be created by the lexer, // override this method to create the appropriate tokens. // DefaultErrorStrategy.prototype.getMissingSymbol = function(recognizer) { var currentSymbol = recognizer.getCurrentToken(); var expecting = this.getExpectedTokens(recognizer); var expectedTokenType = expecting.first(); // get any element var tokenText; if (expectedTokenType===Token.EOF) { tokenText = ""; } else { tokenText = ""; } var current = currentSymbol; var lookback = recognizer.getTokenStream().LT(-1); if (current.type===Token.EOF && lookback !== null) { current = lookback; } return recognizer.getTokenFactory().create(current.source, expectedTokenType, tokenText, Token.DEFAULT_CHANNEL, -1, -1, current.line, current.column); }; DefaultErrorStrategy.prototype.getExpectedTokens = function(recognizer) { return recognizer.getExpectedTokens(); }; // How should a token be displayed in an error message? The default // is to display just the text, but during development you might // want to have a lot of information spit out. Override in that case // to use t.toString() (which, for CommonToken, dumps everything about // the token). This is better than forcing you to override a method in // your token objects because you don't have to go modify your lexer // so that it creates a new Java type. // DefaultErrorStrategy.prototype.getTokenErrorDisplay = function(t) { if (t === null) { return ""; } var s = t.text; if (s === null) { if (t.type===Token.EOF) { s = ""; } else { s = "<" + t.type + ">"; } } return this.escapeWSAndQuote(s); }; DefaultErrorStrategy.prototype.escapeWSAndQuote = function(s) { s = s.replace(/\n/g,"\\n"); s = s.replace(/\r/g,"\\r"); s = s.replace(/\t/g,"\\t"); return "'" + s + "'"; }; // Compute the error recovery set for the current rule. During // rule invocation, the parser pushes the set of tokens that can // follow that rule reference on the stack; this amounts to // computing FIRST of what follows the rule reference in the // enclosing rule. See LinearApproximator.FIRST(). // This local follow set only includes tokens // from within the rule; i.e., the FIRST computation done by // ANTLR stops at the end of a rule. // // EXAMPLE // // When you find a "no viable alt exception", the input is not // consistent with any of the alternatives for rule r. The best // thing to do is to consume tokens until you see something that // can legally follow a call to r//or* any rule that called r. // You don't want the exact set of viable next tokens because the // input might just be missing a token--you might consume the // rest of the input looking for one of the missing tokens. // // Consider grammar: // // a : '[' b ']' // | '(' b ')' // ; // b : c '^' INT ; // c : ID // | INT // ; // // At each rule invocation, the set of tokens that could follow // that rule is pushed on a stack. Here are the various // context-sensitive follow sets: // // FOLLOW(b1_in_a) = FIRST(']') = ']' // FOLLOW(b2_in_a) = FIRST(')') = ')' // FOLLOW(c_in_b) = FIRST('^') = '^' // // Upon erroneous input "[]", the call chain is // // a -> b -> c // // and, hence, the follow context stack is: // // depth follow set start of rule execution // 0 a (from main()) // 1 ']' b // 2 '^' c // // Notice that ')' is not included, because b would have to have // been called from a different context in rule a for ')' to be // included. // // For error recovery, we cannot consider FOLLOW(c) // (context-sensitive or otherwise). We need the combined set of // all context-sensitive FOLLOW sets--the set of all tokens that // could follow any reference in the call chain. We need to // resync to one of those tokens. Note that FOLLOW(c)='^' and if // we resync'd to that token, we'd consume until EOF. We need to // sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. // In this case, for input "[]", LA(1) is ']' and in the set, so we would // not consume anything. After printing an error, rule c would // return normally. Rule b would not find the required '^' though. // At this point, it gets a mismatched token error and throws an // exception (since LA(1) is not in the viable following token // set). The rule exception handler tries to recover, but finds // the same recovery set and doesn't consume anything. Rule b // exits normally returning to rule a. Now it finds the ']' (and // with the successful match exits errorRecovery mode). // // So, you can see that the parser walks up the call chain looking // for the token that was a member of the recovery set. // // Errors are not generated in errorRecovery mode. // // ANTLR's error recovery mechanism is based upon original ideas: // // "Algorithms + Data Structures = Programs" by Niklaus Wirth // // and // // "A note on error recovery in recursive descent parsers": // http://portal.acm.org/citation.cfm?id=947902.947905 // // Later, Josef Grosch had some good ideas: // // "Efficient and Comfortable Error Recovery in Recursive Descent // Parsers": // ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip // // Like Grosch I implement context-sensitive FOLLOW sets that are combined // at run-time upon error to avoid overhead during parsing. // DefaultErrorStrategy.prototype.getErrorRecoverySet = function(recognizer) { var atn = recognizer._interp.atn; var ctx = recognizer._ctx; var recoverSet = new IntervalSet(); while (ctx !== null && ctx.invokingState>=0) { // compute what follows who invoked us var invokingState = atn.states[ctx.invokingState]; var rt = invokingState.transitions[0]; var follow = atn.nextTokens(rt.followState); recoverSet.addSet(follow); ctx = ctx.parentCtx; } recoverSet.removeOne(Token.EPSILON); return recoverSet; }; // Consume tokens until one matches the given token set.// DefaultErrorStrategy.prototype.consumeUntil = function(recognizer, set) { var ttype = recognizer.getTokenStream().LA(1); while( ttype !== Token.EOF && !set.contains(ttype)) { recognizer.consume(); ttype = recognizer.getTokenStream().LA(1); } }; // // This implementation of {@link ANTLRErrorStrategy} responds to syntax errors // by immediately canceling the parse operation with a // {@link ParseCancellationException}. The implementation ensures that the // {@link ParserRuleContext//exception} field is set for all parse tree nodes // that were not completed prior to encountering the error. // //

    // This error strategy is useful in the following scenarios.

    // //
      //
    • Two-stage parsing: This error strategy allows the first // stage of two-stage parsing to immediately terminate if an error is // encountered, and immediately fall back to the second stage. In addition to // avoiding wasted work by attempting to recover from errors here, the empty // implementation of {@link BailErrorStrategy//sync} improves the performance of // the first stage.
    • //
    • Silent validation: When syntax errors are not being // reported or logged, and the parse result is simply ignored if errors occur, // the {@link BailErrorStrategy} avoids wasting work on recovering from errors // when the result will be ignored either way.
    • //
    // //

    // {@code myparser.setErrorHandler(new BailErrorStrategy());}

    // // @see Parser//setErrorHandler(ANTLRErrorStrategy) // function BailErrorStrategy() { DefaultErrorStrategy.call(this); return this; } BailErrorStrategy.prototype = Object.create(DefaultErrorStrategy.prototype); BailErrorStrategy.prototype.constructor = BailErrorStrategy; // Instead of recovering from exception {@code e}, re-throw it wrapped // in a {@link ParseCancellationException} so it is not caught by the // rule function catches. Use {@link Exception//getCause()} to get the // original {@link RecognitionException}. // BailErrorStrategy.prototype.recover = function(recognizer, e) { var context = recognizer._ctx; while (context !== null) { context.exception = e; context = context.parentCtx; } throw new ParseCancellationException(e); }; // Make sure we don't attempt to recover inline; if the parser // successfully recovers, it won't throw an exception. // BailErrorStrategy.prototype.recoverInline = function(recognizer) { this.recover(recognizer, new InputMismatchException(recognizer)); }; // Make sure we don't attempt to recover from problems in subrules.// BailErrorStrategy.prototype.sync = function(recognizer) { // pass }; exports.BailErrorStrategy = BailErrorStrategy; exports.DefaultErrorStrategy = DefaultErrorStrategy; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // var InputStream = __webpack_require__(43).InputStream; var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; var fs = isNodeJs ? __webpack_require__(44) : null; // Utility functions to create InputStreams from various sources. // // All returned InputStreams support the full range of Unicode // up to U+10FFFF (the default behavior of InputStream only supports // code points up to U+FFFF). var CharStreams = { // Creates an InputStream from a string. fromString: function(str) { return new InputStream(str, true); }, // Asynchronously creates an InputStream from a blob given the // encoding of the bytes in that blob (defaults to 'utf8' if // encoding is null). // // Invokes onLoad(result) on success, onError(error) on // failure. fromBlob: function(blob, encoding, onLoad, onError) { var reader = FileReader(); reader.onload = function(e) { var is = new InputStream(e.target.result, true); onLoad(is); }; reader.onerror = onError; reader.readAsText(blob, encoding); }, // Creates an InputStream from a Buffer given the // encoding of the bytes in that buffer (defaults to 'utf8' if // encoding is null). fromBuffer: function(buffer, encoding) { return new InputStream(buffer.toString(encoding), true); }, // Asynchronously creates an InputStream from a file on disk given // the encoding of the bytes in that file (defaults to 'utf8' if // encoding is null). // // Invokes callback(error, result) on completion. fromPath: function(path, encoding, callback) { fs.readFile(path, encoding, function(err, data) { var is = null; if (data !== null) { is = new InputStream(data, true); } callback(err, is); }); }, // Synchronously creates an InputStream given a path to a file // on disk and the encoding of the bytes in that file (defaults to // 'utf8' if encoding is null). fromPathSync: function(path, encoding) { var data = fs.readFileSync(path, encoding); return new InputStream(data, true); } }; exports.CharStreams = CharStreams; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // var Token = __webpack_require__(6).Token; __webpack_require__(33); __webpack_require__(37); // Vacuum all input from a string and then treat it like a buffer. function _loadString(stream, decodeToUnicodeCodePoints) { stream._index = 0; stream.data = []; if (stream.decodeToUnicodeCodePoints) { for (var i = 0; i < stream.strdata.length; ) { var codePoint = stream.strdata.codePointAt(i); stream.data.push(codePoint); i += codePoint <= 0xFFFF ? 1 : 2; } } else { for (var i = 0; i < stream.strdata.length; i++) { var codeUnit = stream.strdata.charCodeAt(i); stream.data.push(codeUnit); } } stream._size = stream.data.length; } // If decodeToUnicodeCodePoints is true, the input is treated // as a series of Unicode code points. // // Otherwise, the input is treated as a series of 16-bit UTF-16 code // units. function InputStream(data, decodeToUnicodeCodePoints) { this.name = ""; this.strdata = data; this.decodeToUnicodeCodePoints = decodeToUnicodeCodePoints || false; _loadString(this); return this; } Object.defineProperty(InputStream.prototype, "index", { get : function() { return this._index; } }); Object.defineProperty(InputStream.prototype, "size", { get : function() { return this._size; } }); // Reset the stream so that it's in the same state it was // when the object was created *except* the data array is not // touched. // InputStream.prototype.reset = function() { this._index = 0; }; InputStream.prototype.consume = function() { if (this._index >= this._size) { // assert this.LA(1) == Token.EOF throw ("cannot consume EOF"); } this._index += 1; }; InputStream.prototype.LA = function(offset) { if (offset === 0) { return 0; // undefined } if (offset < 0) { offset += 1; // e.g., translate LA(-1) to use offset=0 } var pos = this._index + offset - 1; if (pos < 0 || pos >= this._size) { // invalid return Token.EOF; } return this.data[pos]; }; InputStream.prototype.LT = function(offset) { return this.LA(offset); }; // mark/release do nothing; we have entire buffer InputStream.prototype.mark = function() { return -1; }; InputStream.prototype.release = function(marker) { }; // consume() ahead until p==_index; can't just set p=_index as we must // update line and column. If we seek backwards, just set p // InputStream.prototype.seek = function(_index) { if (_index <= this._index) { this._index = _index; // just jump; don't update stream state (line, // ...) return; } // seek forward this._index = Math.min(_index, this._size); }; InputStream.prototype.getText = function(start, stop) { if (stop >= this._size) { stop = this._size - 1; } if (start >= this._size) { return ""; } else { if (this.decodeToUnicodeCodePoints) { var result = ""; for (var i = start; i <= stop; i++) { result += String.fromCodePoint(this.data[i]); } return result; } else { return this.strdata.slice(start, stop + 1); } } }; InputStream.prototype.toString = function() { return this.strdata; }; exports.InputStream = InputStream; /***/ }), /* 44 */ /***/ (function(module, exports) { /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // // // This is an InputStream that is loaded from a file all at once // when you construct the object. // var InputStream = __webpack_require__(43).InputStream; var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; var fs = isNodeJs ? __webpack_require__(44) : null; function FileStream(fileName, decodeToUnicodeCodePoints) { var data = fs.readFileSync(fileName, "utf8"); InputStream.call(this, data, decodeToUnicodeCodePoints); this.fileName = fileName; return this; } FileStream.prototype = Object.create(InputStream.prototype); FileStream.prototype.constructor = FileStream; exports.FileStream = FileStream; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ /// // // This class extends {@link BufferedTokenStream} with functionality to filter // token streams to tokens on a particular channel (tokens where // {@link Token//getChannel} returns a particular value). // //

    // This token stream provides access to all tokens by index or when calling // methods like {@link //getText}. The channel filtering is only used for code // accessing tokens via the lookahead methods {@link //LA}, {@link //LT}, and // {@link //LB}.

    // //

    // By default, tokens are placed on the default channel // ({@link Token//DEFAULT_CHANNEL}), but may be reassigned by using the // {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to // call {@link Lexer//setChannel}. //

    // //

    // Note: lexer rules which use the {@code ->skip} lexer command or call // {@link Lexer//skip} do not produce tokens at all, so input text matched by // such a rule will not be available as part of the token stream, regardless of // channel.

    /// var Token = __webpack_require__(6).Token; var BufferedTokenStream = __webpack_require__(47).BufferedTokenStream; function CommonTokenStream(lexer, channel) { BufferedTokenStream.call(this, lexer); this.channel = channel===undefined ? Token.DEFAULT_CHANNEL : channel; return this; } CommonTokenStream.prototype = Object.create(BufferedTokenStream.prototype); CommonTokenStream.prototype.constructor = CommonTokenStream; CommonTokenStream.prototype.adjustSeekIndex = function(i) { return this.nextTokenOnChannel(i, this.channel); }; CommonTokenStream.prototype.LB = function(k) { if (k===0 || this.index-k<0) { return null; } var i = this.index; var n = 1; // find k good tokens looking backwards while (n <= k) { // skip off-channel tokens i = this.previousTokenOnChannel(i - 1, this.channel); n += 1; } if (i < 0) { return null; } return this.tokens[i]; }; CommonTokenStream.prototype.LT = function(k) { this.lazyInit(); if (k === 0) { return null; } if (k < 0) { return this.LB(-k); } var i = this.index; var n = 1; // we know tokens[pos] is a good one // find k good tokens while (n < k) { // skip off-channel tokens, but make sure to not look past EOF if (this.sync(i + 1)) { i = this.nextTokenOnChannel(i + 1, this.channel); } n += 1; } return this.tokens[i]; }; // Count EOF just once./// CommonTokenStream.prototype.getNumberOfOnChannelTokens = function() { var n = 0; this.fill(); for (var i =0; i< this.tokens.length;i++) { var t = this.tokens[i]; if( t.channel===this.channel) { n += 1; } if( t.type===Token.EOF) { break; } } return n; }; exports.CommonTokenStream = CommonTokenStream; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { // /* 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. */ // This implementation of {@link TokenStream} loads tokens from a // {@link TokenSource} on-demand, and places the tokens in a buffer to provide // access to any previous token by index. // //

    // This token stream ignores the value of {@link Token//getChannel}. If your // parser requires the token stream filter tokens to only those on a particular // channel, such as {@link Token//DEFAULT_CHANNEL} or // {@link Token//HIDDEN_CHANNEL}, use a filtering token stream such a // {@link CommonTokenStream}.

    var Token = __webpack_require__(6).Token; var Lexer = __webpack_require__(22).Lexer; var Interval = __webpack_require__(10).Interval; // this is just to keep meaningful parameter types to Parser function TokenStream() { return this; } function BufferedTokenStream(tokenSource) { TokenStream.call(this); // The {@link TokenSource} from which tokens for this stream are fetched. this.tokenSource = tokenSource; // A collection of all tokens fetched from the token source. The list is // considered a complete view of the input once {@link //fetchedEOF} is set // to {@code true}. this.tokens = []; // The index into {@link //tokens} of the current token (next token to // {@link //consume}). {@link //tokens}{@code [}{@link //p}{@code ]} should // be // {@link //LT LT(1)}. // //

    This field is set to -1 when the stream is first constructed or when // {@link //setTokenSource} is called, indicating that the first token has // not yet been fetched from the token source. For additional information, // see the documentation of {@link IntStream} for a description of // Initializing Methods.

    this.index = -1; // Indicates whether the {@link Token//EOF} token has been fetched from // {@link //tokenSource} and added to {@link //tokens}. This field improves // performance for the following cases: // //
      //
    • {@link //consume}: The lookahead check in {@link //consume} to // prevent // consuming the EOF symbol is optimized by checking the values of // {@link //fetchedEOF} and {@link //p} instead of calling {@link // //LA}.
    • //
    • {@link //fetch}: The check to prevent adding multiple EOF symbols // into // {@link //tokens} is trivial with this field.
    • //
        this.fetchedEOF = false; return this; } BufferedTokenStream.prototype = Object.create(TokenStream.prototype); BufferedTokenStream.prototype.constructor = BufferedTokenStream; BufferedTokenStream.prototype.mark = function() { return 0; }; BufferedTokenStream.prototype.release = function(marker) { // no resources to release }; BufferedTokenStream.prototype.reset = function() { this.seek(0); }; BufferedTokenStream.prototype.seek = function(index) { this.lazyInit(); this.index = this.adjustSeekIndex(index); }; BufferedTokenStream.prototype.get = function(index) { this.lazyInit(); return this.tokens[index]; }; BufferedTokenStream.prototype.consume = function() { var skipEofCheck = false; if (this.index >= 0) { if (this.fetchedEOF) { // the last token in tokens is EOF. skip check if p indexes any // fetched token except the last. skipEofCheck = this.index < this.tokens.length - 1; } else { // no EOF token in tokens. skip check if p indexes a fetched token. skipEofCheck = this.index < this.tokens.length; } } else { // not yet initialized skipEofCheck = false; } if (!skipEofCheck && this.LA(1) === Token.EOF) { throw "cannot consume EOF"; } if (this.sync(this.index + 1)) { this.index = this.adjustSeekIndex(this.index + 1); } }; // Make sure index {@code i} in tokens has a token. // // @return {@code true} if a token is located at index {@code i}, otherwise // {@code false}. // @see //get(int i) // / BufferedTokenStream.prototype.sync = function(i) { var n = i - this.tokens.length + 1; // how many more elements we need? if (n > 0) { var fetched = this.fetch(n); return fetched >= n; } return true; }; // Add {@code n} elements to buffer. // // @return The actual number of elements added to the buffer. // / BufferedTokenStream.prototype.fetch = function(n) { if (this.fetchedEOF) { return 0; } for (var i = 0; i < n; i++) { var t = this.tokenSource.nextToken(); t.tokenIndex = this.tokens.length; this.tokens.push(t); if (t.type === Token.EOF) { this.fetchedEOF = true; return i + 1; } } return n; }; // Get all tokens from start..stop inclusively/// BufferedTokenStream.prototype.getTokens = function(start, stop, types) { if (types === undefined) { types = null; } if (start < 0 || stop < 0) { return null; } this.lazyInit(); var subset = []; if (stop >= this.tokens.length) { stop = this.tokens.length - 1; } for (var i = start; i < stop; i++) { var t = this.tokens[i]; if (t.type === Token.EOF) { break; } if (types === null || types.contains(t.type)) { subset.push(t); } } return subset; }; BufferedTokenStream.prototype.LA = function(i) { return this.LT(i).type; }; BufferedTokenStream.prototype.LB = function(k) { if (this.index - k < 0) { return null; } return this.tokens[this.index - k]; }; BufferedTokenStream.prototype.LT = function(k) { this.lazyInit(); if (k === 0) { return null; } if (k < 0) { return this.LB(-k); } var i = this.index + k - 1; this.sync(i); if (i >= this.tokens.length) { // return EOF token // EOF must be last token return this.tokens[this.tokens.length - 1]; } return this.tokens[i]; }; // Allowed derived classes to modify the behavior of operations which change // the current stream position by adjusting the target token index of a seek // operation. The default implementation simply returns {@code i}. If an // exception is thrown in this method, the current stream index should not be // changed. // //

        For example, {@link CommonTokenStream} overrides this method to ensure // that // the seek target is always an on-channel token.

        // // @param i The target token index. // @return The adjusted target token index. BufferedTokenStream.prototype.adjustSeekIndex = function(i) { return i; }; BufferedTokenStream.prototype.lazyInit = function() { if (this.index === -1) { this.setup(); } }; BufferedTokenStream.prototype.setup = function() { this.sync(0); this.index = this.adjustSeekIndex(0); }; // Reset this token stream by setting its token source./// BufferedTokenStream.prototype.setTokenSource = function(tokenSource) { this.tokenSource = tokenSource; this.tokens = []; this.index = -1; this.fetchedEOF = false; }; // Given a starting index, return the index of the next token on channel. // Return i if tokens[i] is on channel. Return -1 if there are no tokens // on channel between i and EOF. // / BufferedTokenStream.prototype.nextTokenOnChannel = function(i, channel) { this.sync(i); if (i >= this.tokens.length) { return -1; } var token = this.tokens[i]; while (token.channel !== this.channel) { if (token.type === Token.EOF) { return -1; } i += 1; this.sync(i); token = this.tokens[i]; } return i; }; // Given a starting index, return the index of the previous token on channel. // Return i if tokens[i] is on channel. Return -1 if there are no tokens // on channel between i and 0. BufferedTokenStream.prototype.previousTokenOnChannel = function(i, channel) { while (i >= 0 && this.tokens[i].channel !== channel) { i -= 1; } return i; }; // Collect all tokens on specified channel to the right of // the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or // EOF. If channel is -1, find any non default channel token. BufferedTokenStream.prototype.getHiddenTokensToRight = function(tokenIndex, channel) { if (channel === undefined) { channel = -1; } this.lazyInit(); if (tokenIndex < 0 || tokenIndex >= this.tokens.length) { throw "" + tokenIndex + " not in 0.." + this.tokens.length - 1; } var nextOnChannel = this.nextTokenOnChannel(tokenIndex + 1, Lexer.DEFAULT_TOKEN_CHANNEL); var from_ = tokenIndex + 1; // if none onchannel to right, nextOnChannel=-1 so set to = last token var to = nextOnChannel === -1 ? this.tokens.length - 1 : nextOnChannel; return this.filterForChannel(from_, to, channel); }; // Collect all tokens on specified channel to the left of // the current token up until we see a token on DEFAULT_TOKEN_CHANNEL. // If channel is -1, find any non default channel token. BufferedTokenStream.prototype.getHiddenTokensToLeft = function(tokenIndex, channel) { if (channel === undefined) { channel = -1; } this.lazyInit(); if (tokenIndex < 0 || tokenIndex >= this.tokens.length) { throw "" + tokenIndex + " not in 0.." + this.tokens.length - 1; } var prevOnChannel = this.previousTokenOnChannel(tokenIndex - 1, Lexer.DEFAULT_TOKEN_CHANNEL); if (prevOnChannel === tokenIndex - 1) { return null; } // if none on channel to left, prevOnChannel=-1 then from=0 var from_ = prevOnChannel + 1; var to = tokenIndex - 1; return this.filterForChannel(from_, to, channel); }; BufferedTokenStream.prototype.filterForChannel = function(left, right, channel) { var hidden = []; for (var i = left; i < right + 1; i++) { var t = this.tokens[i]; if (channel === -1) { if (t.channel !== Lexer.DEFAULT_TOKEN_CHANNEL) { hidden.push(t); } } else if (t.channel === channel) { hidden.push(t); } } if (hidden.length === 0) { return null; } return hidden; }; BufferedTokenStream.prototype.getSourceName = function() { return this.tokenSource.getSourceName(); }; // Get the text of all tokens in this buffer./// BufferedTokenStream.prototype.getText = function(interval) { this.lazyInit(); this.fill(); if (interval === undefined || interval === null) { interval = new Interval(0, this.tokens.length - 1); } var start = interval.start; if (start instanceof Token) { start = start.tokenIndex; } var stop = interval.stop; if (stop instanceof Token) { stop = stop.tokenIndex; } if (start === null || stop === null || start < 0 || stop < 0) { return ""; } if (stop >= this.tokens.length) { stop = this.tokens.length - 1; } var s = ""; for (var i = start; i < stop + 1; i++) { var t = this.tokens[i]; if (t.type === Token.EOF) { break; } s = s + t.text; } return s; }; // Get all tokens from lexer until EOF/// BufferedTokenStream.prototype.fill = function() { this.lazyInit(); while (this.fetch(1000) === 1000) { continue; } }; exports.BufferedTokenStream = BufferedTokenStream; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { /* 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. */ var Token = __webpack_require__(6).Token; var ParseTreeListener = __webpack_require__(14).ParseTreeListener; var Recognizer = __webpack_require__(23).Recognizer; var DefaultErrorStrategy = __webpack_require__(41).DefaultErrorStrategy; var ATNDeserializer = __webpack_require__(17).ATNDeserializer; var ATNDeserializationOptions = __webpack_require__(19).ATNDeserializationOptions; var TerminalNode = __webpack_require__(14).TerminalNode; var ErrorNode = __webpack_require__(14).ErrorNode; function TraceListener(parser) { ParseTreeListener.call(this); this.parser = parser; return this; } TraceListener.prototype = Object.create(ParseTreeListener.prototype); TraceListener.prototype.constructor = TraceListener; TraceListener.prototype.enterEveryRule = function(ctx) { console.log("enter " + this.parser.ruleNames[ctx.ruleIndex] + ", LT(1)=" + this.parser._input.LT(1).text); }; TraceListener.prototype.visitTerminal = function( node) { console.log("consume " + node.symbol + " rule " + this.parser.ruleNames[this.parser._ctx.ruleIndex]); }; TraceListener.prototype.exitEveryRule = function(ctx) { console.log("exit " + this.parser.ruleNames[ctx.ruleIndex] + ", LT(1)=" + this.parser._input.LT(1).text); }; // this is all the parsing support code essentially; most of it is error // recovery stuff.// function Parser(input) { Recognizer.call(this); // The input stream. this._input = null; // The error handling strategy for the parser. The default value is a new // instance of {@link DefaultErrorStrategy}. this._errHandler = new DefaultErrorStrategy(); this._precedenceStack = []; this._precedenceStack.push(0); // The {@link ParserRuleContext} object for the currently executing rule. // this is always non-null during the parsing process. this._ctx = null; // Specifies whether or not the parser should construct a parse tree during // the parsing process. The default value is {@code true}. this.buildParseTrees = true; // When {@link //setTrace}{@code (true)} is called, a reference to the // {@link TraceListener} is stored here so it can be easily removed in a // later call to {@link //setTrace}{@code (false)}. The listener itself is // implemented as a parser listener so this field is not directly used by // other parser methods. this._tracer = null; // The list of {@link ParseTreeListener} listeners registered to receive // events during the parse. this._parseListeners = null; // The number of syntax errors reported during parsing. this value is // incremented each time {@link //notifyErrorListeners} is called. this._syntaxErrors = 0; this.setInputStream(input); return this; } Parser.prototype = Object.create(Recognizer.prototype); Parser.prototype.contructor = Parser; // this field maps from the serialized ATN string to the deserialized {@link // ATN} with // bypass alternatives. // // @see ATNDeserializationOptions//isGenerateRuleBypassTransitions() // Parser.bypassAltsAtnCache = {}; // reset the parser's state// Parser.prototype.reset = function() { if (this._input !== null) { this._input.seek(0); } this._errHandler.reset(this); this._ctx = null; this._syntaxErrors = 0; this.setTrace(false); this._precedenceStack = []; this._precedenceStack.push(0); if (this._interp !== null) { this._interp.reset(); } }; // Match current input symbol against {@code ttype}. If the symbol type // matches, {@link ANTLRErrorStrategy//reportMatch} and {@link //consume} are // called to complete the match process. // //

        If the symbol type does not match, // {@link ANTLRErrorStrategy//recoverInline} is called on the current error // strategy to attempt recovery. If {@link //getBuildParseTree} is // {@code true} and the token index of the symbol returned by // {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to // the parse tree by calling {@link ParserRuleContext//addErrorNode}.

        // // @param ttype the token type to match // @return the matched symbol // @throws RecognitionException if the current input symbol did not match // {@code ttype} and the error strategy could not recover from the // mismatched symbol Parser.prototype.match = function(ttype) { var t = this.getCurrentToken(); if (t.type === ttype) { this._errHandler.reportMatch(this); this.consume(); } else { t = this._errHandler.recoverInline(this); if (this.buildParseTrees && t.tokenIndex === -1) { // we must have conjured up a new token during single token // insertion // if it's not the current symbol this._ctx.addErrorNode(t); } } return t; }; // Match current input symbol as a wildcard. If the symbol type matches // (i.e. has a value greater than 0), {@link ANTLRErrorStrategy//reportMatch} // and {@link //consume} are called to complete the match process. // //

        If the symbol type does not match, // {@link ANTLRErrorStrategy//recoverInline} is called on the current error // strategy to attempt recovery. If {@link //getBuildParseTree} is // {@code true} and the token index of the symbol returned by // {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to // the parse tree by calling {@link ParserRuleContext//addErrorNode}.

        // // @return the matched symbol // @throws RecognitionException if the current input symbol did not match // a wildcard and the error strategy could not recover from the mismatched // symbol Parser.prototype.matchWildcard = function() { var t = this.getCurrentToken(); if (t.type > 0) { this._errHandler.reportMatch(this); this.consume(); } else { t = this._errHandler.recoverInline(this); if (this._buildParseTrees && t.tokenIndex === -1) { // we must have conjured up a new token during single token // insertion // if it's not the current symbol this._ctx.addErrorNode(t); } } return t; }; Parser.prototype.getParseListeners = function() { return this._parseListeners || []; }; // Registers {@code listener} to receive events during the parsing process. // //

        To support output-preserving grammar transformations (including but not // limited to left-recursion removal, automated left-factoring, and // optimized code generation), calls to listener methods during the parse // may differ substantially from calls made by // {@link ParseTreeWalker//DEFAULT} used after the parse is complete. In // particular, rule entry and exit events may occur in a different order // during the parse than after the parser. In addition, calls to certain // rule entry methods may be omitted.

        // //

        With the following specific exceptions, calls to listener events are // deterministic, i.e. for identical input the calls to listener // methods will be the same.

        // //
          //
        • Alterations to the grammar used to generate code may change the // behavior of the listener calls.
        • //
        • Alterations to the command line options passed to ANTLR 4 when // generating the parser may change the behavior of the listener calls.
        • //
        • Changing the version of the ANTLR Tool used to generate the parser // may change the behavior of the listener calls.
        • //
        // // @param listener the listener to add // // @throws NullPointerException if {@code} listener is {@code null} // Parser.prototype.addParseListener = function(listener) { if (listener === null) { throw "listener"; } if (this._parseListeners === null) { this._parseListeners = []; } this._parseListeners.push(listener); }; // // Remove {@code listener} from the list of parse listeners. // //

        If {@code listener} is {@code null} or has not been added as a parse // listener, this method does nothing.

        // @param listener the listener to remove // Parser.prototype.removeParseListener = function(listener) { if (this._parseListeners !== null) { var idx = this._parseListeners.indexOf(listener); if (idx >= 0) { this._parseListeners.splice(idx, 1); } if (this._parseListeners.length === 0) { this._parseListeners = null; } } }; // Remove all parse listeners. Parser.prototype.removeParseListeners = function() { this._parseListeners = null; }; // Notify any parse listeners of an enter rule event. Parser.prototype.triggerEnterRuleEvent = function() { if (this._parseListeners !== null) { var ctx = this._ctx; this._parseListeners.map(function(listener) { listener.enterEveryRule(ctx); ctx.enterRule(listener); }); } }; // // Notify any parse listeners of an exit rule event. // // @see //addParseListener // Parser.prototype.triggerExitRuleEvent = function() { if (this._parseListeners !== null) { // reverse order walk of listeners var ctx = this._ctx; this._parseListeners.slice(0).reverse().map(function(listener) { ctx.exitRule(listener); listener.exitEveryRule(ctx); }); } }; Parser.prototype.getTokenFactory = function() { return this._input.tokenSource._factory; }; // Tell our token source and error strategy about a new way to create tokens.// Parser.prototype.setTokenFactory = function(factory) { this._input.tokenSource._factory = factory; }; // The ATN with bypass alternatives is expensive to create so we create it // lazily. // // @throws UnsupportedOperationException if the current parser does not // implement the {@link //getSerializedATN()} method. // Parser.prototype.getATNWithBypassAlts = function() { var serializedAtn = this.getSerializedATN(); if (serializedAtn === null) { throw "The current parser does not support an ATN with bypass alternatives."; } var result = this.bypassAltsAtnCache[serializedAtn]; if (result === null) { var deserializationOptions = new ATNDeserializationOptions(); deserializationOptions.generateRuleBypassTransitions = true; result = new ATNDeserializer(deserializationOptions) .deserialize(serializedAtn); this.bypassAltsAtnCache[serializedAtn] = result; } return result; }; // The preferred method of getting a tree pattern. For example, here's a // sample use: // //
        	// ParseTree t = parser.expr();
        	// ParseTreePattern p = parser.compileParseTreePattern("<ID>+0",
        	// MyParser.RULE_expr);
        	// ParseTreeMatch m = p.match(t);
        	// String id = m.get("ID");
        	// 
        var Lexer = __webpack_require__(22).Lexer; Parser.prototype.compileParseTreePattern = function(pattern, patternRuleIndex, lexer) { lexer = lexer || null; if (lexer === null) { if (this.getTokenStream() !== null) { var tokenSource = this.getTokenStream().tokenSource; if (tokenSource instanceof Lexer) { lexer = tokenSource; } } } if (lexer === null) { throw "Parser can't discover a lexer to use"; } var m = new ParseTreePatternMatcher(lexer, this); return m.compile(pattern, patternRuleIndex); }; Parser.prototype.getInputStream = function() { return this.getTokenStream(); }; Parser.prototype.setInputStream = function(input) { this.setTokenStream(input); }; Parser.prototype.getTokenStream = function() { return this._input; }; // Set the token stream and reset the parser.// Parser.prototype.setTokenStream = function(input) { this._input = null; this.reset(); this._input = input; }; // Match needs to return the current input symbol, which gets put // into the label for the associated token ref; e.g., x=ID. // Parser.prototype.getCurrentToken = function() { return this._input.LT(1); }; Parser.prototype.notifyErrorListeners = function(msg, offendingToken, err) { offendingToken = offendingToken || null; err = err || null; if (offendingToken === null) { offendingToken = this.getCurrentToken(); } this._syntaxErrors += 1; var line = offendingToken.line; var column = offendingToken.column; var listener = this.getErrorListenerDispatch(); listener.syntaxError(this, offendingToken, line, column, msg, err); }; // // Consume and return the {@linkplain //getCurrentToken current symbol}. // //

        E.g., given the following input with {@code A} being the current // lookahead symbol, this function moves the cursor to {@code B} and returns // {@code A}.

        // //
        	// A B
        	// ^
        	// 
        // // If the parser is not in error recovery mode, the consumed symbol is added // to the parse tree using {@link ParserRuleContext//addChild(Token)}, and // {@link ParseTreeListener//visitTerminal} is called on any parse listeners. // If the parser is in error recovery mode, the consumed symbol is // added to the parse tree using // {@link ParserRuleContext//addErrorNode(Token)}, and // {@link ParseTreeListener//visitErrorNode} is called on any parse // listeners. // Parser.prototype.consume = function() { var o = this.getCurrentToken(); if (o.type !== Token.EOF) { this.getInputStream().consume(); } var hasListener = this._parseListeners !== null && this._parseListeners.length > 0; if (this.buildParseTrees || hasListener) { var node; if (this._errHandler.inErrorRecoveryMode(this)) { node = this._ctx.addErrorNode(o); } else { node = this._ctx.addTokenNode(o); } node.invokingState = this.state; if (hasListener) { this._parseListeners.map(function(listener) { if (node instanceof ErrorNode || (node.isErrorNode !== undefined && node.isErrorNode())) { listener.visitErrorNode(node); } else if (node instanceof TerminalNode) { listener.visitTerminal(node); } }); } } return o; }; Parser.prototype.addContextToParseTree = function() { // add current context to parent if we have a parent if (this._ctx.parentCtx !== null) { this._ctx.parentCtx.addChild(this._ctx); } }; // Always called by generated parsers upon entry to a rule. Access field // {@link //_ctx} get the current context. Parser.prototype.enterRule = function(localctx, state, ruleIndex) { this.state = state; this._ctx = localctx; this._ctx.start = this._input.LT(1); if (this.buildParseTrees) { this.addContextToParseTree(); } if (this._parseListeners !== null) { this.triggerEnterRuleEvent(); } }; Parser.prototype.exitRule = function() { this._ctx.stop = this._input.LT(-1); // trigger event on _ctx, before it reverts to parent if (this._parseListeners !== null) { this.triggerExitRuleEvent(); } this.state = this._ctx.invokingState; this._ctx = this._ctx.parentCtx; }; Parser.prototype.enterOuterAlt = function(localctx, altNum) { localctx.setAltNumber(altNum); // if we have new localctx, make sure we replace existing ctx // that is previous child of parse tree if (this.buildParseTrees && this._ctx !== localctx) { if (this._ctx.parentCtx !== null) { this._ctx.parentCtx.removeLastChild(); this._ctx.parentCtx.addChild(localctx); } } this._ctx = localctx; }; // Get the precedence level for the top-most precedence rule. // // @return The precedence level for the top-most precedence rule, or -1 if // the parser context is not nested within a precedence rule. Parser.prototype.getPrecedence = function() { if (this._precedenceStack.length === 0) { return -1; } else { return this._precedenceStack[this._precedenceStack.length-1]; } }; Parser.prototype.enterRecursionRule = function(localctx, state, ruleIndex, precedence) { this.state = state; this._precedenceStack.push(precedence); this._ctx = localctx; this._ctx.start = this._input.LT(1); if (this._parseListeners !== null) { this.triggerEnterRuleEvent(); // simulates rule entry for // left-recursive rules } }; // // Like {@link //enterRule} but for recursive rules. Parser.prototype.pushNewRecursionContext = function(localctx, state, ruleIndex) { var previous = this._ctx; previous.parentCtx = localctx; previous.invokingState = state; previous.stop = this._input.LT(-1); this._ctx = localctx; this._ctx.start = previous.start; if (this.buildParseTrees) { this._ctx.addChild(previous); } if (this._parseListeners !== null) { this.triggerEnterRuleEvent(); // simulates rule entry for // left-recursive rules } }; Parser.prototype.unrollRecursionContexts = function(parentCtx) { this._precedenceStack.pop(); this._ctx.stop = this._input.LT(-1); var retCtx = this._ctx; // save current ctx (return value) // unroll so _ctx is as it was before call to recursive method if (this._parseListeners !== null) { while (this._ctx !== parentCtx) { this.triggerExitRuleEvent(); this._ctx = this._ctx.parentCtx; } } else { this._ctx = parentCtx; } // hook into tree retCtx.parentCtx = parentCtx; if (this.buildParseTrees && parentCtx !== null) { // add return ctx into invoking rule's tree parentCtx.addChild(retCtx); } }; Parser.prototype.getInvokingContext = function(ruleIndex) { var ctx = this._ctx; while (ctx !== null) { if (ctx.ruleIndex === ruleIndex) { return ctx; } ctx = ctx.parentCtx; } return null; }; Parser.prototype.precpred = function(localctx, precedence) { return precedence >= this._precedenceStack[this._precedenceStack.length-1]; }; Parser.prototype.inContext = function(context) { // TODO: useful in parser? return false; }; // // Checks whether or not {@code symbol} can follow the current state in the // ATN. The behavior of this method is equivalent to the following, but is // implemented such that the complete context-sensitive follow set does not // need to be explicitly constructed. // //
        	// return getExpectedTokens().contains(symbol);
        	// 
        // // @param symbol the symbol type to check // @return {@code true} if {@code symbol} can follow the current state in // the ATN, otherwise {@code false}. Parser.prototype.isExpectedToken = function(symbol) { var atn = this._interp.atn; var ctx = this._ctx; var s = atn.states[this.state]; var following = atn.nextTokens(s); if (following.contains(symbol)) { return true; } if (!following.contains(Token.EPSILON)) { return false; } while (ctx !== null && ctx.invokingState >= 0 && following.contains(Token.EPSILON)) { var invokingState = atn.states[ctx.invokingState]; var rt = invokingState.transitions[0]; following = atn.nextTokens(rt.followState); if (following.contains(symbol)) { return true; } ctx = ctx.parentCtx; } if (following.contains(Token.EPSILON) && symbol === Token.EOF) { return true; } else { return false; } }; // Computes the set of input symbols which could follow the current parser // state and context, as given by {@link //getState} and {@link //getContext}, // respectively. // // @see ATN//getExpectedTokens(int, RuleContext) // Parser.prototype.getExpectedTokens = function() { return this._interp.atn.getExpectedTokens(this.state, this._ctx); }; Parser.prototype.getExpectedTokensWithinCurrentRule = function() { var atn = this._interp.atn; var s = atn.states[this.state]; return atn.nextTokens(s); }; // Get a rule's index (i.e., {@code RULE_ruleName} field) or -1 if not found.// Parser.prototype.getRuleIndex = function(ruleName) { var ruleIndex = this.getRuleIndexMap()[ruleName]; if (ruleIndex !== null) { return ruleIndex; } else { return -1; } }; // Return List<String> of the rule names in your parser instance // leading up to a call to the current rule. You could override if // you want more details such as the file/line info of where // in the ATN a rule is invoked. // // this is very useful for error messages. // Parser.prototype.getRuleInvocationStack = function(p) { p = p || null; if (p === null) { p = this._ctx; } var stack = []; while (p !== null) { // compute what follows who invoked us var ruleIndex = p.ruleIndex; if (ruleIndex < 0) { stack.push("n/a"); } else { stack.push(this.ruleNames[ruleIndex]); } p = p.parentCtx; } return stack; }; // For debugging and other purposes.// Parser.prototype.getDFAStrings = function() { return this._interp.decisionToDFA.toString(); }; // For debugging and other purposes.// Parser.prototype.dumpDFA = function() { var seenOne = false; for (var i = 0; i < this._interp.decisionToDFA.length; i++) { var dfa = this._interp.decisionToDFA[i]; if (dfa.states.length > 0) { if (seenOne) { console.log(); } this.printer.println("Decision " + dfa.decision + ":"); this.printer.print(dfa.toString(this.literalNames, this.symbolicNames)); seenOne = true; } } }; /* " printer = function() {\r\n" + " this.println = function(s) { document.getElementById('output') += s + '\\n'; }\r\n" + " this.print = function(s) { document.getElementById('output') += s; }\r\n" + " };\r\n" + */ Parser.prototype.getSourceName = function() { return this._input.sourceName; }; // During a parse is sometimes useful to listen in on the rule entry and exit // events as well as token matches. this is for quick and dirty debugging. // Parser.prototype.setTrace = function(trace) { if (!trace) { this.removeParseListener(this._tracer); this._tracer = null; } else { if (this._tracer !== null) { this.removeParseListener(this._tracer); } this._tracer = new TraceListener(this); this.addParseListener(this._tracer); } }; exports.Parser = Parser; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { exports.utils = __webpack_require__(50); exports.literal = __webpack_require__(459); exports.parser = __webpack_require__(499); exports.problem = __webpack_require__(592); exports.type = __webpack_require__(389); exports.argument = __webpack_require__(119); exports.constraint = __webpack_require__(130); exports.instance = __webpack_require__(160); exports.grammar = __webpack_require__(484); exports.declaration = __webpack_require__(170); exports.expression = __webpack_require__(331); exports.statement = __webpack_require__(428); exports.java = __webpack_require__(525); exports.csharp = __webpack_require__(542); exports.runtime = __webpack_require__(594); exports.error = __webpack_require__(601); exports.value = __webpack_require__(494); exports.memstore = __webpack_require__(602); exports.store = __webpack_require__(603); exports.intrinsic = __webpack_require__(187); exports.internet = __webpack_require__(604); exports.io = __webpack_require__(609); exports.reader = __webpack_require__(612); /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { exports.equalObjects = __webpack_require__(51).equalObjects; exports.equalArrays = __webpack_require__(51).equalArrays; exports.arrayContains = __webpack_require__(51).arrayContains; exports.ObjectList = __webpack_require__(52).ObjectList; exports.ExpressionList = __webpack_require__(53).ExpressionList; exports.CodeWriter = __webpack_require__(54).CodeWriter; exports.TypeUtils = __webpack_require__(307).TypeUtils; /***/ }), /* 51 */ /***/ (function(module, exports) { function equalObjects(o1, o2) { if(Object.is(o1, o2)) return true; else return o1.equals ? o1.equals(o2) : false; } function equalArrays(o1, o2) { o1 = o1 || null; o2 = o2 || null; if(o1===o2) { return true; } if(o1===null || o2===null) { return false; } if(o1.length !== o2.length) { return false; } for(var i=0;i>> 6); view[idx++] = 0x80 /* 128 */ + (c & 0x3f /* 63 */); } else if (c < 0x10000 /* 65536 */) { /* three bytes */ view[idx++] = 0xe0 /* 224 */ + (c >>> 12); view[idx++] = 0x80 /* 128 */ + ((c >>> 6) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + (c & 0x3f /* 63 */); } else if (c < 0x200000 /* 2097152 */) { /* four bytes */ view[idx++] = 0xf0 /* 240 */ + (c >>> 18); view[idx++] = 0x80 /* 128 */ + ((c >>> 12) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 6) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + (c & 0x3f /* 63 */); } else if (c < 0x4000000 /* 67108864 */) { /* five bytes */ view[idx++] = 0xf8 /* 248 */ + (c >>> 24); view[idx++] = 0x80 /* 128 */ + ((c >>> 18) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 12) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 6) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + (c & 0x3f /* 63 */); } else /* if (c <= 0x7fffffff) */ { /* 2147483647 */ /* six bytes */ view[idx++] = 0xfc /* 252 */ + /* (c >>> 30) may be not safe in ECMAScript! So...: */ (c / 1073741824); view[idx++] = 0x80 /* 128 */ + ((c >>> 24) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 18) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 12) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + ((c >>> 6) & 0x3f /* 63 */); view[idx++] = 0x80 /* 128 */ + (c & 0x3f /* 63 */); } }); return buffer; } function utf8BufferToString(buffer) { if(buffer instanceof ArrayBuffer) buffer = new Uint8Array(buffer); var chars = []; var idx = 0; while(idx 251 && byte < 254 && idx + 5 < buffer.length) { /* (byte - 252 << 30) may be not safe in ECMAScript! So...: */ /* six bytes */ code = (byte - 252) * 1073741824 + (buffer[idx + 1] - 128 << 24) + (buffer[idx + 2] - 128 << 18) + (buffer[idx + 3] - 128 << 12) + (buffer[idx + 4] - 128 << 6) + buffer[idx + 5] - 128; idx += 6; } else if (byte > 247 && byte < 252 && idx + 4 < buffer.length) { /* five bytes */ code = (byte - 248 << 24) + (buffer[idx + 1] - 128 << 18) + (buffer[idx + 2] - 128 << 12) + (buffer[idx + 3] - 128 << 6) + buffer[idx + 4] - 128; idx += 5; } else if (byte > 239 && byte < 248 && idx + 3 < buffer.length) { /* four bytes */ code = (byte - 240 << 18) + (buffer[idx + 1] - 128 << 12) + (buffer[idx + 2] - 128 << 6) + buffer[idx + 3] - 128; idx += 4; } else if (byte > 223 && byte < 240 && idx + 2 < buffer.length) { /* three bytes */ code = (byte - 224 << 12) + (buffer[idx + 1] - 128 << 6) + buffer[idx + 2] - 128; idx += 3; } else if (byte > 191 && byte < 224 && idx + 1 < buffer.length) { /* two bytes */ code = (byte - 192 << 6) + buffer[idx + 1] - 128; idx += 2; } else { /* one byte */ code = byte; idx += 1; } chars.push(String.fromCharCode(code)); } return chars.join(""); }; function multiplyArray(items, count) { var result = []; while(--count>=0) { result = result.concat(items); } return result; } function decimalToString(d) { // mimic 0.0###### var s = d.toString(); var i = s.indexOf('.'); if(i>=0) { // fix IEEE issue i = s.indexOf('000000', i); if( i < 0) return s; else return s.substr(0, i); } else return s + ".0"; } function isABoolean(o) { return typeof(o) === "boolean"; } function isAnInteger(o) { return typeof(o) === "number" && Number.isInteger(o); } function isADecimal(o) { return typeof(o) === "number" && !Number.isInteger(o); } function isAText(o) { return typeof(o) === 'string' || o instanceof String; } function isACharacter(o) { return isAText(o) && o.length===1; } function isCharacterUpperCase(char) { return !!/[A-Z]/.exec(char[0]); } function compareValues(value1, value2) { if(value1==null && value2==null) { return 0; } else if(value1==null) { return -1; } else if(value2==null) { return 1; } else if(value1.compareTo) { return value1.compareTo(value2); } else if(value2.compareTo) { return -value2.compareTo(value1); } else { var s1 = value1.toString(); var s2 = value2.toString(); return s1 > s2 ? 1 : s1 == s2 ? 0 : -1; } }; exports.multiplyArray = multiplyArray; exports.equalObjects = equalObjects; exports.equalArrays = equalArrays; exports.arrayContains = arrayContains; exports.removeAccents = removeAccents; exports.getUtf8StringLength = getUtf8StringLength; exports.getUtf8CharLength = getUtf8CharLength; exports.stringToUtf8Buffer = stringToUtf8Buffer; exports.utf8BufferToString = utf8BufferToString; exports.decimalToString = decimalToString; exports.isABoolean = isABoolean; exports.isAnInteger = isAnInteger; exports.isADecimal = isADecimal; exports.isAText = isAText; exports.isACharacter = isACharacter; exports.isCharacterUpperCase = isCharacterUpperCase; exports.compareValues = compareValues; /***/ }), /* 52 */ /***/ (function(module, exports) { function ObjectList(items, item) { Array.call(this); items = items || null; if(items!==null) { this.addAll(items); } item = item || null; if(item!==null) { this.add(item); } return this; } ObjectList.prototype = Object.create(Array.prototype); ObjectList.prototype.constructor = ObjectList; ObjectList.prototype.addAll = function(items) { this.push.apply(this, items); }; ObjectList.prototype.add = function(item) { if(item) this.push(item); }; ObjectList.prototype.insert = function(before, item) { this.splice(0, 0, item); }; ObjectList.prototype.remove = function(index) { this.splice(index, 1); }; ObjectList.prototype.toString = function() { return this.join(", "); }; exports.ObjectList = ObjectList; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; function ExpressionList(items, item) { ObjectList.call(this, items, item); return this; } ExpressionList.prototype = Object.create(ObjectList.prototype); ExpressionList.prototype.constructor = ExpressionList; ExpressionList.prototype.toDialect = function(writer) { if (this.length > 0) { for (var i = 0; i < this.length; i++) { this[i].toDialect(writer); writer.append(", "); } writer.trimLast(2); } }; ExpressionList.prototype.declare = function(transpiler) { this.forEach(function(item){ item.declare(transpiler); }); }; ExpressionList.prototype.transpile = function(transpiler) { if (this.length > 0) { for (var i = 0; i < this.length; i++) { this[i].transpile(transpiler); transpiler.append(", "); } transpiler.trimLast(2); } }; exports.ExpressionList = ExpressionList; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { var Context = __webpack_require__(55).Context; function Indenter() { this.value = ""; this.indents = ""; this.isStartOfLine = true; return this; } Indenter.prototype.appendTabsIfRequired = function(s) { if(this.isStartOfLine) { this.value += this.indents; } this.isStartOfLine = s.charAt(s.length-1)=='\n'; }; Indenter.prototype.append = function(s) { this.value += s; }; Indenter.prototype.trimLast = function(count) { this.value = this.value.substring(0, this.value.length - count); }; Indenter.prototype.indent = function() { this.indents += '\t'; }; Indenter.prototype.dedent = function() { if(this.indents.length==0) { throw new Error("Illegal dedent!"); } this.indents = this.indents.slice(1); }; function CodeWriter(dialect, context, indenter) { this.dialect = dialect; this.context = context || Context.newGlobalContext(); this.indenter = indenter || new Indenter(); return this; } CodeWriter.prototype.isGlobalContext = function() { return this.context.isGlobalContext(); }; CodeWriter.prototype.appendRaw = function(s) { this.indenter.append(s); return this; }; CodeWriter.prototype.append = function(s) { if(typeof(s)!==typeof("")) console.error(s); this.indenter.appendTabsIfRequired(s); this.indenter.append(s); return this; }; CodeWriter.prototype.trimLast = function(count) { this.indenter.trimLast(count); return this; }; CodeWriter.prototype.indent = function() { this.indenter.indent(); return this; }; CodeWriter.prototype.dedent = function() { this.indenter.dedent(); return this; }; CodeWriter.prototype.newLine = function() { this.append('\n'); return this; }; CodeWriter.prototype.toString = function() { return this.indenter.value; }; CodeWriter.prototype.newLocalWriter = function() { return new CodeWriter(this.dialect, this.context.newLocalContext(), this.indenter); }; CodeWriter.prototype.newChildWriter = function() { return new CodeWriter(this.dialect, this.context.newChildContext(), this.indenter); }; CodeWriter.prototype.newInstanceWriter = function(type) { return new CodeWriter(this.dialect, this.context.newInstanceContext(null, type), this.indenter); }; CodeWriter.prototype.newDocumentWriter = function() { return new CodeWriter(this.dialect, this.context.newDocumentContext(null, false), this.indenter); }; CodeWriter.prototype.newMemberWriter = function() { return new CodeWriter (this.dialect, this.context.newChildContext(), this.indenter); }; CodeWriter.prototype.toDialect = function(o) { this.dialect.toDialect(this, o); }; exports.CodeWriter = CodeWriter /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { var EnumeratedCategoryDeclaration = __webpack_require__(56).EnumeratedCategoryDeclaration; var EnumeratedNativeDeclaration = __webpack_require__(173).EnumeratedNativeDeclaration; var ConcreteCategoryDeclaration = __webpack_require__(57).ConcreteCategoryDeclaration; var ConcreteWidgetDeclaration = __webpack_require__(171).ConcreteWidgetDeclaration; var NativeWidgetDeclaration = __webpack_require__(324).NativeWidgetDeclaration; var BaseMethodDeclaration = __webpack_require__(146).BaseMethodDeclaration; var CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; var AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; var MethodExpression = __webpack_require__(355).MethodExpression; var ConcreteInstance = __webpack_require__(498).ConcreteInstance; var ExpressionValue = __webpack_require__(164).ExpressionValue; var ClosureValue = __webpack_require__(154).ClosureValue; var ProblemListener = __webpack_require__(157).ProblemListener; var MethodType = __webpack_require__(101).MethodType; var DecimalType = __webpack_require__(82).DecimalType; var DecimalValue = __webpack_require__(81).DecimalValue; var IntegerValue = __webpack_require__(80).IntegerValue; var Variable = __webpack_require__(91).Variable; var LinkedValue = __webpack_require__(337).LinkedValue; function Context() { this.globals = null; this.calling = null; this.parent = null; // for inner methods this.debugger = null; this.declarations = {}; this.tests = {}; this.instances = {}; this.values = {}; this.nativeBindings = {}; this.problemListener = new ProblemListener(); return this; } Context.newGlobalContext = function() { var context = new Context(); context.globals = context; context.calling = null; context.parent = null; context.debugger = null; return context; }; Context.prototype.isGlobalContext = function() { return this===this.globals; }; Context.prototype.getCallingContext = function() { return this.calling; }; Context.prototype.getParentMostContext = function() { if(this.parent === null) { return this; } else { return this.parent.getParentMostContext(); } }; Context.prototype.getClosestInstanceContext = function() { if(this.parent === null) { return null; } else if(this.parent instanceof InstanceContext) { return this.parent; } else { return this.parent.getClosestInstanceContext(); } }; Context.prototype.getParentContext = function() { return this.parent; } Context.prototype.setParentContext = function(parent) { this.parent = parent; } Context.prototype.newResourceContext = function() { var context = new ResourceContext(); context.globals = this.globals; context.calling = this.calling; context.parent = this; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newLocalContext = function() { var context = new Context(); context.globals = this.globals; context.calling = this; context.parent = null; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newDocumentContext = function(doc, isChild) { var context = new DocumentContext(doc); context.globals = this.globals; context.calling = isChild ? this.calling : this; context.parent = isChild ? this : null; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newBuiltInContext = function(value) { var context = new BuiltInContext(value); context.globals = this.globals; context.calling = this; context.parent = null; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newInstanceContext = function(instance, type, isChild) { var context = new InstanceContext(instance, type); context.globals = this.globals; context.calling = isChild ? this.calling : this; context.parent = isChild ? this : null; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newChildContext = function() { var context = new Context(); context.globals = this.globals; context.calling = this.calling; context.parent = this; context.debugger = this.debugger; context.problemListener = this.problemListener; return context; }; Context.prototype.newMemberContext = function(type) { return this.newInstanceContext(null, type, false); }; Context.prototype.clone = function() { var context = new Context(); context.globals = context; context.calling = null; context.parent = null; context.debugger = null; // copy from context.declarations = Object.create(this.declarations); context.tests = Object.create(this.tests); context.instances = Object.create(this.instances); context.values = Object.create(this.values); context.nativeBindings = Object.create(this.nativeBindings); return context; }; Context.prototype.getCatalog = function() { if (this != this.globals) return this.globals.getCatalog(); else return this.getLocalCatalog(); }; Context.prototype.getLocalCatalog = function() { var catalog = { attributes : [], methods : [], categories : [], enumerations : [], tests : [], widgets: []}; for(var name in this.declarations) { var decl = this.declarations[name]; if(decl instanceof AttributeDeclaration) catalog.attributes.push(name); else if(decl instanceof EnumeratedCategoryDeclaration || decl instanceof EnumeratedNativeDeclaration) { var info = {}; info.name = decl.name; info.symbols = decl.symbols.map(function (s) { return s.name; }); catalog.enumerations.push(info); } else if(decl instanceof CategoryDeclaration) { if(decl.isWidget(this)) catalog.widgets.push(name); else catalog.categories.push(name); } else if(decl instanceof MethodDeclarationMap) { var method = {}; method.name = decl.name; method.protos = []; for (var proto in decl.protos) { var main = decl.protos[proto].isEligibleAsMain(); method.protos.push({proto: proto, main: main}); } catalog.methods.push(method); } } for(var name in this.tests) catalog.tests.push(name); // minimize for UI optimization if(catalog.attributes.length <= 0) delete catalog.attributes; if(catalog.categories.length <= 0) delete catalog.categories; if(catalog.widgets.length <= 0) delete catalog.widgets; if(catalog.enumerations.length <= 0) delete catalog.enumerations; if(catalog.methods.length <= 0) delete catalog.methods; if(catalog.tests.length <= 0) delete catalog.tests; return catalog; }; Context.prototype.findAttribute = function(name) { if(this===this.globals) return this.declarations[name] || (this.parent ? this.parent.findAttribute(name) : null); else return this.globals.findAttribute(name); }; Context.prototype.getAllAttributes = function() { if(this===this.globals) { var list = []; for(var name in this.declarations) { if(this.declarations[name] instanceof AttributeDeclaration) list.push(this.declarations[name]); } if(this.parent) list = list.concat(this.parent.getAllAttributes()); return list; } else return this.globals.getAllAttributes(); }; Context.prototype.getRegistered = function(name) { // resolve upwards, since local names override global ones var actual = this.declarations[name] || null; if(actual!==null) { return actual; } actual = this.instances[name] || null; if(actual!==null) { return actual; } else if(this.parent!==null) { return this.parent.getRegistered(name); } else if(this.globals!==this) { return this.globals.getRegistered(name); } else { return null; } }; Context.prototype.getRegisteredDeclaration = function(name) { // resolve upwards, since local names override global ones var actual = this.declarations[name] || null; if(actual!==null) { return actual; } else if(this.parent!==null) { return this.parent.getRegisteredDeclaration(name); } else if(this.globals!==this) { return this.globals.getRegisteredDeclaration(name); } else { return null; } }; Context.prototype.getLocalDeclaration = function(name) { var actual = this.declarations[name] || null; if (actual !== null) { return actual; } else if (this.parent !== null) { return this.parent.getLocalDeclaration(name); } else { return null; } }; Context.prototype.registerDeclaration = function(declaration) { if(this.checkDuplicate(declaration)) this.declarations[declaration.name] = declaration; }; Context.prototype.checkDuplicate = function(declaration) { var actual = this.getRegistered(declaration.name) || null; if (actual !== null && actual !== declaration) this.problemListener.reportDuplicate(declaration.name, declaration); return actual === null; }; Context.prototype.unregisterTestDeclaration = function(declaration) { delete this.tests[declaration.name]; }; Context.prototype.unregisterMethodDeclaration = function(declaration, proto) { var map = this.declarations[declaration.name]; if(map && map.unregister(proto)) delete this.declarations[declaration.name]; }; Context.prototype.unregisterDeclaration = function(declaration) { delete this.declarations[declaration.name]; }; Context.prototype.registerMethodDeclaration = function(declaration) { var actual = this.checkDuplicateMethod(declaration); if (actual === null) { actual = new MethodDeclarationMap(declaration.name); this.declarations[declaration.name] = actual; } actual.register(declaration, this.problemListener); }; Context.prototype.checkDuplicateMethod = function(declaration) { var actual = this.getRegistered(declaration.name) || null; if (actual !== null && !(actual instanceof MethodDeclarationMap)) this.problemListener.reportDuplicate(declaration.name, declaration); return actual; }; Context.prototype.registerTestDeclaration = function(declaration) { var actual = this.tests[declaration.name] || null; if(actual!==null) this.problemListener.reportDuplicate(declaration.name, declaration); this.tests[declaration.name] = declaration; }; Context.prototype.getRegisteredTest = function(name) { // resolve upwards, since local names override global ones var actual = this.tests[name] || null; if(actual!==null) { return actual; } else if(this.parent!==null) { return this.parent.getRegisteredTest(name); } else if(this.globals!==this) { return this.globals.getRegisteredTest(name); } else { return null; } }; Context.prototype.hasTests = function() { for(var test in this.tests) return true; return false; }; Context.prototype.getTestDeclaration = function(testName) { return this.tests[testName]; }; Context.prototype.registerNativeBinding = function(type, declaration) { if(this === this.globals) this.nativeBindings[type] = declaration; else this.globals.registerNativeBinding(type, declaration); }; Context.prototype.getNativeBinding = function(type) { if(this===this.globals) { var binding = this.nativeBindings[type] || null; if (binding !== null) return binding; else if (this.parent !== null) return this.parent.getNativeBinding(type); else return null; } else return this.globals.getNativeBinding(type); }; function MethodDeclarationMap(name) { this.name = name; this.protos = {}; return this; } MethodDeclarationMap.prototype.register = function(declaration, problemListener) { var proto = declaration.getProto(); var current = this.protos[proto] || null; if(current!==null) problemListener.reportDuplicate(declaration.name, declaration); this.protos[proto] = declaration; }; MethodDeclarationMap.prototype.unregister = function(proto) { delete this.protos[proto]; return Object.getOwnPropertyNames(this.protos).length === 0; }; MethodDeclarationMap.prototype.registerIfMissing = function(declaration) { var proto = declaration.getProto(); if(!(proto in this.protos)) { this.protos[proto] = declaration; } }; MethodDeclarationMap.prototype.getFirst = function() { for(var proto in this.protos) { return this.protos[proto]; } }; MethodDeclarationMap.prototype.getAll = function() { return Object.getOwnPropertyNames(this.protos).map(function(proto) { return this.protos[proto]; }, this); }; MethodDeclarationMap.prototype.isEmpty = function() { return this.size()===0; }; MethodDeclarationMap.prototype.size = function() { return Object.getOwnPropertyNames(this.protos).length; }; Context.prototype.getRegisteredValue = function(name) { var context = this.contextForValue(name); if (context === null) return null; else return context.readRegisteredValue(name); }; Context.prototype.readRegisteredValue = function(name) { return this.instances[name] || null; }; Context.prototype.registerValue = function(value, checkDuplicate) { if(checkDuplicate === undefined) checkDuplicate = true; if(checkDuplicate) { // only explore current context var actual = this.instances[value.name] || null; if(actual!==null) this.problemListener.reportDuplicate(value.id); } this.instances[value.name] = value; }; Context.prototype.unregisterValue = function(value) { delete this.instances[value.name]; }; Context.prototype.hasValue = function(id) { return this.contextForValue(id.name) !== null; }; Context.prototype.getValue = function(id) { var context = this.contextForValue(id.name); if(context===null) this.problemListener.reportUnknownVariable(id); return context.readValue(id); }; Context.prototype.readValue = function(id) { var value = this.values[id.name] || null; if(value===null) this.problemListener.reportEmptyVariable(id); if(value instanceof LinkedValue) return value.context.getValue(id); else return value; }; Context.prototype.setValue = function(id, value) { var context = this.contextForValue(id.name); if(context===null) this.problemListener.reportUnknownVariable(id); context.writeValue(id, value); }; Context.prototype.writeValue = function(id, value) { value = this.autocast(id.name, value); var current = this.values[id.name]; if(current instanceof LinkedValue) current.context.setValue(id, value); else this.values[id.name] = value; }; Context.prototype.autocast = function(name, value) { if(value !== null && value instanceof IntegerValue) { var actual = this.instances[name]; if(actual.getType(this) === DecimalType.instance) value = new DecimalValue(value.DecimalValue()); } return value; }; Context.prototype.contextForValue = function(name) { // resolve upwards, since local names override global ones var actual = this.instances[name] || null; if(actual!==null) { return this; } else if(this.parent!==null) { return this.parent.contextForValue(name); } else if(this.globals!==this) { return this.globals.contextForValue(name); } else { return null; } }; Context.prototype.contextForDeclaration = function(name) { // resolve upwards, since local names override global ones var actual = this.declarations[name] || null; if(actual!==null) { return this; } else if(this.parent!==null) { return this.parent.contextForDeclaration(name); } else if(this.globals!==this) { return this.globals.contextForDeclaration(name); } else { return null; } }; function ResourceContext() { Context.call(this); return this; } ResourceContext.prototype = Object.create(Context.prototype); ResourceContext.prototype.constructor = ResourceContext; function InstanceContext(instance, type) { Context.call(this); this.instance = instance || null; this.instanceType = type !== null ? type : instance.type; return this; } InstanceContext.prototype = Object.create(Context.prototype); InstanceContext.prototype.constructor = InstanceContext; InstanceContext.prototype.getRegistered = function(name) { var actual = Context.prototype.getRegistered.call(this, name); if (actual) return actual; var decl = this.getDeclaration(); if (decl==null) return null; var methods = decl.getMemberMethodsMap(this, name); if(methods && !methods.isEmpty()) return methods; else if(decl.hasAttribute(this, name)) return this.getRegisteredDeclaration(typeof(AttributeDeclaration), name); else return null; }; InstanceContext.prototype.getRegisteredDeclaration = function(klass, name) { if (klass === MethodDeclarationMap) { var decl = this.getDeclaration(); if (decl) { var methods = decl.getMemberMethodsMap(this, name); if (methods && !methods.isEmpty()) return methods; } } return Context.prototype.getRegisteredDeclaration.call(this, klass, name) }; InstanceContext.prototype.readRegisteredValue = function(name) { var actual = this.instances[name] || null; // not very pure, but avoids a lot of complexity when registering a value if(actual === null) { var attr = this.getRegisteredDeclaration(name); if(attr instanceof AttributeDeclaration) { var type = attr.getType(); actual = new Variable(name, type); this.instances[name] = actual; } } return actual; }; InstanceContext.prototype.contextForValue = function(name) { // params and variables have precedence over members // so first look in context values var context = Context.prototype.contextForValue.call(this, name); if(context !== null) { return context; } var decl = this.getDeclaration(); if(decl.hasAttribute(this, name) || decl.hasMethod(this, name)) { return this; } else { return null; } }; InstanceContext.prototype.getDeclaration = function() { if(this.instance !== null) return this.instance.declaration; else return this.getRegisteredDeclaration(this.instanceType.name); }; InstanceContext.prototype.readValue = function(id) { var decl = this.getDeclaration(); if(decl.hasAttribute(this, id.name)) { return this.instance.getMemberValue(this.calling, id.name); } else if(decl.hasMethod(this, id.name)) { var method = decl.getMemberMethodsMap(this, id.name).getFirst() return new ClosureValue(this, new MethodType(method)); } else return null; }; InstanceContext.prototype.writeValue = function(id, value) { this.instance.setMember(this.calling, id.name, value); }; function BuiltInContext(value) { Context.call(this); this.value = value; return this; } BuiltInContext.prototype = Object.create(Context.prototype); BuiltInContext.prototype.constructor = BuiltInContext; function DocumentContext(document) { Context.call(this); this.document = document; return this; } DocumentContext.prototype = Object.create(Context.prototype); DocumentContext.prototype.constructor = DocumentContext; DocumentContext.prototype.contextForValue = function(name) { // params and variables have precedence over members // so first look in context values var context = Context.prototype.contextForValue.call(this, name); if (context !== null) return context; // since any name is valid in the context of a document // simply return this document context else return this; }; DocumentContext.prototype.readValue = function(name) { return this.document.getMemberValue(this.calling, name); }; DocumentContext.prototype.writeValue = function(name) { this.document.setMember(this.calling, name, value); }; Context.prototype.enterMethod = function(method) { if(this.debugger !== null) { this.debugger.enterMethod(this, method); } }; Context.prototype.leaveMethod = function(method) { if(this.debugger !== null) { this.debugger.leaveMethod(this, method); } }; Context.prototype.enterStatement = function(statement) { if(this.debugger !== null) { this.debugger.enterStatement(this, statement); } }; Context.prototype.leaveStatement = function(statement) { if(this.debugger !== null) { this.debugger.leaveStatement(this, statement); } }; Context.prototype.terminated = function() { if (this.debugger !== null) { this.debugger.terminated(); } }; Context.prototype.loadSingleton = function(type) { if(this === this.globals) { var value = this.values[type.name] || null; if(value === null) { var decl = this.declarations[type.name] || null; if(!(decl instanceof ConcreteCategoryDeclaration)) throw new InternalError("No such singleton:" + type.name); value = new ConcreteInstance(this, decl); value.mutable = true; // a singleton is protected by "with x do", so always mutable in that context this.values[type.name] = value; } if(value instanceof ConcreteInstance) return value; else throw new InternalError("Not a concrete instance:" + value); } else return this.globals.loadSingleton(type); }; exports.Context = Context; exports.BuiltInContext = BuiltInContext; exports.InstanceContext = InstanceContext; exports.DocumentContext = DocumentContext; exports.ResourceContext = ResourceContext; exports.MethodDeclarationMap = MethodDeclarationMap; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { var ConcreteCategoryDeclaration = __webpack_require__(57).ConcreteCategoryDeclaration; var EnumeratedCategoryType = __webpack_require__(92).EnumeratedCategoryType; var IdentifierList = __webpack_require__(123).IdentifierList; var Identifier = __webpack_require__(73).Identifier; var List = __webpack_require__(136).List; function EnumeratedCategoryDeclaration(id, attrs, derived, symbols) { ConcreteCategoryDeclaration.call(this, id, attrs, derived, null); this.setSymbols(symbols); return this; } EnumeratedCategoryDeclaration.prototype = Object.create(ConcreteCategoryDeclaration.prototype); EnumeratedCategoryDeclaration.prototype.constructor = EnumeratedCategoryDeclaration; EnumeratedCategoryDeclaration.prototype.getDeclarationType = function() { return "Enumerated"; }; EnumeratedCategoryDeclaration.prototype.unregister = function(context) { context.unregisterDeclaration (this); this.symbols.forEach(function(symbol) { symbol.unregister(context); }); }; EnumeratedCategoryDeclaration.prototype.getLocalAttributes = function() { var attributes = ConcreteCategoryDeclaration.prototype.getLocalAttributes.call(this); if(!attributes) attributes = new IdentifierList(); if(!attributes.hasAttribute("name")) attributes.add(new Identifier("name")); return attributes; }; EnumeratedCategoryDeclaration.prototype.hasAttribute = function(context, name) { if("name"==name) return true; else return ConcreteCategoryDeclaration.prototype.hasAttribute.call(this, context, name); }; EnumeratedCategoryDeclaration.prototype.setSymbols = function(symbols) { this.symbols = symbols || []; var type = new EnumeratedCategoryType(this.id); this.symbols.forEach(function(symbol) { symbol.type = type; }); }; EnumeratedCategoryDeclaration.prototype.register = function(context) { context.registerDeclaration(this); this.symbols.forEach(function(symbol) { symbol.register(context); }); }; EnumeratedCategoryDeclaration.prototype.check = function(context, isStart) { ConcreteCategoryDeclaration.prototype.check.call(this, context, isStart); this.symbols.forEach(function(symbol) { symbol.check(context); }); return this.getType(context); }; EnumeratedCategoryDeclaration.prototype.getType = function(context) { return new EnumeratedCategoryType(this.id); }; EnumeratedCategoryDeclaration.prototype.toODialect = function(writer) { writer.append("enumerated category ").append(this.name); if(this.attributes!=null) { writer.append('('); this.attributes.toDialect(writer, true); writer.append(")"); } if(this.derivedFrom!=null) { writer.append(" extends "); this.derivedFrom.toDialect(writer, true); } writer.append(" {").newLine().indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.append(";").newLine(); }); writer.dedent().append("}").newLine(); }; EnumeratedCategoryDeclaration.prototype.toEDialect = function(writer) { writer.append("define ").append(this.name).append(" as enumerated "); if(this.derivedFrom!=null) this.derivedFrom.toDialect(writer, true); else writer.append("category"); if(this.attributes!=null && this.attributes.length>0) { if(this.attributes.length==1) writer.append(" with attribute "); else writer.append(" with attributes "); this.attributes.toDialect(writer, true); if(this.symbols!=null && this.symbols.length>0) writer.append(", and symbols:").newLine(); } else writer.append(" with symbols:").newLine(); writer.indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.newLine(); }); writer.dedent(); }; EnumeratedCategoryDeclaration.prototype.toMDialect = function(writer) { writer.append("enum ").append(this.name).append("("); if(this.derivedFrom!=null) { this.derivedFrom.toDialect(writer, false); if(this.attributes!=null && this.attributes.length>0) writer.append(", "); } if(this.attributes!=null && this.attributes.length>0) this.attributes.toDialect(writer, false); writer.append("):").newLine().indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.newLine(); }); writer.dedent(); }; EnumeratedCategoryDeclaration.prototype.isUserError = function(context) { return this.derivedFrom && this.derivedFrom.length===1 && this.derivedFrom[0].name==="Error"; }; EnumeratedCategoryDeclaration.prototype.ensureDeclarationOrder = function(context, list, set) { if(set.has(this)) return; if (this.isUserError(context)) { list.push(this); set.add(this); // don't declare inherited Error } else ConcreteCategoryDeclaration.prototype.ensureDeclarationOrder.call(this, context, list, set); }; EnumeratedCategoryDeclaration.prototype.declare = function(transpiler) { if(this.name==="Error") return; ConcreteCategoryDeclaration.prototype.declare.call(this, transpiler); transpiler.require(List); }; EnumeratedCategoryDeclaration.prototype.transpile = function(transpiler) { if (this.isUserError(transpiler.context)) this.transpileUserError(transpiler); else this.transpileEnumerated(transpiler); }; EnumeratedCategoryDeclaration.prototype.transpileUserError = function(transpiler) { transpiler.append("class ").append(this.name).append(" extends Error {").indent(); transpiler.newLine(); transpiler.append("constructor(values) {").indent(); transpiler.append("super(values.text);").newLine(); transpiler.append("this.name = '").append(this.name).append("';").newLine(); transpiler.append("this.promptoName = values.name;").newLine(); transpiler.append("return this;").dedent(); transpiler.append("}").newLine(); transpiler.append("toString() {").indent().append("return this.message;").dedent().append("}").newLine(); transpiler.append("getText() {").indent().append("return this.message;").dedent().append("}").newLine(); transpiler.dedent().append("}").newLine(); this.symbols.forEach(function(symbol) { symbol.initializeError(transpiler); }); this.transpileSymbols(transpiler); }; EnumeratedCategoryDeclaration.prototype.transpileSymbols = function(transpiler) { var names = this.symbols.map(function (symbol) { return symbol.name; }); transpiler.append(this.name).append(".symbols = new List(false, [").append(names.join(", ")).append("]);").newLine(); }; EnumeratedCategoryDeclaration.prototype.transpileEnumerated = function(transpiler) { ConcreteCategoryDeclaration.prototype.transpile.call(this, transpiler); transpiler.newLine(); transpiler.append(this.name).append(".prototype.toString = function() { return this.name; };").newLine(); if(this.hasAttribute(transpiler.context, "text")) transpiler.append(this.name).append(".prototype.getText = function() { return this.text; };").newLine(); else transpiler.append(this.name).append(".prototype.getText = ").append(this.name).append(".prototype.toString;").newLine(); this.symbols.forEach(function(symbol) { symbol.initialize(transpiler); }); this.transpileSymbols(transpiler); }; exports.EnumeratedCategoryDeclaration = EnumeratedCategoryDeclaration; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { var CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; var SetterMethodDeclaration = __webpack_require__(327).SetterMethodDeclaration; var GetterMethodDeclaration = __webpack_require__(326).GetterMethodDeclaration; var MethodDeclarationMap = null; var ConcreteInstance = __webpack_require__(498).ConcreteInstance; var CategoryType = __webpack_require__(93).CategoryType; var DataStore = __webpack_require__(308).DataStore; var $Root = __webpack_require__(591).$Root; var EnumeratedCategoryDeclaration = null; var EnumeratedNativeDeclaration = null; exports.resolve = function() { MethodDeclarationMap = __webpack_require__(55).MethodDeclarationMap; EnumeratedCategoryDeclaration = __webpack_require__(56).EnumeratedCategoryDeclaration; EnumeratedNativeDeclaration = __webpack_require__(173).EnumeratedNativeDeclaration; } function ConcreteCategoryDeclaration(id, attributes, derivedFrom, methods) { CategoryDeclaration.call(this, id, attributes); this.derivedFrom = derivedFrom || null; this.methodsMap = null; this.methods = methods || []; return this; } ConcreteCategoryDeclaration.prototype = Object.create(CategoryDeclaration.prototype); ConcreteCategoryDeclaration.prototype.constructor = ConcreteCategoryDeclaration; ConcreteCategoryDeclaration.prototype.isWidget = function(context) { if(this.derivedFrom==null || this.derivedFrom.length!=1) return false; var derived = context.getRegisteredDeclaration(this.derivedFrom[0]); return derived.isWidget(context); }; ConcreteCategoryDeclaration.prototype.toEDialect = function(writer) { var hasMethods = this.methods!=null && this.methods.length>0; this.protoToEDialect(writer, hasMethods, false); // no bindings if(hasMethods) this.methodsToEDialect(writer, this.methods); } ConcreteCategoryDeclaration.prototype.categoryTypeToEDialect = function(writer) { if(this.derivedFrom==null) writer.append("category"); else this.derivedFrom.toDialect(writer, true); }; ConcreteCategoryDeclaration.prototype.toODialect = function(writer) { var hasMethods = this.methods!=null && this.methods.length>0; this.allToODialect(writer, hasMethods); }; ConcreteCategoryDeclaration.prototype.categoryTypeToODialect = function(writer) { writer.append("category"); }; ConcreteCategoryDeclaration.prototype.categoryExtensionToODialect = function(writer) { if(this.derivedFrom!=null) { writer.append(" extends "); this.derivedFrom.toDialect(writer, true); } }; ConcreteCategoryDeclaration.prototype.bodyToODialect = function(writer) { this.methodsToODialect (writer, this.methods); }; ConcreteCategoryDeclaration.prototype.toMDialect = function(writer) { this.protoToMDialect(writer, this.derivedFrom); this.methodsToMDialect(writer); }; ConcreteCategoryDeclaration.prototype.categoryTypeToMDialect = function(writer) { writer.append("class"); }; ConcreteCategoryDeclaration.prototype.methodsToMDialect = function(writer) { writer.indent(); if(this.methods==null || this.methods.length==0) writer.append("pass").newLine(); else { writer.newLine(); this.methods.forEach(function(method) { if(method.comments) { method.comments.forEach(function (cmt) { cmt.toDialect(writer); }); } if(method.annotations) { method.annotations.forEach(function (ann) { ann.toDialect(writer); }); } var w = writer.newMemberWriter(); method.toDialect(w); writer.newLine(); }); } writer.dedent(); }; ConcreteCategoryDeclaration.prototype.hasAttribute = function(context, name) { if (CategoryDeclaration.prototype.hasAttribute.call(this, context, name)) { return true; } else { return this.hasDerivedAttribute(context, name); } }; ConcreteCategoryDeclaration.prototype.hasDerivedAttribute = function(context, name) { if(this.derivedFrom==null) { return false; } for(var i=0;i 0 ? local : null; }; ConcreteCategoryDeclaration.prototype.getAncestorAttributes = function(context, id) { var decl = context.getRegisteredDeclaration(id.name); if(decl==null) return null; else return decl.getAllAttributes(context); }; ConcreteCategoryDeclaration.prototype.findGetter = function(context, attrName) { if(this.methodsMap==null) { return null; } var method = this.methodsMap["getter:" + attrName] || null; if(method instanceof GetterMethodDeclaration) { return method; } if(method!=null) context.problemListener.reportBadGetter(method.id); return this.findDerivedGetter(context, attrName); }; ConcreteCategoryDeclaration.prototype.findDerivedGetter = function(context, attrName) { if(this.derivedFrom==null) { return null; } for(var i=0;i0; writer.append("define "); writer.append(this.name); writer.append(" as "); if(this.storable) writer.append("storable "); this.categoryTypeToEDialect(writer); if(hasAttributes) { if(this.attributes.length==1) writer.append(" with attribute "); else writer.append(" with attributes "); this.attributes.toDialect(writer, true); } if(hasMethods) { if(hasAttributes) writer.append(", and methods:"); else writer.append(" with methods:"); } else if (hasBindings) { if(hasAttributes) writer.append(", and bindings:"); else writer.append(" with bindings:"); } writer.newLine(); }; CategoryDeclaration.prototype.methodsToEDialect = function(writer, methods) { writer.indent(); methods.forEach(function(method) { writer.newLine(); if(method.comments) { method.comments.forEach(function (cmt) { cmt.toDialect(writer); }); } if(method.annotations) { method.annotations.forEach(function (ann) { ann.toDialect(writer); }); } var w = writer.newMemberWriter(); method.toDialect(w); }); writer.dedent(); }; CategoryDeclaration.prototype.methodsToODialect = function(writer, methods) { methods.forEach(function(method) { if(method.comments) { method.comments.forEach(function (cmt) { cmt.toDialect(writer); }); } if(method.annotations) { method.annotations.forEach(function (ann) { ann.toDialect(writer); }); } var w = writer.newMemberWriter(); method.toDialect(w); w.newLine(); }); } CategoryDeclaration.prototype.allToODialect = function(writer, hasBody) { if(this.storable) writer.append("storable "); this.categoryTypeToODialect(writer); writer.append(" ").append(this.name); if(this.attributes!=null) { writer.append('('); this.attributes.toDialect(writer, true); writer.append(')'); } this.categoryExtensionToODialect(writer); if(hasBody) { writer.append(" {").newLine().newLine().indent(); this.bodyToODialect(writer); writer.dedent().append('}').newLine(); } else writer.append(';'); }; CategoryDeclaration.prototype.categoryExtensionToODialect = function(writer) { // by default no extension }; CategoryDeclaration.prototype.protoToMDialect = function(writer, derivedFrom) { if(this.storable) writer.append("storable "); this.categoryTypeToMDialect(writer); writer.append(" ").append(this.name).append("("); if(this.derivedFrom!=null) { this.derivedFrom.toDialect(writer, false); if(this.attributes!=null) writer.append(", "); } if(this.attributes!=null) this.attributes.toDialect(writer, false); writer.append("):").newLine(); }; exports.CategoryDeclaration = CategoryDeclaration; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { var BaseDeclaration = __webpack_require__(60).BaseDeclaration; var InternalError = __webpack_require__(63).InternalError; var ContainerType = __webpack_require__(65).ContainerType; var AttributeInfo = __webpack_require__(340).AttributeInfo; var Value = __webpack_require__(77).Value; function AttributeDeclaration(id, type, constraint, indexTypes) { BaseDeclaration.call(this, id); this.type = type; this.constraint = constraint; this.indexTypes = indexTypes; this.storable = false; return this; } AttributeDeclaration.prototype = Object.create(BaseDeclaration.prototype); AttributeDeclaration.prototype.constructor = AttributeDeclaration; AttributeDeclaration.prototype.getDeclarationType = function() { return "Attribute"; }; AttributeDeclaration.prototype.getType = function() { return this.type; }; AttributeDeclaration.prototype.toString = function() { return this.name + ':' + this.type.toString(); }; AttributeDeclaration.prototype.toDialect = function(writer) { writer.toDialect(this); }; AttributeDeclaration.prototype.toEDialect = function(writer) { writer.append("define "); writer.append(this.name); writer.append(" as "); if(this.storable) writer.append("storable "); this.type.toDialect(writer); writer.append(" attribute"); if (this.constraint != null) this.constraint.toDialect(writer); if (this.indexTypes != null) { writer.append(" with "); this.indexTypes.toDialect(writer, true); writer.append(" index"); } }; AttributeDeclaration.prototype.toODialect = function(writer) { if(this.storable) writer.append("storable "); writer.append("attribute "); writer.append(this.name); writer.append(" : "); this.type.toDialect(writer); if (this.constraint != null) this.constraint.toDialect(writer); if (this.indexTypes != null) { writer.append(" with index") if (this.indexTypes.length > 0) { writer.append(" ("); this.indexTypes.toDialect(writer, false); writer.append(')'); } } writer.append(';'); }; AttributeDeclaration.prototype.toMDialect = function(writer) { if(this.storable) writer.append("storable "); writer.append("attr "); writer.append(this.name); writer.append(" ( "); this.type.toDialect(writer); writer.append(" ):").newLine(); writer.indent(); if (this.constraint != null) this.constraint.toDialect(writer); if (this.indexTypes != null) { if (this.constraint != null) writer.newLine(); writer.append("index ("); this.indexTypes.toDialect(writer, false); writer.append(')'); } if (this.constraint ==null && this.indexTypes ==null) writer.append("pass"); writer.dedent(); }; AttributeDeclaration.prototype.register = function(context) { context.registerDeclaration(this); }; AttributeDeclaration.prototype.check = function(context, isStart) { this.type.checkExists(context); return this.type; }; AttributeDeclaration.prototype.checkValue = function(context, expression) { var value = expression.interpret(context); if(this.constraint==null) { return value; } this.constraint.checkValue(context, value); return value; }; AttributeDeclaration.prototype.getAttributeInfo = function() { var collection = this.type instanceof ContainerType; var family = collection ? this.type.itemType.family : this.type.family; return new AttributeInfo(this.name, family, collection, this.indexTypes); }; AttributeDeclaration.prototype.declare = function(transpiler) { this.type.declare(transpiler); if(this.constraint) this.constraint.declare(transpiler, this.name, this.type); }; exports.AttributeDeclaration = AttributeDeclaration; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { var Section = __webpack_require__(61).Section; function BaseDeclaration(id) { Section.call(this); this.id = id; this.comments = null; this.annotations = null; this.declaring = false; return this; } BaseDeclaration.prototype = Object.create(Section.prototype); BaseDeclaration.prototype.constructor = BaseDeclaration; Object.defineProperty(BaseDeclaration.prototype, "name", { get : function() { return this.id.name; } }); BaseDeclaration.prototype.unregister = function(context) { context.unregisterDeclaration (this); }; BaseDeclaration.prototype.toDialect = function(writer) { writer.toDialect(this); }; BaseDeclaration.prototype.fetchBody = function(parser) { var section = null; if(section==null && this.comments && this.comments.length > 0) section = this.comments[0]; if(section==null && this.annotations && this.annotations.length > 0) section = this.annotations[0]; if(section==null) section = this; return parser.getTokenStream().getText({ start: section.start.tokenIndex, stop: this.end.tokenIndex + 1 }); }; BaseDeclaration.prototype.locateSectionAtLine = function(line) { return null; }; exports.BaseDeclaration = BaseDeclaration; /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { var Location = __webpack_require__(62).Location; function Section(section) { if(!section) section = { path : "", start : null, end : null, dialect : null, breakpoint : null }; this.copySectionFrom(section); return this; } Section.prototype.copySectionFrom = function(section) { this.path = section.path; this.start = section.start; this.end = section.end; this.dialect = section.dialect; this.breakpoint = section.breakpoint; }; Section.prototype.setSectionFrom = function(path, start, end, dialect) { this.path = path; this.start = new Location(start); this.end = new Location(end, true); this.dialect = dialect; this.breakpoint = false; }; Section.prototype.containsLine = function(line) { return this.start.line <= line && this.end.line >= line; }; Section.prototype.asObject = function() { // return an object that can pass through PostMessage and is aligned on server-side debugger Section definition return { path : this.path, start : this.start.asObject(), end : this.end.asObject(), dialect : this.dialect.name, breakpoint : this.breakpoint }; }; exports.Section = Section; /***/ }), /* 62 */ /***/ (function(module, exports) { function Location(token, isEnd) { this.tokenIndex = token.tokenIndex; this.line = token.line; this.column = token.column; this.start = token.start; if(isEnd && token.text!==null) { this.start += token.text.length; this.column += token.text.length; } } Location.prototype.asObject = function() { return { tokenIndex: this.tokenIndex, line: this.line, column: this.column }; }; exports.Location = Location; /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { var PromptoError = __webpack_require__(64).PromptoError; function InternalError(message) { PromptoError.call(this, message); return this; } InternalError.prototype = Object.create(InternalError.prototype); InternalError.prototype.constructor = InternalError; exports.InternalError = InternalError; /***/ }), /* 64 */ /***/ (function(module, exports) { function PromptoError() { var tmp = Error.apply(this, arguments); this.message = tmp.message tmp.name = this.name = 'PromptoError' Object.defineProperty(this, "stack", { get: function () { return tmp.stack } }); return this; } exports.PromptoError = PromptoError; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { var IterableType = __webpack_require__(66).IterableType; var BooleanType = __webpack_require__(72).BooleanType; var Variable = __webpack_require__(91).Variable; function ContainerType(id, itemType) { IterableType.call(this, id); this.itemType = itemType; return this; } ContainerType.prototype = Object.create(IterableType.prototype); ContainerType.prototype.constructor = ContainerType; ContainerType.prototype.checkContains = function(context, other) { if(other.isAssignableFrom(context, this.itemType)) { return BooleanType.instance; } else { return IterableType.prototype.checkContains.call(this, context, other); } }; ContainerType.prototype.checkMember = function(context, section, name) { if ("count" == name) { var IntegerType = __webpack_require__(83).IntegerType; return IntegerType.instance; } else { return IterableType.prototype.checkMember.call(this, context, section, name); } }; ContainerType.prototype.declareMember = function(transpiler, name) { if ("count" !== name) { return IterableType.prototype.declareMember.call(this, transpiler, name); } }; ContainerType.prototype.transpileMember = function(transpiler, name) { if ("count" == name) { transpiler.append("length"); } else { return IterableType.prototype.transpileMember.call(this, transpiler, name); } }; ContainerType.prototype.declareSorted = function(transpiler, key) { // nothing to do }; ContainerType.prototype.declareIterator = function(transpiler, name, expression) { transpiler = transpiler.newChildTranspiler(); transpiler.context.registerValue(new Variable(name, this.itemType)); expression.declare(transpiler); }; ContainerType.prototype.transpileIterator = function(transpiler, name, expression) { transpiler.append(".iterate(function(").append(name).append(") { return "); transpiler = transpiler.newChildTranspiler(); transpiler.context.registerValue(new Variable(name, this.itemType)); expression.transpile(transpiler); transpiler.append("; }, this)"); transpiler.flush(); }; exports.ContainerType = ContainerType; /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var BooleanType = __webpack_require__(72).BooleanType; function IterableType(id, itemType) { NativeType.call(this, id); this.itemType = itemType; return this; } IterableType.prototype = Object.create(NativeType.prototype); IterableType.prototype.constructor = IterableType; IterableType.prototype.isMoreSpecificThan = function(context, other) { return (other instanceof IterableType && this.itemType.isMoreSpecificThan(context, other.itemType)); }; exports.IterableType = IterableType; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { var BaseType = __webpack_require__(68).BaseType; function NativeType(id) { BaseType.call(this, id); return this; } NativeType.prototype = Object.create(BaseType.prototype); NativeType.prototype.constructor = NativeType; NativeType.prototype.checkUnique = function(context) { // nothing to do }; NativeType.prototype.checkExists = function(context) { // nothing to do }; NativeType.prototype.isMoreSpecificThan = function(context, other) { return false; }; NativeType.prototype.equals = function(obj) { return obj===this; }; NativeType.prototype.sort = function(context, list, desc) { function cmp(o1, o2) { o1 = o1.value; o2 = o2.value; return o1 > o2 ? 1 : o1 === o2 ? 0 : -1; } return this.doSort(context, list, cmp, desc); }; NativeType.prototype.declareSorted = function(transpiler, key) { // nothing to do }; NativeType.prototype.transpileSorted = function(transpiler, desc, key) { if(desc) transpiler.append("function(o1, o2) { return o1 === o2 ? 0 : o1 > o2 ? -1 : 1; }"); }; exports.NativeType = NativeType; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var SyntaxError = __webpack_require__(69).SyntaxError; var EnumeratedNativeType = null; var VoidType = null; var TextType = null; var NullType = null; var TupleValue = null; var SetValue = null; var ListValue = null; exports.resolve = function() { EnumeratedNativeType = __webpack_require__(70).EnumeratedNativeType; VoidType = __webpack_require__(153).VoidType; TextType = __webpack_require__(135).TextType; NullType = __webpack_require__(109).NullType; TupleValue = __webpack_require__(358).TupleValue; SetValue = __webpack_require__(143).SetValue; ListValue = __webpack_require__(141).ListValue; }; function BaseType(id) { this.id = id; return this; }; Object.defineProperty(BaseType.prototype, "name", { get : function() { return this.id.name; } }); BaseType.prototype.getTranspiledName = function() { return this.name; }; BaseType.prototype.toString = function() { return this.name; }; BaseType.prototype.equals = function(other) { return (other instanceof BaseType) && this.name==other.name; }; BaseType.prototype.isAssignableFrom = function(context, other) { return this==other || this.equals(other) || other.equals(NullType.instance); }; BaseType.prototype.getMemberMethods = function(context, name) { return []; }; BaseType.prototype.transpile = function(transpiler) { throw new Error("Transpile not implemented by " + this.constructor.name); }; BaseType.prototype.transpileAssignMemberValue = function(transpiler, name, expression) { throw new SyntaxError("Cannot transpile assign member value from " + this.name); }; BaseType.prototype.transpileAssignItemValue = function(transpiler, item, expression) { throw new SyntaxError("Cannot transpile assign item value from " + this.name); }; BaseType.prototype.checkAdd = function(context, other, tryReverse) { if(other instanceof EnumeratedNativeType) return this.checkAdd(context, other.derivedFrom, tryReverse); else if(tryReverse) return other.checkAdd(context, this, false); else throw new SyntaxError("Cannot add " + this.name + " to " + other.name); }; BaseType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if(other instanceof EnumeratedNativeType) return this.declareAdd(transpiler, other.derivedFrom, tryReverse, left, right); else if(tryReverse) return other.declareAdd(transpiler, this, false, right, left); else throw new SyntaxError("Cannot declare add " + this.name + " to " + other.name); }; BaseType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileAdd(transpiler, other.derivedFrom, tryReverse, left, right); else if(tryReverse) return other.transpileAdd(transpiler, this, false, right, left); else throw new SyntaxError("Cannot transpile add " + this.name + " to " + other.name); }; BaseType.prototype.checkSubtract = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkSubtract(context, other.derivedFrom); else throw new SyntaxError("Cannot substract " + this.name + " from " + other.name); }; BaseType.prototype.declareSubtract = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.declareSubtract(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot declare substract " + this.name + " to " + other.name); }; BaseType.prototype.transpileSubtract = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileSubtract(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot transpile substract " + this.name + " to " + other.name); }; BaseType.prototype.checkDivide = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkDivide(context, other.derivedFrom); else throw new SyntaxError("Cannot divide " + this.name + " with " + other.name); }; BaseType.prototype.declareDivide = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.declareDivide(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot declare divide " + this.name + " to " + other.name); }; BaseType.prototype.transpileDivide = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileDivide(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot transpile divide " + this.name + " to " + other.name); }; BaseType.prototype.checkIntDivide = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkIntDivide(context, other.derivedFrom); else throw new SyntaxError("Cannot divide " + this.name + " with " + other.name); }; BaseType.prototype.declareIntDivide = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.declareIntDivide(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot declare int divide " + this.name + " to " + other.name); }; BaseType.prototype.transpileIntDivide = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileIntDivide(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot transpile int divide " + this.name + " to " + other.name); }; BaseType.prototype.checkModulo = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkModulo(context, other.derivedFrom); else throw new SyntaxError("Cannot modulo " + this.name + " with " + other.name); }; BaseType.prototype.declareModulo = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.declareModulo(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot declare modulo " + this.name + " to " + other.name); }; BaseType.prototype.transpileModulo = function(transpiler, other, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileModulo(transpiler, other.derivedFrom, left, right); else throw new SyntaxError("Cannot transpile modulo " + this.name + " to " + other.name); }; BaseType.prototype.checkMultiply = function(context, other, tryReverse) { if(other instanceof EnumeratedNativeType) return this.checkMultiply(context, other.derivedFrom, tryReverse); else if(tryReverse) return other.checkMultiply(context, this, false); else throw new SyntaxError("Cannot multiply " + this.name + " with " + other.name); }; BaseType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if(other instanceof EnumeratedNativeType) return this.declareMultiply(transpiler, other.derivedFrom, tryReverse, left, right); else if(tryReverse) return other.declareMultiply(transpiler, this, false, right, left); else throw new SyntaxError("Cannot declare multiply " + this.name + " to " + other.name); }; BaseType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileMultiply(transpiler, other.derivedFrom, tryReverse, left, right); else if(tryReverse) return other.transpileMultiply(transpiler, this, false, right, left); else throw new SyntaxError("Cannot transpile multiply " + this.name + " to " + other.name); }; BaseType.prototype.checkMinus = function(context) { if(this instanceof EnumeratedNativeType) return this.derivedFrom.checkMinus(context); else throw new SyntaxError("Cannot negate " + this.name); }; BaseType.prototype.declareMinus = function(transpiler, value) { if(this instanceof EnumeratedNativeType) return this.derivedFrom.declareMinus(transpiler, value); else throw new SyntaxError("Cannot declare negate " + this.name); }; BaseType.prototype.transpileMinus = function(transpiler, value) { if(this instanceof EnumeratedNativeType) return this.derivedFrom.transpileMinus(transpiler, value); else throw new SyntaxError("Cannot transpile negate of " + this.name ); }; BaseType.prototype.checkCompare = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkCompare(context, other.derivedFrom); else throw new SyntaxError("Cannot compare " + this.name + " to " + other.name); }; BaseType.prototype.declareCompare = function(transpiler, other) { if(other instanceof EnumeratedNativeType) return this.declareCompare(transpiler, other.derivedFrom); else throw new SyntaxError(this.name + " cannot declare compare " + other.name); }; BaseType.prototype.transpileCompare = function(transpiler, other, operator, left, right) { if(other instanceof EnumeratedNativeType) return this.transpileCompare(transpiler, other.derivedFrom, operator, left, right); else throw new SyntaxError(this.name + " cannot transpile compare " + other.name); }; BaseType.prototype.checkContains = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkContains(context, other.derivedFrom); else throw new SyntaxError(this.name + " cannot contain " + other.name); }; BaseType.prototype.declareContains = function(transpiler, other, container, item) { if(other instanceof EnumeratedNativeType) return this.declareContains(transpiler, other.derivedFrom, container, item); else throw new SyntaxError(this.name + " cannot declare contain " + other.name); }; BaseType.prototype.transpileContains = function(transpiler, other, container, item) { if(other instanceof EnumeratedNativeType) return this.transpileContains(transpiler, other.derivedFrom, container, item); else throw new SyntaxError(this.name + " cannot transpile contain " + other.name); }; BaseType.prototype.checkContainsAllOrAny = function(context, other) { if(other instanceof EnumeratedNativeType) return this.checkContainsAllOrAny(context, other.derivedFrom); else throw new SyntaxError(this.name + " cannot contain all or any " + other.name); }; BaseType.prototype.declareContainsAllOrAny = function(transpiler, other, container, item) { if(other instanceof EnumeratedNativeType) return this.declareContainsAllOrAny(transpiler, other.derivedFrom, container, item); else throw new SyntaxError(this.name + " cannot declare contain all or any " + other.name); }; BaseType.prototype.transpileContainsAll = function(transpiler, other, container, item) { if(other instanceof EnumeratedNativeType) return this.transpileContainsAll(transpiler, other.derivedFrom, container, item); else throw new SyntaxError(this.name + " cannot transpile contain all " + other.name); }; BaseType.prototype.transpileContainsAny = function(transpiler, other, container, item) { if(other instanceof EnumeratedNativeType) return this.transpileContainsAny(transpiler, other.derivedFrom, container, item); else throw new SyntaxError(this.name + " cannot transpile contain any " + other.name); }; BaseType.prototype.checkItem = function(context, itemType, expression) { if(itemType instanceof EnumeratedNativeType) return this.checkItem(context, itemType.derivedFrom, expression); else { context.problemListener.reportInvalidItem(this, itemType, expression); return VoidType.instance; } }; BaseType.prototype.declareItem = function(transpiler, itemType, item) { if(itemType instanceof EnumeratedNativeType) return this.declareItem(transpiler, itemType.derivedFrom, item); else throw new SyntaxError("Cannot declare item from: " + this.name); }; BaseType.prototype.transpileItem = function(transpiler, itemType, item) { if(itemType instanceof EnumeratedNativeType) return this.transpileItem(transpiler, itemType.derivedFrom); else throw new SyntaxError("Cannot transpile item from: " + this.name); }; BaseType.prototype.checkMember = function(context, section, name) { if("text" == name) return TextType.instance; else { context.problemListener.reportInvalidMember(section, name); return VoidType.instance; } }; BaseType.prototype.declareMember = function(transpiler, name) { if("text" !== name) throw new SyntaxError("Cannot declare member: " + name + " from " + this.name); }; BaseType.prototype.transpileMember = function(transpiler, name) { if("text" == name) transpiler.append("getText()"); else throw new SyntaxError("Cannot transpile member: " + name + " from " + this.name); }; BaseType.prototype.checkSlice = function(context) { throw new SyntaxError("Cannot slice " + this.name); }; BaseType.prototype.declareSlice = function(transpiler, first, last) { throw new SyntaxError("Cannot declare slice for " + this.name); }; BaseType.prototype.transpileSlice = function(transpiler, first, last) { throw new SyntaxError("Cannot transpile slice for " + this.name); }; BaseType.prototype.checkIterator = function(context, source) { context.problemListener.reportCannotIterate(source); return VoidType.instance; }; BaseType.prototype.declareIterator = function(transpiler, name, expression) { throw new SyntaxError("Cannot declare iterate over " + this.name); }; BaseType.prototype.transpileIterator = function(transpiler, name, expression) { throw new SyntaxError("Cannot transpile iterate over " + this.name); }; BaseType.prototype.checkAssignableFrom = function(context, other, section) { if (!this.isAssignableFrom(context, other)) context.problemListener.reportIncompatibleTypes(section, this, other); }; BaseType.prototype.checkRange = function(context, other) { throw new SyntaxError("Cannot create range of " + this.name + " and " + other.name); }; BaseType.prototype.declareRange = function(context, other) { throw new SyntaxError("Cannot declare range of " + this.name + " and " + other.name); }; BaseType.prototype.transpileRange = function(transpiler, first, last) { throw new SyntaxError("Cannot transpile range of " + this.name); }; BaseType.prototype.checkAnd = function(context, other) { throw new SyntaxError("Cannot logically combine " + this.name + " and " + other.name); }; BaseType.prototype.checkOr = function(context, other) { throw new SyntaxError("Cannot logically combine " + this.name + " or " + other.name); }; BaseType.prototype.checkNot = function(context) { throw new SyntaxError("Cannot logically negate " + this.name); }; BaseType.prototype.getMember = function(context, name) { throw new SyntaxError("Cannot read member from " + this.name); }; BaseType.prototype.readJSONValue = function(context, node, parts) { throw new Error("Unsupported!") }; BaseType.prototype.declareSorted = function(transpiler, key) { throw new Error("Cannot declare sorted from " + this.name); }; BaseType.prototype.sort = function(context, list, desc) { throw new Error("Unsupported!") }; BaseType.prototype.doSort = function(context, list, cmp, desc) { // only sort if required if(list.size()<=1) { return list; } // create result list we can sort in place var items = null; if( list instanceof ListValue || list instanceof TupleValue) { items = [].concat(list.items); } else if ( list instanceof SetValue) { items = Array.from(list.items.set.values()); } items.sort(cmp); if(desc) items.reverse(); // TODO optimize return new ListValue(list.type.itemType, items); }; BaseType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { return value; // TODO for now }; BaseType.prototype.toDialect = function(writer) { writer.append(this.name); }; exports.BaseType = BaseType; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { var PromptoError = __webpack_require__(64).PromptoError; function SyntaxError(message) { PromptoError.call(this, message); return this; } SyntaxError.prototype = Object.create(PromptoError.prototype); SyntaxError.prototype.constructor = SyntaxError; exports.SyntaxError = SyntaxError; /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var BaseType = __webpack_require__(68).BaseType; var ListType = __webpack_require__(71).ListType; var TextType = __webpack_require__(135).TextType; var SyntaxError = __webpack_require__(69).SyntaxError; var List = __webpack_require__(136).List; function EnumeratedNativeType(name, derivedFrom) { BaseType.call(this, name); this.derivedFrom = derivedFrom; return this; } EnumeratedNativeType.prototype = Object.create(BaseType.prototype); EnumeratedNativeType.prototype.constructor = EnumeratedNativeType; EnumeratedNativeType.prototype.checkMember = function(context, section, name) { if ("symbols"==name) { return new ListType(this); } else if ("value"==name) { return this.derivedFrom; } else if ("name"==name) { return TextType.instance; } else { return BaseType.prototype.checkMember.call(this, context, section, name); } }; EnumeratedNativeType.prototype.declare = function(transpiler) { var decl = transpiler.context.getRegisteredDeclaration(this.name); transpiler.declare(decl); transpiler.require(List); }; EnumeratedNativeType.prototype.transpile = function(transpiler) { transpiler.append(this.name); }; EnumeratedNativeType.prototype.declareMember = function(transpiler, name) { if("symbols"==name || "value"==name || "name"==name) { var decl = transpiler.context.getRegisteredDeclaration(this.name); transpiler.declare(decl); } else BaseType.prototype.declareMember.call(this, transpiler, name); }; EnumeratedNativeType.prototype.transpileMember = function(transpiler, name) { if ("symbols"==name || "value"==name || "name"==name) { transpiler.append(name); } else { return BaseType.prototype.transpileMember.call(this, transpiler, name); } }; EnumeratedNativeType.prototype.getMemberValue = function(context, name) { var decl = context.getRegisteredDeclaration(this.name); if(!decl || !decl.symbols) { throw new SyntaxError(name + " is not an enumerated type!"); } if ("symbols"==name) { return decl.symbols; } else { throw new SyntaxError("Unknown member:" + name); } }; EnumeratedNativeType.prototype.isAssignableFrom = function(context, other) { return this.id.name === other.id.name; }; exports.EnumeratedNativeType = EnumeratedNativeType; /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { var ContainerType = __webpack_require__(65).ContainerType; var SetType = null; var IntegerType = null; var BooleanType = __webpack_require__(72).BooleanType; var Identifier = __webpack_require__(73).Identifier; var ListValue = __webpack_require__(141).ListValue; var Variable = __webpack_require__(91).Variable; var List = __webpack_require__(136).List; exports.resolve = function() { IntegerType = __webpack_require__(83).IntegerType; SetType = __webpack_require__(144).SetType; }; function ListType(itemType) { ContainerType.call(this, new Identifier(itemType.name+"[]"), itemType); return this; } ListType.prototype = Object.create(ContainerType.prototype); ListType.prototype.constructor = ListType; ListType.prototype.withItemType = function(itemType) { return new ListType(itemType); }; ListType.prototype.declare = function(transpiler) { transpiler.register(List); this.itemType.declare(transpiler); }; ListType.prototype.transpile = function(transpiler) { transpiler.append('List') }; ListType.prototype.getTranspiledName = function(context) { return this.itemType.getTranspiledName(context) + "_list"; }; ListType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { var values = value.map(function(item) { return this.itemType.convertJavaScriptValueToPromptoValue(context, item, null); }, this); return new ListValue(this.itemType, values); }; ListType.prototype.isAssignableFrom = function(context, other) { return ContainerType.prototype.isAssignableFrom.call(this, context, other) || ((other instanceof ListType) && this.itemType.isAssignableFrom(context, other.itemType)); }; ListType.prototype.equals = function(obj) { if(obj===this) { return true; } if(obj===null) { return false; } if(!(obj instanceof ListType)) { return false; } return this.itemType.equals(obj.itemType); }; ListType.prototype.checkAdd = function(context, other, tryReverse) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { return this; } else { return ContainerType.prototype.checkAdd.call(this, context, other, tryReverse); } }; ListType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareAdd.call(this, transpiler, other, tryReverse, left, right); } }; ListType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { left.transpile(transpiler); transpiler.append(".add("); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileAdd.call(this, transpiler, other, tryReverse, left, right); } }; ListType.prototype.checkSubtract= function(context, other) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { return this; } else { return ContainerType.prototype.checkSubtract.call(this, context, other); } }; ListType.prototype.declareSubtract = function(transpiler, other, left, right) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareSubtract.call(this, transpiler, other, left, right); } }; ListType.prototype.transpileSubtract = function(transpiler, other, left, right) { if((other instanceof ListType || other instanceof SetType) && this.itemType.equals(other.itemType)) { left.transpile(transpiler); transpiler.append(".remove("); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileSubtract.call(this, transpiler, other, tryReverse, left, right); } }; ListType.prototype.checkItem = function(context, itemType, expression) { if(itemType==IntegerType.instance) { return this.itemType; } else { return ContainerType.prototype.checkItem.call(this, context, itemType, expression); } }; ListType.prototype.declareItem = function(transpiler, itemType, item) { if(itemType===IntegerType.instance) { item.declare(transpiler); } else { return ContainerType.prototype.declareItem.call(this, transpiler, itemType, item); } }; ListType.prototype.transpileItem = function(transpiler, itemType, item) { if(itemType===IntegerType.instance) { transpiler.append(".item("); item.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileItem.call(this, transpiler, itemType, item); } }; ListType.prototype.transpileAssignItemValue = function(transpiler, item, expression) { transpiler.append(".setItem("); item.transpile(transpiler); transpiler.append(", "); expression.transpile(transpiler); transpiler.append(")"); }; ListType.prototype.checkMultiply = function(context, other, tryReverse) { if(other === IntegerType.instance) { return this; } else { return ContainerType.prototype.checkMultiply.call(this, context, other, tryReverse); } }; ListType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance) { var multiplyArray = __webpack_require__(51).multiplyArray; transpiler.require(multiplyArray); left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareMultiply.call(this, transpiler, other, tryReverse, left, right); } }; ListType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance) { transpiler.append("multiplyArray("); left.transpile(transpiler); transpiler.append(","); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileMultiply.call(this, transpiler, other, tryReverse, left, right); } }; ListType.prototype.checkSlice = function(context) { return this; }; ListType.prototype.declareSlice = function(transpiler, first, last) { // nothing to do }; ListType.prototype.transpileSlice = function(transpiler, first, last) { transpiler.append(".slice1Based("); if(first) { first.transpile(transpiler); } else transpiler.append("null"); if(last) { transpiler.append(","); last.transpile(transpiler); } transpiler.append(")"); }; ListType.prototype.declareContains = function(transpiler, other, container, item) { container.declare(transpiler); item.declare(transpiler); }; ListType.prototype.transpileContains = function(transpiler, other, container, item) { container.transpile(transpiler); transpiler.append(".includes("); item.transpile(transpiler); transpiler.append(")"); }; ListType.prototype.checkContainsAllOrAny = function(context, other) { return BooleanType.instance; }; ListType.prototype.declareContainsAllOrAny = function(transpiler, other, container, items) { var StrictSet = __webpack_require__(85).StrictSet; transpiler.require(StrictSet); container.declare(transpiler); items.declare(transpiler); }; ListType.prototype.transpileContainsAll = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAll("); items.transpile(transpiler); transpiler.append(")"); }; ListType.prototype.transpileContainsAny = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAny("); items.transpile(transpiler); transpiler.append(")"); }; ListType.prototype.checkIterator = function(context, source) { return this.itemType; }; exports.ListType = ListType; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; var AnyType = __webpack_require__(74).AnyType; var BooleanValue = null; exports.resolve = function() { BooleanValue = __webpack_require__(76).BooleanValue; } function BooleanType() { NativeType.call(this, new Identifier("Boolean")); return this; } BooleanType.prototype = Object.create(NativeType.prototype); BooleanType.prototype.constructor = BooleanType; BooleanType.instance = new BooleanType(); BooleanType.prototype.checkAnd = function(context, other) { if(other instanceof BooleanType) { return BooleanType.instance; } else { return NativeType.prototype.checkAnd.call(this, context, other); } }; BooleanType.prototype.checkOr = function(context, other) { if(other instanceof BooleanType) { return BooleanType.instance; } else { return NativeType.prototype.checkOr.call(this, context, other); } }; BooleanType.prototype.checkNot = function(context) { return BooleanType.instance; }; BooleanType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { if (typeof(value)=='boolean') { return BooleanValue.ValueOf(value); } else { return value; // TODO for now } }; BooleanType.prototype.declare = function(transpiler) { var isABoolean = __webpack_require__(51).isABoolean; transpiler.require(isABoolean); }; BooleanType.prototype.transpile = function(transpiler) { transpiler.append('"Boolean"'); }; BooleanType.prototype.transpileSorted = function(transpiler, desc, key) { if(desc) transpiler.append("function(o1, o2) { return o1 === o2 ? 0 : o1 > o2 ? -1 : 1; }"); else transpiler.append("function(o1, o2) { return o1 === o2 ? 0 : o1 > o2 ? 1 : -1; }"); }; exports.BooleanType = BooleanType; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { var Section = __webpack_require__(61).Section; function Identifier(name) { Section.call(this); this.name = name; return this; } Identifier.prototype = Object.create(Section.prototype); Identifier.prototype.constructor = Identifier; Identifier.prototype.toString = function() { return this.name; }; Identifier.prototype.equals = function(other) { if(!other || !(other instanceof Identifier)) return false; else return this.name==other.name; }; exports.Identifier = Identifier; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; var Any = __webpack_require__(75).Any; function AnyType() { NativeType.call(this, new Identifier("any")); return this; } AnyType.prototype = Object.create(NativeType.prototype); AnyType.prototype.constructor = AnyType; AnyType.instance = new AnyType(); AnyType.prototype.checkItem = function(context, item) { return AnyType.instance; // required to support Document items }; AnyType.prototype.declare = function(transpiler) { transpiler.register(Any); }; AnyType.prototype.transpile = function(transpiler) { transpiler.append('Any'); }; AnyType.prototype.declareItem = function(transpiler, type, item) { // required to support Document items type.declare(transpiler); item.declare(transpiler); }; AnyType.prototype.transpileItem = function(transpiler, type, item) { // required to support Document items transpiler.append(".item("); item.transpile(transpiler); transpiler.append(")"); }; AnyType.prototype.checkMember = function(context, section, name) { // required to support Document members return AnyType.instance; }; AnyType.prototype.transpileAssignMemberValue = function(transpiler, name, expression) { // required to support Document members transpiler.append(".setMember('").append(name).append("', "); expression.transpile(transpiler); transpiler.append(")"); }; AnyType.prototype.transpileAssignItemValue = function(transpiler, item, expression) { // required to support Document members transpiler.append(".setItem("); item.transpile(transpiler); transpiler.append(", "); expression.transpile(transpiler); transpiler.append(")"); }; AnyType.prototype.declare = function(transpiler) { // nothing to do }; AnyType.prototype.isAssignableFrom = function(context, other) { return true; }; exports.AnyType = AnyType; /***/ }), /* 75 */ /***/ (function(module, exports) { function Any() { return this; } Any.prototype.getText = Any.prototype.toString; exports.Any = Any; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var BooleanType = __webpack_require__(72).BooleanType; var Value = __webpack_require__(77).Value; function BooleanValue(value) { Value.call(this, BooleanType.instance); this.value = value; return this; } BooleanValue.prototype = Object.create(Value.prototype); BooleanValue.prototype.constructor = BooleanValue; BooleanValue.TRUE = new BooleanValue(true); BooleanValue.FALSE = new BooleanValue(false); BooleanValue.TRUE.not = BooleanValue.FALSE; BooleanValue.FALSE.not = BooleanValue.TRUE; BooleanValue.ValueOf = function(value) { return value ? BooleanValue.TRUE : BooleanValue.FALSE; }; BooleanValue.Parse = function(text) { var bool = text==="true"; return BooleanValue.ValueOf(bool); }; BooleanValue.prototype.getValue = function() { return this.value; }; BooleanValue.prototype.And = function(value) { if(value instanceof BooleanValue) { return BooleanValue.ValueOf(this.value && value.value); } else { throw new SyntaxError("Illegal: Boolean and " + typeof(value)); } return this.value; }; BooleanValue.prototype.Or = function(value) { if(value instanceof BooleanValue) { return BooleanValue.ValueOf(this.value || value.value); } else { throw new SyntaxError("Illegal: Boolean or " + typeof(value)); } return this.value; }; BooleanValue.prototype.Not = function() { return this.not; }; /* public Boolean getNot() { return not; } public int CompareTo(Context context, IValue value) throws SyntaxError { if (value instanceof Boolean) return compareTo((Boolean) value); else throw new SyntaxError("Illegal comparison: Boolean + " + value.getClass().getSimpleName()); } public int compareTo(Boolean other) { return java.lang.Boolean.compare(this.value, other.value); } public Object ConvertTo(Class type) { return value; } */ BooleanValue.prototype.toString = function() { return this.value.toString(); }; BooleanValue.prototype.equals = function(obj) { if (obj instanceof BooleanValue) { return this.value == obj.value; } else { return false; } }; exports.BooleanValue = BooleanValue; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { var TextValue = null; exports.resolve = function() { TextValue = __webpack_require__(78).TextValue; }; var id = 0; function Value (type) { this.id = ++id; this.type = type; this.mutable = false; return this; } Value.prototype.collectStorables = function(list) { // do nothing }; Value.prototype.And = function(context, value) { throw new SyntaxError("Logical and not supported by " + this.constructor.name); }; Value.prototype.Or = function(context, value) { throw new SyntaxError("Logical or not supported by " + this.constructor.name); }; Value.prototype.Not = function(context) { throw new SyntaxError("Logical negation not supported by " + this.constructor.name); }; Value.prototype.Add = function(context, value) { throw new SyntaxError("Add not supported by " + this.constructor.name); }; Value.prototype.transpile = function(transpiler) { throw new Error("Transpile not implemented by " + this.constructor.name); }; Value.prototype.Subtract = function(context, value) { throw new SyntaxError("Subtract not supported by " + this.constructor.name); }; Value.prototype.Multiply = function(context, value) { throw new SyntaxError("Multiply not supported by " + this.constructor.name); }; Value.prototype.Divide = function(context, value) { throw new SyntaxError("Divide not supported by " + this.constructor.name); }; Value.prototype.IntDivide = function(context, value) { throw new SyntaxError("Integer divide not supported by " + this.constructor.name); }; Value.prototype.Modulo = function(context, value) { throw new SyntaxError("Modulo not supported by " + this.constructor.name); }; Value.prototype.Minus = function(context) { throw new SyntaxError("Minus not supported by " + this.constructor.name); }; Value.prototype.CompareTo = function(context, value) { throw new SyntaxError("Compare not supported by " + this.constructor.name); }; Value.prototype.getMemberValue = function(context, name) { if("text" == name) { return new TextValue(this.toString()); } else throw new SyntaxError("No member support for " + name + " in " + this.constructor.name); }; Value.prototype.ConvertTo = function(type) { return this; }; Value.prototype.Roughly = function(context, value) { return this.equals(value); }; Value.prototype.Contains = function(context, value) { throw new SyntaxError("Contains not supported by " + this.constructor.name); }; function Instance(type) { Value.call(this, type); return this; } Instance.prototype = Object.create(Value.prototype); Instance.prototype.constructor = Instance; function Container(type) { Value.call(this, type); return this; } Container.prototype = Object.create(Value.prototype); Container.prototype.constructor = Container; exports.Value = Value; exports.Instance = Instance; exports.Container = Container; /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var CharacterValue = __webpack_require__(79).CharacterValue; var IntegerValue = __webpack_require__(80).IntegerValue; var TextType = __webpack_require__(135).TextType; var IndexOutOfRangeError = __webpack_require__(88).IndexOutOfRangeError; var removeAccents = __webpack_require__(51).removeAccents; function TextValue(value) { Value.call(this, TextType.instance); this.value = value; return this; } TextValue.prototype = Object.create(Value.prototype); TextValue.prototype.constructor = TextValue; TextValue.prototype.getStorableData = function() { return this.value; }; TextValue.prototype.getValue = function() { return this.value; }; TextValue.prototype.toString = function() { return this.value; }; TextValue.prototype.Add = function(context, value) { return new TextValue(this.value + value.toString()); }; TextValue.prototype.Multiply = function(context, value) { if (value instanceof IntegerValue) { try { var text = this.value.repeat(value.value); return new TextValue(text); } catch(error) { throw new SyntaxError("Negative repeat count:" + count); } } else { throw new SyntaxError("Illegal: Chararacter * " + typeof(value)); } }; TextValue.prototype.CompareTo = function(context, value) { if(value instanceof TextValue || value instanceof CharacterValue) { return this.value > value.value ? 1 : this.value == value.value ? 0 : -1; } else { throw new SyntaxError("Illegal: Compare TextValue with " + typeof(value)); } }; TextValue.prototype.hasItem = function(context, value) { if (value instanceof CharacterValue || value instanceof TextValue) { return this.value.indexOf(value.value) >= 0; } else { throw new SyntaxError("Illegal contains: TextValue + " + typeof(value)); } }; TextValue.prototype.getMemberValue = function(context, name) { if ("count"==name) { return new IntegerValue(this.value.length); } else { return Value.prototype.getMemberValue.call(this, context, name); } }; TextValue.prototype.getItemInContext = function(context, index) { try { if (index instanceof IntegerValue) { return new CharacterValue(this.value[index.IntegerValue() - 1]); } else { throw new InvalidDataError("No such item:" + index.toString()); } } catch (e) { if(e instanceof IndexOutOfBoundsException) { throw new IndexOutOfRangeError(); } else { throw e; } } } TextValue.prototype.getIterator = function(context) { return new TextIterator(this.value); }; function TextIterator(value) { this.index = -1; this.value = value; return this; } TextIterator.prototype.hasNext = function() { return this.index < this.value.length - 1; }; TextIterator.prototype.next = function() { return new CharacterValue(this.value[++this.index]); }; TextValue.prototype.convertToJavaScript = function() { return this.value; }; TextValue.prototype.slice = function(fi, li) { var first = this.checkFirst(fi); var last = this.checkLast(li); return new TextValue(this.value.slice(first - 1, last)); }; TextValue.prototype.checkFirst = function(fi) { var value = (fi == null) ? 1 : fi.IntegerValue(); if (value < 1 || value > this.value.length) { throw new IndexOutOfRangeError(); } return value; }; TextValue.prototype.checkLast = function(li) { var value = (li == null) ? this.value.length : li.IntegerValue(); if (value < 0) { value = this.value.length + 1 + li.IntegerValue(); } if (value < 1 || value > this.value.length) { throw new IndexOutOfRangeError(); } return value; }; TextValue.prototype.equals = function(obj) { if (obj instanceof TextValue) { return this.value == obj.value; } else { return false; } }; TextValue.prototype.Roughly = function(context, obj) { if (obj instanceof TextValue || obj instanceof CharacterValue) { return removeAccents(this.value.toLowerCase()) == removeAccents(obj.value.toLowerCase()); } else { return false; } }; TextValue.prototype.Contains = function(context, obj) { if (obj instanceof TextValue || obj instanceof CharacterValue) { return this.value.indexOf(obj.value) >= 0; } else { return false; } }; TextValue.prototype.toJson = function(context, json, instanceId, fieldName, withType, binaries) { if(Array.isArray(json)) json.push(this.value); else json[fieldName] = this.value; }; exports.TextValue = TextValue; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var IntegerValue = __webpack_require__(80).IntegerValue; var CharacterType = __webpack_require__(138).CharacterType; var TextValue = null; // circular dependency var removeAccents = __webpack_require__(51).removeAccents; exports.resolve = function() { TextValue = __webpack_require__(78).TextValue; } function CharacterValue(value) { Value.call(this, CharacterType.instance); this.value = value; return this; } CharacterValue.prototype = Object.create(Value.prototype); CharacterValue.prototype.constructor = CharacterValue; var whitespace = []; whitespace[" ".charCodeAt(0)] = true; whitespace["\t".charCodeAt(0)] = true; whitespace["\r".charCodeAt(0)] = true; whitespace["\n".charCodeAt(0)] = true; CharacterValue.isWhitespace = function(c) { return !!whitespace[c.charCodeAt(0)]; }; CharacterValue.prototype.getMemberValue = function(context, name) { if ("codePoint"==name) { return new IntegerValue(this.value.charCodeAt(0)); } else { return Value.prototype.getMemberValue.call(this, context, name); } }; CharacterValue.prototype.Add = function(context, value) { return new TextValue(this.value + value.toString()); } CharacterValue.prototype.Multiply = function(context, value) { if (value instanceof IntegerValue) { try { var text = this.value.repeat(value.value); return new TextValue(text); } catch(error) { throw new SyntaxError("Negative repeat count:" + count); } } else { throw new SyntaxError("Illegal: Chararacter * " + typeof(value)); } }; CharacterValue.prototype.cmp = function(obj) { return this.value > obj.value ? 1 : this.value == obj.value ? 0 : -1 ; }; CharacterValue.prototype.CompareTo = function(context, value) { if(value instanceof TextValue || value instanceof CharacterValue) { return this.value > value.value ? 1 : this.value == value.value ? 0 : -1; } else { throw new SyntaxError("Illegal: Compare CharacterValue with " + typeof(value)); } }; CharacterValue.prototype.convertToJavaScript = function() { return this.value; }; CharacterValue.prototype.toString = function() { return this.value; }; CharacterValue.prototype.equals = function(obj) { if (obj instanceof CharacterValue) { return this.value == obj.value; } else { return false; } }; CharacterValue.prototype.Roughly = function(context, obj) { if (obj instanceof TextValue || obj instanceof CharacterValue) { return removeAccents(this.value.toLowerCase()) == removeAccents(obj.value.toLowerCase()); } else { return false; } }; exports.CharacterValue = CharacterValue; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var DecimalValue = __webpack_require__(81).DecimalValue; var IntegerType = null; var DivideByZeroError = __webpack_require__(590).DivideByZeroError; exports.resolve = function() { IntegerType = __webpack_require__(83).IntegerType; }; function IntegerValue(value) { Value.call(this, IntegerType.instance); this.value = value>0 ? Math.floor(value) : Math.ceil(value); return this; } IntegerValue.prototype = Object.create(Value.prototype); IntegerValue.prototype.constructor = IntegerValue; IntegerValue.Parse = function(text) { return new IntegerValue(parseInt(text)); }; IntegerValue.prototype.toString = function() { return this.value.toString(); }; IntegerValue.prototype.getStorableData = function() { return this.value; }; IntegerValue.prototype.IntegerValue = function() { return this.value; }; IntegerValue.prototype.DecimalValue = function() { return this.value * 1.0; }; IntegerValue.prototype.Add = function(context, value) { if (value instanceof IntegerValue) { return new IntegerValue(this.value + value.value); } else if (value instanceof DecimalValue) { return new DecimalValue(value.DecimalValue() + this.value); } else { throw new SyntaxError("Illegal: IntegerValue + " + typeof(value)); } }; IntegerValue.prototype.Subtract = function(context, value) { if (value instanceof IntegerValue) { return new IntegerValue(this.value - value.value); } else if (value instanceof DecimalValue) { return new DecimalValue(this.value - value.DecimalValue()); } else { throw new SyntaxError("Illegal: IntegerValue - " + typeof(value)); } }; IntegerValue.prototype.Multiply = function(context, value) { if (value instanceof IntegerValue) { return new IntegerValue(this.value * value.value); } else if (value instanceof DecimalValue) { return new DecimalValue(value.value * this.value); } else if (value.Multiply) { return value.Multiply(context, this); } else { throw new SyntaxError("Illegal: IntegerValue * " + typeof(value)); } }; IntegerValue.prototype.Divide = function(context, value) { if (value instanceof IntegerValue || value instanceof DecimalValue) { if (value.DecimalValue() == 0.0) { throw new DivideByZeroError(); } else { return new DecimalValue(this.DecimalValue() / value.DecimalValue()); } } else { throw new SyntaxError("Illegal: IntegerValue / " + typeof(value)); } }; IntegerValue.prototype.IntDivide = function(context, value) { if (value instanceof IntegerValue) { if (value.IntegerValue() == 0) { throw new DivideByZeroError(); } else { return new IntegerValue(this.IntegerValue() / value.IntegerValue()); } } else { throw new SyntaxError("Illegal: IntegerValue \\ " + typeof(value)); } }; IntegerValue.prototype.Modulo = function(context, value) { if (value instanceof IntegerValue) { if (value.IntegerValue() == 0) { throw new DivideByZeroError(); } else { return new IntegerValue(this.IntegerValue() % value.IntegerValue()); } } else { throw new SyntaxError("Illegal: IntegerValue \\ " + typeof(value)); } }; IntegerValue.prototype.Minus = function(context) { return new IntegerValue(-this.value); }; IntegerValue.prototype.cmp = function(obj) { return this.value > obj.IntegerValue() ? 1 : this.value == obj.IntegerValue() ? 0 : -1 ; }; IntegerValue.prototype.CompareTo = function(context, value) { if (value instanceof IntegerValue || value instanceof DecimalValue) { return this.value > value.value ? 1 : this.value == value.value ? 0 : -1; } else { throw new SyntaxError("Illegal comparison: IntegerValue and " + typeof(value)); } }; IntegerValue.prototype.equals = function(obj) { if (obj instanceof IntegerValue) { return this.value == obj.value; } else if (obj instanceof DecimalValue) { return this.value == obj.value; } else { return false; } }; IntegerValue.prototype.toJson = function(context, json, instanceId, fieldName, withType, binaries) { if(Array.isArray(json)) json.push(this.value); else json[fieldName] = this.value; }; exports.IntegerValue = IntegerValue; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var IntegerValue = null; // circular dependency var DecimalType = null; var decimalTostring = __webpack_require__(51).decimalToString; exports.resolve = function() { IntegerValue = __webpack_require__(80).IntegerValue; DecimalType = __webpack_require__(82).DecimalType; }; function DecimalValue(value) { Value.call(this, DecimalType.instance); this.value = value; return this; } DecimalValue.prototype = Object.create(Value.prototype); DecimalValue.prototype.constructor = DecimalValue; DecimalValue.Parse = function(text) { return new DecimalValue(parseFloat(text)); }; DecimalValue.prototype.toString = function() { return decimalTostring(this.value); }; /*jshint bitwise:false*/ DecimalValue.prototype.IntegerValue = function() { return Math.floor(this.value); }; DecimalValue.prototype.DecimalValue = function() { return this.value; }; DecimalValue.prototype.getStorableData = function() { return this.value; }; DecimalValue.prototype.Add = function(context, value) { if (value instanceof IntegerValue) { return new DecimalValue(this.value + value.IntegerValue()); } else if (value instanceof DecimalValue) { return new DecimalValue(this.value + value.DecimalValue()); } else { throw new SyntaxError("Illegal: DecimalValue + " + typeof(value)); } }; DecimalValue.prototype.Subtract = function(context, value) { if (value instanceof IntegerValue) { return new DecimalValue(this.value - value.IntegerValue()); } else if (value instanceof DecimalValue) { return new DecimalValue(this.value - value.DecimalValue()); } else { throw new SyntaxError("Illegal: DecimalValue - " + typeof(value)); } }; DecimalValue.prototype.Multiply = function(context, value) { if (value instanceof IntegerValue) { return new DecimalValue(this.value * value.IntegerValue()); } else if (value instanceof DecimalValue) { return new DecimalValue(this.value * value.DecimalValue()); } else { throw new SyntaxError("Illegal: DecimalValue * " + typeof(value)); } }; DecimalValue.prototype.Divide = function(context, value) { if (value instanceof IntegerValue || value instanceof DecimalValue) { if (value.DecimalValue() == 0.0) { throw new DivideByZeroError(); } else { return new DecimalValue(this.DecimalValue() / value.DecimalValue()); } } else { throw new SyntaxError("Illegal: DecimalValue / " + typeof(value)); } }; DecimalValue.prototype.IntDivide = function(context, value) { if (value instanceof IntegerValue) { if (value.IntegerValue() == 0) { throw new DivideByZeroError(); } else { return new IntegerValue(this.DecimalValue() / value.IntegerValue()); } } else { throw new SyntaxError("Illegal: DecimalValue \\ " + typeof(value)); } }; DecimalValue.prototype.Modulo = function(context, value) { if (value instanceof IntegerValue || value instanceof DecimalValue) { if (value.DecimalValue() == 0.0) { throw new DivideByZeroError(); } else { return new DecimalValue(this.DecimalValue() % value.DecimalValue()); } } else { throw new SyntaxError("Illegal: DecimalValue % " + typeof(value)); } }; DecimalValue.prototype.Minus = function(context) { return new DecimalValue(-this.value); }; DecimalValue.prototype.CompareTo = function(context, value) { if (value instanceof IntegerValue || value instanceof DecimalValue) { return this.value > value.value ? 1 : this.value == value.value ? 0 : -1; } else { throw new SyntaxError("Illegal comparison: IntegerValue and " + typeof(value)); } }; /* @Override public Object ConvertTo(Class type) { return value; } */ DecimalValue.prototype.equals = function(obj) { if (obj instanceof IntegerValue || obj instanceof DecimalValue) { return this.value == obj.value; } else { return false; } }; exports.DecimalValue = DecimalValue; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var BooleanType = __webpack_require__(72).BooleanType; var IntegerType = null; // circular dependency var AnyType = __webpack_require__(74).AnyType; var DecimalValue = __webpack_require__(81).DecimalValue; var Identifier = __webpack_require__(73).Identifier; exports.resolve = function() { IntegerType = __webpack_require__(83).IntegerType; } function DecimalType() { NativeType.call(this, new Identifier("Decimal")); return this; } DecimalType.prototype = Object.create(NativeType.prototype); DecimalType.prototype.constructor = DecimalType; DecimalType.instance = new DecimalType(); DecimalType.prototype.declare = function(transpiler) { var isADecimal = __webpack_require__(51).isADecimal; transpiler.require(isADecimal); }; DecimalType.prototype.transpile = function(transpiler) { transpiler.append('"Decimal"') }; DecimalType.prototype.isAssignableFrom = function(context, other) { return NativeType.prototype.isAssignableFrom.call(this, context, other) || (other == IntegerType.instance); }; DecimalType.prototype.checkAdd = function(context, other, tryReverse) { if(other === IntegerType.instance || other === DecimalType.instance) { return this; } else { return NativeType.prototype.checkAdd.call(this, context, other, tryReverse); } }; DecimalType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareAdd.call(this, context, other, tryReverse, left, right); }; DecimalType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" + "); right.transpile(transpiler); } else return NativeType.prototype.transpileAdd.call(this, context, other, tryReverse, left, right); }; DecimalType.prototype.checkSubtract = function(context, other) { if(other === IntegerType.instance || other === DecimalType.instance) { return this; } else { return NativeType.prototype.checkSubtract.call(this, context, other); } }; DecimalType.prototype.declareSubtract = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareSubtract.call(this, transpiler, other, left, right); }; DecimalType.prototype.transpileSubtract = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" - "); right.transpile(transpiler); } else return NativeType.prototype.transpileSubtract.call(this, transpiler, other, left, right); }; DecimalType.prototype.checkMultiply = function(context, other, tryReverse) { if(other === IntegerType.instance || other === DecimalType.instance) { return this; } else { return NativeType.prototype.checkMultiply.call(this, context, other, tryReverse); } }; DecimalType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareMultiply.call(this, transpiler, other, tryReverse, left, right); }; DecimalType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" * "); right.transpile(transpiler); } else return NativeType.prototype.transpileMultiply.call(this, transpiler, other, tryReverse, left, right); }; DecimalType.prototype.checkDivide = function(context, other) { if(other === IntegerType.instance || other === DecimalType.instance) { return this; } else { return NativeType.prototype.checkDivide.call(this, context, other); } }; DecimalType.prototype.declareDivide = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareDivide.call(this, transpiler, other, left, right); }; DecimalType.prototype.transpileDivide = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { transpiler.append("divide("); left.transpile(transpiler); transpiler.append(", "); right.transpile(transpiler); transpiler.append(")"); } else return NativeType.prototype.transpileDivide.call(this, transpiler, other, left, right); }; DecimalType.prototype.checkIntDivide = function(context, other) { if(other === IntegerType.instance) { return IntegerType.instance; } else { return NativeType.prototype.checkIntDivide.call(this, context, other); } }; DecimalType.prototype.declareIntDivide = function(transpiler, other, left, right) { if(other === IntegerType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareIntDivide.call(this, transpiler, other, left, right); }; DecimalType.prototype.transpileIntDivide = function(transpiler, other, left, right) { if (other === IntegerType.instance ) { transpiler.append("Math.floor(divide("); left.transpile(transpiler); transpiler.append(", "); right.transpile(transpiler); transpiler.append("))"); } else return NativeType.prototype.transpileIntDivide.call(this, transpiler, other, left, right); }; DecimalType.prototype.checkModulo = function(context, other) { if(other === IntegerType.instance || other === DecimalType.instance) { return this; } else { return NativeType.prototype.checkModulo.call(this, context, other); } }; DecimalType.prototype.declareModulo = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { return; } else { return NativeType.prototype.declareModulo.call(this, transpiler, other, left, right); } }; DecimalType.prototype.transpileModulo = function(transpiler, other, left, right) { if(other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" % "); right.transpile(transpiler); } else return NativeType.prototype.transpileModulo.call(this, transpiler, other, left, right); }; DecimalType.prototype.checkMinus = function(context) { return this; }; DecimalType.prototype.declareMinus = function(transpiler, value) { // nothing to do }; DecimalType.prototype.transpileMinus = function(transpiler, value) { transpiler.append(" -"); value.transpile(transpiler); }; DecimalType.prototype.transpileMember = function(transpiler, name) { if("text" == name) transpiler.append("toDecimalString()"); else NativeType.prototype.transpileMember.call(this, transpiler, name); }; DecimalType.prototype.checkCompare = function(context, other) { if(other instanceof IntegerType || other instanceof DecimalType) { return BooleanType.instance; } else { return NativeType.prototype.checkCompare.call(this, context, other); } }; DecimalType.prototype.declareCompare = function(context, other) { // nothing to do }; DecimalType.prototype.transpileCompare = function(transpiler, other, operator, left, right) { left.transpile(transpiler); transpiler.append(" ").append(operator.toString()).append(" "); right.transpile(transpiler); }; DecimalType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { if (typeof(value)=='number') { return new DecimalValue(value); } else { return value; // TODO for now } }; exports.DecimalType = DecimalType; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { var CategoryArgument = null; var NativeType = __webpack_require__(67).NativeType; var BooleanType = __webpack_require__(72).BooleanType; var DecimalType = __webpack_require__(82).DecimalType; var CharacterType = null; var ListType = __webpack_require__(71).ListType; var RangeType = __webpack_require__(84).RangeType; var TextType = null; var AnyType = __webpack_require__(74).AnyType; var TextValue = null; var IntegerValue = __webpack_require__(80).IntegerValue; var IntegerRange = __webpack_require__(86).IntegerRange; var Identifier = __webpack_require__(73).Identifier; var PeriodType = null; var BuiltInMethodDeclaration = null; exports.resolve = function() { CategoryArgument = __webpack_require__(122).CategoryArgument; CharacterType = __webpack_require__(138).CharacterType; TextType = __webpack_require__(135).TextType; PeriodType = __webpack_require__(392).PeriodType; TextValue = __webpack_require__(78).TextValue; resolveBuiltInMethodDeclaration(); } function IntegerType() { NativeType.call(this, new Identifier("Integer")); return this; } IntegerType.prototype = Object.create(NativeType.prototype); IntegerType.prototype.constructor = IntegerType; IntegerType.instance = new IntegerType(); IntegerType.prototype.isAssignableFrom = function(context, other) { return NativeType.prototype.isAssignableFrom.call(this, context, other) || (other == DecimalType.instance); }; IntegerType.prototype.declare = function(transpiler) { var isAnInteger = __webpack_require__(51).isAnInteger; transpiler.require(isAnInteger); }; IntegerType.prototype.transpile = function(transpiler) { transpiler.append('"Integer"'); }; IntegerType.prototype.checkAdd = function(context, other, tryReverse) { if(other === IntegerType.instance || other === DecimalType.instance) { return other; } else { return NativeType.prototype.checkAdd.call(this, context, other, tryReverse); } }; IntegerType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareAdd.call(this, transpiler, other, tryReverse, left, right); } IntegerType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" + "); right.transpile(transpiler); } else return NativeType.prototype.transpileAdd.call(this, transpiler, other, tryReverse, left, right); }; IntegerType.prototype.checkSubtract = function(context, other) { if(other === IntegerType.instance) { return this; } else if(other === DecimalType.instance) { return other; } else { return NativeType.prototype.checkSubtract.call(this, context, other); } }; IntegerType.prototype.declareSubtract = function(transpiler, other, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareSubtract.call(this, transpiler, other, left, right); }; IntegerType.prototype.transpileSubtract = function(transpiler, other, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" - "); right.transpile(transpiler); } else return NativeType.prototype.transpileSubtract.call(this, transpiler, other, left, right); }; IntegerType.prototype.checkMultiply = function(context, other, tryReverse) { if(other === IntegerType.instance) { return this; } else if(other === DecimalType.instance) { return other; } else if(other === CharacterType.instance) { return TextType.instance; } else if(other === TextType.instance) { return other; } else if(other === PeriodType.instance) { return other; } else if(other instanceof ListType) { return other; } else { return NativeType.prototype.checkMultiply.call(this, context, other, tryReverse); } }; IntegerType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareMultiply.call(this, transpiler, other, tryReverse, left, right); }; IntegerType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.transpile(transpiler); transpiler.append(" * "); right.transpile(transpiler); } else return NativeType.prototype.transpileMultiply.call(this, transpiler, other, tryReverse, left, right); }; IntegerType.prototype.checkDivide = function(context, other) { if(other === IntegerType.instance || other === DecimalType.instance) { return DecimalType.instance; } else { return NativeType.prototype.checkDivide.call(this, context, other); } }; IntegerType.prototype.declareDivide = function(transpiler, other, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareDivide.call(this, transpiler, other, left, right); }; IntegerType.prototype.transpileDivide = function(transpiler, other, left, right) { if (other === IntegerType.instance || other === DecimalType.instance) { transpiler.append("divide("); left.transpile(transpiler); transpiler.append(", "); right.transpile(transpiler); transpiler.append(")"); } else return NativeType.prototype.transpileDivide.call(this, transpiler, other, left, right); }; IntegerType.prototype.checkIntDivide = function(context, other) { if(other === IntegerType.instance) { return this; } else { return NativeType.prototype.checkIntDivide.call(this, context, other); } }; IntegerType.prototype.declareIntDivide = function(transpiler, other, left, right) { if (other === IntegerType.instance ) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareIntDivide.call(this, transpiler, other, left, right); }; IntegerType.prototype.transpileIntDivide = function(transpiler, other, left, right) { if (other === IntegerType.instance ) { // TODO check negative values transpiler.append("Math.floor(divide("); left.transpile(transpiler); transpiler.append(", "); right.transpile(transpiler); transpiler.append("))"); } else return NativeType.prototype.transpileIntDivide.call(this, transpiler, other, left, right); }; IntegerType.prototype.checkModulo = function(context, other) { if(other === IntegerType.instance) { return this; } else { return NativeType.prototype.checkModulo.call(this, context, other); } }; IntegerType.prototype.declareModulo = function(transpiler, other, left, right) { if (other === IntegerType.instance ) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareModulo.call(this, transpiler, other, left, right); }; IntegerType.prototype.transpileModulo = function(transpiler, other, left, right) { if (other === IntegerType.instance ) { // TODO check negative values left.transpile(transpiler); transpiler.append(" % "); right.transpile(transpiler); } else return NativeType.prototype.transpileModulo.call(this, transpiler, other, left, right); }; IntegerType.prototype.checkMinus = function(context) { return this; }; IntegerType.prototype.declareMinus = function(transpiler, value) { // nothing to do }; IntegerType.prototype.transpileMinus = function(transpiler, value) { transpiler.append(" -"); value.transpile(transpiler); }; IntegerType.prototype.checkCompare = function(context, other) { if(other === IntegerType.instance || other === DecimalType.instance) { return BooleanType.instance; } else { return NativeType.prototype.checkCompare.call(this, context, other); } }; IntegerType.prototype.declareCompare = function(context, other) { // nothing to do }; IntegerType.prototype.transpileCompare = function(transpiler, other, operator, left, right) { left.transpile(transpiler); transpiler.append(" ").append(operator.toString()).append(" "); right.transpile(transpiler); }; IntegerType.prototype.checkRange = function(context, other) { if(other === IntegerType.instance) { return new RangeType(this); } else { return NativeType.prototype.checkRange.call(this, context, other); } }; IntegerType.prototype.declareRange = function(transpiler, other) { if(other === IntegerType.instance) { var module = __webpack_require__(140); transpiler.require(module.Range); transpiler.require(module.IntegerRange); } else { return NativeType.prototype.declareRange.call(this, transpiler, other); } }; IntegerType.prototype.transpileRange = function(transpiler, first, last) { transpiler.append("new IntegerRange("); first.transpile(transpiler); transpiler.append(","); last.transpile(transpiler); transpiler.append(")"); }; IntegerType.prototype.newRange = function(left, right) { if(left instanceof IntegerValue && right instanceof IntegerValue) { return new IntegerRange(left, right); } else { return NativeType.prototype.newRange.call(this, left, right); } }; IntegerType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { if (typeof(value)=='number') { return new IntegerValue(value); } else { return value; // TODO for now } }; IntegerType.prototype.getMemberMethods = function(context, name) { switch (name) { case "format": return [new FormatMethodDeclaration()]; default: return NativeType.prototype.getMemberMethods.call(context, name); } }; exports.IntegerType = IntegerType; function FormatMethodDeclaration() { BuiltInMethodDeclaration.call(this, "format", new CategoryArgument(TextType.instance, new Identifier("format"))); return this; } function resolveBuiltInMethodDeclaration() { BuiltInMethodDeclaration = __webpack_require__(145).BuiltInMethodDeclaration; FormatMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); FormatMethodDeclaration.prototype.constructor = FormatMethodDeclaration; FormatMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var format = context.getValue(new Identifier("format")).getStorableData(); value = this.format(value, format); return new TextValue(value); }; FormatMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; FormatMethodDeclaration.prototype.format = function(value, format) { // TODO support more than leading 0's value = "000000000000" + value; return value.substr(value.length - format.length); }; FormatMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("formatInteger("); assignments[0].transpile(transpiler); transpiler.append(")"); }; } /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { var ContainerType = __webpack_require__(65).ContainerType; var StrictSet = __webpack_require__(85).StrictSet; var Identifier = __webpack_require__(73).Identifier; var IntegerType = null; var BooleanType = null; exports.resolve = function() { IntegerType = __webpack_require__(83).IntegerType; BooleanType = __webpack_require__(72).BooleanType; }; function RangeType(itemType) { ContainerType.call(this, new Identifier(itemType.name+"[..]"),itemType); return this; } RangeType.prototype = Object.create(ContainerType.prototype); RangeType.prototype.constructor = RangeType; RangeType.prototype.withItemType = function(itemType) { return new RangeType(itemType); }; RangeType.prototype.checkItem = function(context, other, expression) { if (other == IntegerType.instance) { return this.itemType; } else { return ContainerType.prototype.checkItem.call(this, context, other, expression); } }; RangeType.prototype.declareItem = function(transpiler, itemType, item) { // nothing to do }; RangeType.prototype.transpileItem = function(transpiler, itemType, item) { transpiler.append(".item("); item.transpile(transpiler); transpiler.append(")"); }; RangeType.prototype.checkSlice = function(context) { return this; }; RangeType.prototype.declareSlice = function(transpiler, first, last) { if(first) { first.declare(transpiler); } if(last) { last.declare(transpiler); } }; RangeType.prototype.transpileSlice = function(transpiler, first, last) { transpiler.append(".slice1Based("); if(first) { first.transpile(transpiler); } else transpiler.append("null"); if(last) { transpiler.append(","); last.transpile(transpiler); } transpiler.append(")"); }; RangeType.prototype.checkIterator = function(context, source) { return this.itemType; }; RangeType.prototype.checkContainsAllOrAny = function(context, other) { return BooleanType.instance; }; RangeType.prototype.declareContains = function(transpiler, other, container, item) { transpiler.require(StrictSet); container.declare(transpiler); item.declare(transpiler); }; RangeType.prototype.transpileContains = function(transpiler, other, container, item) { container.transpile(transpiler); transpiler.append(".has("); item.transpile(transpiler); transpiler.append(")"); }; RangeType.prototype.declareContainsAllOrAny = function(transpiler, other, container, items) { transpiler.require(StrictSet); container.declare(transpiler); items.declare(transpiler); }; RangeType.prototype.transpileContainsAll = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAll("); items.transpile(transpiler); transpiler.append(")"); }; RangeType.prototype.transpileContainsAny = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAny("); items.transpile(transpiler); transpiler.append(")"); }; exports.RangeType = RangeType; /***/ }), /* 85 */ /***/ (function(module, exports) { function StrictSet(values) { this.set = new Set(values); return this; } Object.defineProperty(StrictSet.prototype, "length", { get : function() { return this.set.size; } }); StrictSet.prototype.toString = function() { return "<" + Array.from(this.set.values()).join(", ") + ">"; }; StrictSet.prototype.getText = StrictSet.prototype.toString; StrictSet.prototype.iterator = function() { var iter = this.set.values(); var item = iter.next(); return { hasNext: function() { return !item.done; }, next: function() { var value = item.value; item = iter.next(); return value; } }; }; StrictSet.prototype.item = function(idx) { var iter = this.set.values(); var item = iter.next(); while(--idx>=0 && !item.done) item = iter.next(); if(item.done) return null; else return item.value; }; StrictSet.prototype.addItems = function(items) { if(items instanceof StrictSet) items = Array.from(items.set.values()); items.forEach(function(item){ this.add(item); }, this); return this; // enable fluid API }; StrictSet.prototype.addAll = function(items) { var result = new StrictSet(this.set); result.addItems(items); return result; }; StrictSet.prototype.remove = function(items) { var excluded = (items instanceof StrictSet) ? items : new Set(items); var items = Array.from(this.set.values()); var remaining = items.filter(function(item) { return !excluded.has(item); }); return new StrictSet(remaining); }; StrictSet.prototype.add = function(value) { if(this.has(value)) return false; else { this.set.add(value); return true; } }; StrictSet.prototype.has = function(value, noCheckEquals) { if(this.set.has(value)) return true; if(noCheckEquals) return false; var iter = this.set.values(); var item = iter.next(); while(!item.done) { if(value.equals && value.equals(item.value)) return true; item = iter.next(); } return false; }; StrictSet.prototype.hasAll = function(items, noCheckEquals) { if(items instanceof StrictSet) items = Array.from(items.set.values()); for (var i = 0; i < items.length; i++) { if (!this.has(items[i], noCheckEquals)) return false; } return true; }; StrictSet.prototype.hasAny = function(items, noCheckEquals) { if(items instanceof StrictSet) items = Array.from(items.set.values()); if(noCheckEquals) { for (var i = 0; i < items.length; i++) { if (this.set.has(items[i])) return true; } return false; } else { for (var i = 0; i < items.length; i++) { if (this.has(items[i])) return true; } return false; } }; StrictSet.prototype.equals = function(other) { if(!(other instanceof StrictSet)) return false; else if(this.length!=other.length) return false; else { var iter = this.set.values(); var item = iter.next(); while(!item.done) { if(!other.has(item.value)) return false; item = iter.next(); } return true; } }; StrictSet.prototype.intersect = function(other) { var items = []; this.set.forEach( function(item) { if(other.has(item)) items.push(item); }); return new StrictSet(items); }; StrictSet.prototype.sorted = function(sortFunction) { var sorted = Array.from(this.set).sort(sortFunction); return new List(false, sorted); }; StrictSet.prototype.filtered = function(filterFunction) { var filtered = Array.from(this.set).filter(filterFunction); return new StrictSet(filtered); }; exports.StrictSet = StrictSet; /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var RangeValue = __webpack_require__(87).RangeValue; var IntegerValue = __webpack_require__(80).IntegerValue; var IntegerType = null; exports.resolve =function() { IntegerType = __webpack_require__(83).IntegerType; }; function IntegerRange(left, right) { RangeValue.call(this, IntegerType.instance, left, right); return this; } IntegerRange.prototype = Object.create(RangeValue.prototype); IntegerRange.prototype.constructor = IntegerRange; IntegerRange.prototype.size = function() { return 1 + this.high.IntegerValue() - this.low.IntegerValue(); }; IntegerRange.prototype.getItem = function(index) { var result = this.low.IntegerValue() + index - 1; if(result>this.high.IntegerValue()) { throw new IndexOutOfBoundsException(); } return new IntegerValue(result); }; IntegerRange.prototype.newInstance = function(left, right) { return new IntegerRange(left, right); }; exports.IntegerRange = IntegerRange; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var IntegerValue = __webpack_require__(80).IntegerValue; var IndexOutOfRangeError = __webpack_require__(88).IndexOutOfRangeError; var BaseType = __webpack_require__(68).BaseType; var RangeType = __webpack_require__(84).RangeType; function RangeValue(itemType, left, right) { if(!(itemType instanceof BaseType)) return; Value.call(this, new RangeType(itemType)); var cmp = left.cmp(right); if(cmp<0) { this.low = left; this.high = right; } else { this.low = right; this.high = left; } return this; } RangeValue.prototype = Object.create(Value.prototype); RangeValue.prototype.constructor = RangeValue; RangeValue.prototype.toString = function() { return "[" + (this.low==null?"":this.low.toString()) + ".." + (this.high==null?"":this.high.toString()) + "]"; }; RangeValue.prototype.equals = function(obj) { if(obj instanceof RangeValue) { return this.low.equals(obj.low) && this.high.equals(obj.high); } else { return false; } }; RangeValue.prototype.hasItem = function(context, lval) { var a = lval.cmp(this.low); var b = this.high.cmp(lval); return a>=0 && b>=0; }; RangeValue.prototype.getItemInContext = function(context, index) { if (index instanceof IntegerValue) { try { var value = this.getItem(index.IntegerValue()); if (value instanceof Value) { return value; } else { throw new InternalError("Item not a value!"); } } catch (e) { throw new IndexOutOfRangeError(); } } else { throw new SyntaxError("No such item:" + index.toString()); } }; RangeValue.prototype.slice = function(fi, li) { var size = this.size(); var first = this.checkFirst(fi, size); var last = this.checkLast(li, size); return this.newInstance(this.getItem(first),this.getItem(last)); } RangeValue.prototype.checkFirst = function(fi, size) { var value = (fi == null) ? 1 : fi.IntegerValue(); if (value < 1 || value > size) { throw new IndexOutOfRangeError(); } return value; }; RangeValue.prototype.checkLast = function(li, size) { var value = (li == null) ? size : li.IntegerValue(); if (value < 0) { value = size + 1 + li.IntegerValue(); } if (value < 1 || value > size) { throw new IndexOutOfRangeError(); } return value; }; RangeValue.prototype.getIterator = function(context) { return new RangeIterator(context, this); }; function RangeIterator(context, range) { this.context = context; this.range = range; this.index = 0; return this; } RangeIterator.prototype.hasNext = function() { return this.index o2."); key.transpile(transpiler); }; CategoryType.prototype.transpileSortedByGlobalMethod = function(transpiler, desc, name) { transpiler.append("function(o1, o2) { return ") .append(name).append("(o1) === ").append(name).append("(o2)").append(" ? 0 : ") .append(name).append("(o1) > ").append(name).append("(o2)").append(" ? "); if(desc) transpiler.append("-1 : 1; }"); else transpiler.append("1 : -1; }"); }; CategoryType.prototype.transpileAssignMemberValue = function(transpiler, name, expression) { transpiler.append(".setMember('").append(name).append("', "); expression.transpile(transpiler); transpiler.append(")"); }; exports.CategoryType = CategoryType; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { var MethodCall = __webpack_require__(95).MethodCall; var EnumeratedCategoryDeclaration = null; var CategoryDeclaration = null; var EnumeratedNativeDeclaration = __webpack_require__(173).EnumeratedNativeDeclaration; var ConstructorExpression = null; var InstanceExpression = __webpack_require__(151).InstanceExpression; var SymbolExpression = __webpack_require__(104).SymbolExpression; var TypeExpression = __webpack_require__(105).TypeExpression; var ProblemListener = __webpack_require__(157).ProblemListener; var PromptoError = __webpack_require__(64).PromptoError; var Section = __webpack_require__(61).Section; var Dialect = __webpack_require__(110).Dialect; var VoidType = __webpack_require__(153).VoidType; var EnumeratedCategoryType = null; var CategoryType = null; var MethodSelector = null; exports.resolve = function() { EnumeratedCategoryDeclaration = __webpack_require__(56).EnumeratedCategoryDeclaration; EnumeratedCategoryType = __webpack_require__(92).EnumeratedCategoryType; MethodSelector = __webpack_require__(100).MethodSelector; CategoryType = __webpack_require__(93).CategoryType; CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; ConstructorExpression = __webpack_require__(369).ConstructorExpression; } function UnresolvedIdentifier(id) { Section.call(this); this.id = id; this.resolved = null; return this; } UnresolvedIdentifier.prototype = Object.create(Section.prototype); UnresolvedIdentifier.prototype.constructor = UnresolvedIdentifier; Object.defineProperty(UnresolvedIdentifier.prototype, "name", { get : function() { return this.id.name; } }); UnresolvedIdentifier.prototype.toString = function() { return this.id.name; }; UnresolvedIdentifier.prototype.toDialect = function(writer) { try { this.resolve(writer.context, false, false); } catch(e) { } if(this.resolved!=null) this.resolved.toDialect(writer); else writer.append(this.id.name); }; UnresolvedIdentifier.prototype.check = function(context) { return this.resolveAndCheck(context, false); }; UnresolvedIdentifier.prototype.checkMember = function(context) { return this.resolveAndCheck(context, true); }; UnresolvedIdentifier.prototype.interpret = function(context) { if(this.resolved==null) { this.resolveAndCheck(context, false); } return this.resolved.interpret(context); }; UnresolvedIdentifier.prototype.resolveAndCheck = function(context, forMember) { this.resolve(context, forMember); return this.resolved ? this.resolved.check(context) : VoidType.instance; }; UnresolvedIdentifier.prototype.resolve = function(context, forMember, updateSelectorParent) { if(updateSelectorParent) this.resolved = null; if(this.resolved==null) { // ignore resolution problems during resolution var listener = context.problemListener; try { context.problemListener = new ProblemListener(); this.resolved = this.doResolve(context, forMember, updateSelectorParent); } finally { // restore listener context.problemListener = listener; } } if(this.resolved==null) context.problemListener.reportUnknownIdentifier(this.id); return this.resolved; }; UnresolvedIdentifier.prototype.doResolve = function(context, forMember, updateSelectorParent) { var resolved = this.resolveSymbol(context); if(resolved) return resolved; resolved = this.resolveTypeOrConstructor(context, forMember); if(resolved) return resolved; resolved = this.resolveMethodCall(context, updateSelectorParent); if(resolved) return resolved; resolved = this.resolveInstance(context); return resolved; }; UnresolvedIdentifier.prototype.resolveTypeOrConstructor = function(context, forMember) { // is first char uppercase? if (this.id.name[0].toUpperCase() != this.id.name[0]) return null; if (forMember) { return this.resolveType(context); } else { return this.resolveConstructor(context); } }; UnresolvedIdentifier.prototype.resolveInstance = function(context) { try { var id = new InstanceExpression(this.id); id.check(context); return id; } catch(e) { if(e instanceof PromptoError) { return null; } else { throw e; } } }; UnresolvedIdentifier.prototype.resolveMethodCall = function(context, updateSelectorParent) { if(this.id.dialect!=Dialect.E) return null; try { var selector = new MethodSelector(null, this.id); var call = new MethodCall(selector); call.check(context, updateSelectorParent); return call; } catch(e) { if(e instanceof PromptoError) { return null; } else { throw e; } } }; UnresolvedIdentifier.prototype.resolveConstructor = function(context) { try { var method = new ConstructorExpression(new CategoryType(this.id), null, null, true); method.check(context); return method; } catch(e) { if(e instanceof PromptoError) { return null; } else { throw e; } } }; UnresolvedIdentifier.prototype.resolveType = function(context) { var decl = context.getRegisteredDeclaration(this.name); if(decl instanceof EnumeratedCategoryDeclaration) { return new TypeExpression(new EnumeratedCategoryType(this.id)); } else if(decl instanceof CategoryDeclaration) { return new TypeExpression(new CategoryType(this.id)); } else if(decl instanceof EnumeratedNativeDeclaration) { return new TypeExpression(decl.getType(context)); } else { var allTypes = NativeType.getAll(); for(var i=0;i 0)) return false; try { finder = new MethodFinder(writer.context, this); var declaration = finder.findMethod(false); /* if method is a reference, need to prefix with invoke */ return declaration instanceof AbstractMethodDeclaration || declaration.closureOf !== null; } catch(e) { // ok } return false; } MethodCall.prototype.toString = function() { return this.selector.toString() + " " + (this.assignments!==null ? this.assignments.toString() : ""); }; MethodCall.prototype.check = function(context, updateSelectorParent) { var finder = new MethodFinder(context, this); var declaration = finder.findMethod(false); if(!declaration) { context.problemListener.reportUnknownMethod(this.selector.id); return VoidType.instance; } if(updateSelectorParent && declaration.memberOf && !this.selector.parent) this.selector.parent = new ThisExpression(); var local = this.isLocalClosure(context) ? context : this.selector.newLocalCheckContext(context, declaration); return this.checkDeclaration(declaration, context, local); }; MethodCall.prototype.isLocalClosure = function(context) { if (this.selector.parent !== null) { return false; } var decl = context.getLocalDeclaration(this.selector.name) return decl instanceof MethodDeclarationMap; }; MethodCall.prototype.checkDeclaration = function(declaration, parent, local) { if(declaration instanceof ConcreteMethodDeclaration && declaration.mustBeCheckedInCallContext(parent)) { return this.fullCheck(declaration, parent, local); } else { return this.lightCheck(declaration, local); } }; MethodCall.prototype.lightCheck = function(declaration, local) { declaration.registerArguments(local); return declaration.check(local, false); }; MethodCall.prototype.fullCheck = function(declaration, parent, local) { try { var assignments = this.makeAssignments(parent, declaration); declaration.registerArguments(local); assignments.forEach(function(assignment) { var expression = assignment.resolve(local, declaration, true); var value = assignment.argument.checkValue(parent, expression); local.setValue(assignment.id, value); }); return declaration.check(local, false); } catch (e) { if(e instanceof PromptoError) { throw new SyntaxError(e.message); } } }; MethodCall.prototype.declare = function(transpiler) { if (this.assignments != null) this.assignments.declare(transpiler); var finder = new MethodFinder(transpiler.context, this); var declarations = finder.findCompatibleMethods(false, true); var first = declarations.size===1 ? declarations.values().next().value : null; if(declarations.size===1 && first instanceof BuiltInMethodDeclaration) { if(first.declareCall) first.declareCall(transpiler); } else { if(!this.isLocalClosure(transpiler.context)) { declarations.forEach(function(declaration) { var local = this.selector.newLocalCheckContext(transpiler.context, declaration); this.declareDeclaration(transpiler, declaration, local); }, this); } if(declarations.size>1 && !this.dispatcher) { var declaration = finder.findMethod(false); var sorted = finder.sortMostSpecificFirst(declarations); this.dispatcher = new DispatchMethodDeclaration(transpiler.context, this, declaration, sorted); transpiler.declare(this.dispatcher); } } }; MethodCall.prototype.declareDeclaration = function(transpiler, declaration, local) { if(declaration instanceof ConcreteMethodDeclaration && declaration.mustBeCheckedInCallContext(transpiler.context)) { this.fullDeclareDeclaration(declaration, transpiler, local); } else { this.lightDeclareDeclaration(declaration, transpiler, local); } }; MethodCall.prototype.lightDeclareDeclaration = function(declaration, transpiler, local) { transpiler = transpiler.copyTranspiler(local); declaration.declare(transpiler); }; var fullDeclareCounter = 0; MethodCall.prototype.fullDeclareDeclaration = function(declaration, transpiler, local) { if(!this.fullSelector) { var assignments = this.makeAssignments(transpiler.context, declaration); declaration.registerArguments(local); assignments.forEach(function(assignment) { var expression = assignment.resolve(local, declaration, true); var value = assignment.argument.checkValue(transpiler.context, expression); local.setValue(assignment.id, value); }); transpiler = transpiler.copyTranspiler(local); this.fullSelector = this.selector.newFullSelector(++fullDeclareCounter); declaration.fullDeclare(transpiler, this.fullSelector.id); } }; MethodCall.prototype.transpile = function(transpiler) { var finder = new MethodFinder(transpiler.context, this); var declarations = finder.findCompatibleMethods(false, true); if (declarations.size === 1) { var first = declarations.values().next().value; this.transpileSingle(transpiler, first, false); } else this.transpileMultiple(transpiler, declarations); }; MethodCall.prototype.transpileMultiple = function(transpiler, declarations) { var name = this.dispatcher.getTranspiledName(transpiler.context); var parent = this.selector.resolveParent(transpiler.context); var first = declarations.values().next().value; if(parent==null && first.memberOf && transpiler.context.parent instanceof InstanceContext) parent = new ThisExpression(); var selector = new MethodSelector(parent, new Identifier(name)); selector.transpile(transpiler); this.transpileAssignments(transpiler, this.dispatcher); }; MethodCall.prototype.transpileSingle = function(transpiler, declaration, allowDerived) { if (declaration instanceof BuiltInMethodDeclaration) this.transpileBuiltin(transpiler, declaration); else { this.transpileSelector(transpiler, declaration); this.transpileAssignments(transpiler, declaration, allowDerived); } }; MethodCall.prototype.transpileBuiltin = function(transpiler, declaration) { var parent = this.selector.resolveParent(transpiler.context); parent.transpile(transpiler); transpiler.append("."); declaration.transpileCall(transpiler, this.assignments); }; MethodCall.prototype.transpileSelector = function(transpiler, declaration) { var selector = this.fullSelector || this.selector; var parent = selector.resolveParent(transpiler.context); if (parent == null && declaration.memberOf && transpiler.context.parent instanceof InstanceContext) parent = new ThisExpression(); var name = null; if(this.variableName) name = this.variableName; else if(this.fullSelector) name = this.fullSelector.name; else name = declaration.getTranspiledName(transpiler.context); selector = new MethodSelector(parent, new Identifier(name)); selector.transpile(transpiler); }; MethodCall.prototype.transpileAssignments = function(transpiler, declaration, allowDerived) { var assignments = this.makeAssignments(transpiler.context, declaration); assignments = assignments.filter(function(assignment) { return !(assignment.argument instanceof CodeArgument); }); if(assignments.length > 0) { transpiler.append("("); assignments.forEach(function (assignment) { var argument = assignment.argument; var expression = assignment.resolve(transpiler.context, declaration, false, allowDerived); argument.transpileCall(transpiler, expression); transpiler.append(", "); }); transpiler.trimLast(2); transpiler.append(")"); } else transpiler.append("()"); }; MethodCall.prototype.makeAssignments = function(context, declaration) { return (this.assignments || new ArgumentAssignmentList()).makeAssignments(context, declaration); }; MethodCall.prototype.interpret = function(context) { var declaration = this.findDeclaration(context); var local = this.selector.newLocalContext(context, declaration); declaration.registerArguments(local); var assignments = this.makeAssignments(context, declaration); assignments.forEach(function(assignment) { var expression = assignment.resolve(local, declaration, true); var argument = assignment.argument; var value = argument.checkValue(context, expression); if(value!=null && argument.mutable && !value.mutable) throw new NotMutableError(); local.setValue(assignment.id, value); }); return declaration.interpret(local, true); }; MethodCall.prototype.interpretAssert = function(context, testMethodDeclaration) { var value = this.interpret(context); if(value instanceof BooleanValue) return value.value; else { var expected = this.getExpected(context, this.dialect); throw new SyntaxError("Cannot test '" + expected + "'"); } }; MethodCall.prototype.getExpected = function(context, dialect, escapeMode) { var writer = new CodeWriter(this.dialect, context); writer.escapeMode = escapeMode; this.toDialect(writer); return writer.toString(); }; MethodCall.prototype.transpileFound = function(transpiler, dialect) { transpiler.append("''"); }; MethodCall.prototype.findDeclaration = function(context) { // look for method as value try { var o = context.getValue(this.selector.id); if(o instanceof ClosureValue) { return new ClosureDeclaration(o); } } catch (e) { if(!(e instanceof PromptoError)) { throw e; } } // look for declared method var finder = new MethodFinder(context,this); return finder.findMethod(true); }; exports.MethodCall = MethodCall; /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { var BaseStatement = __webpack_require__(97).BaseStatement; function SimpleStatement() { BaseStatement.call(this); return this; } SimpleStatement.prototype = Object.create(BaseStatement.prototype); SimpleStatement.prototype.constructor = SimpleStatement; SimpleStatement.prototype.isSimple = function() { return true; }; exports.SimpleStatement = SimpleStatement; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { var Section = __webpack_require__(61).Section; function BaseStatement() { Section.call(this); return this; } BaseStatement.prototype = Object.create(Section.prototype); BaseStatement.prototype.constructor = BaseStatement; BaseStatement.prototype.canReturn = function() { return false; }; BaseStatement.prototype.isSimple = function() { return false; }; BaseStatement.prototype.transpile = function(transpiler) { throw new Error("Transpile not implemented by " + this.constructor.name); }; BaseStatement.prototype.declare = function(transpiler) { throw new Error("Declare not implemented by " + this.constructor.name); }; BaseStatement.prototype.locateSectionAtLine = function(line) { return this; }; exports.BaseStatement = BaseStatement; /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { var PromptoError = __webpack_require__(64).PromptoError; var CategoryType = null; var Score = __webpack_require__(99).Score; exports.resolve = function() { CategoryType = __webpack_require__(93).CategoryType; } function MethodFinder(context, methodCall) { this.context = context; this.methodCall = methodCall; return this; } MethodFinder.prototype.findCompatibleMethods = function(checkInstance, allowDerived) { var candidates = this.methodCall.selector.getCandidates(this.context, checkInstance); if(candidates.size==0) this.context.problemListener.reportUnknownMethod(this.methodCall.selector.id); return this.filterCompatible(candidates, checkInstance, allowDerived); }; MethodFinder.prototype.findMethod = function(checkInstance) { var compatibles = this.findCompatibleMethods(checkInstance, false); switch(compatibles.size) { case 0: this.context.problemListener.reportNoMatchingPrototype(this.methodCall); return null; case 1: return compatibles.values().next().value; default: return this.findMostSpecific(compatibles, checkInstance); } }; MethodFinder.prototype.findMostSpecific = function(candidates, checkInstance) { var candidate = null; var ambiguous = []; candidates.forEach(function(c) { if(candidate==null) candidate = c; else { var score = this.scoreMostSpecific(candidate, c, checkInstance); switch(score) { case Score.WORSE: candidate = c; ambiguous = []; break; case Score.BETTER: break; case Score.SIMILAR: ambiguous.push(c); break; } } }, this); if(ambiguous.length>0) { throw new SyntaxError("Too many prototypes!"); // TODO refine } return candidate; } MethodFinder.prototype.sortMostSpecificFirst = function(declarations) { var self = this; declarations = Array.from(declarations); // console.error("sorting:"+ declarations.map(function(decl) { return decl.getProto(); }).join(",")); declarations.sort(function(d1, d2) { // console.error( d1.getProto() + "/" + d2.getProto() ); var score = self.scoreMostSpecific(d2, d1, false, true); // console.error( "-> " + score.name ); return score.value; }); // console.error("sorted:"+ declarations.map(function(decl) { return decl.getProto(); }).join(",")); return declarations; }; MethodFinder.prototype.scoreMostSpecific = function(decl1, decl2, checkInstance, allowDerived) { try { var ctx1 = this.context.newLocalContext(); decl1.registerArguments(ctx1); var ctx2 = this.context.newLocalContext(); decl2.registerArguments(ctx2); var ass1 = this.methodCall.makeAssignments(this.context, decl1); var ass2 = this.methodCall.makeAssignments(this.context, decl2); for(var i=0;i0) { return this.tokens.shift(); } this.interpret(this.nextLexerToken()); return this.nextToken(); }; EIndentingLexer.prototype.interpret = function(token) { switch(token.type) { case ELexer.EOF: this.interpretEOF(token); break; case ELexer.LF_TAB: this.interpretLFTAB(token); break; default: this.interpretAnyToken(token); } }; EIndentingLexer.prototype.interpretEOF = function(eof) { // gracefully handle missing dedents while(this.indents.length>1) { this.tokens.push(this.deriveToken(eof, ELexer.DEDENT)); this.tokens.push(this.deriveToken(eof, ELexer.LF)); this.wasLF = true; this.indents.pop(); } // gracefully handle missing lf if(!this.wasLF && this.addLF) { this.tokens.push(this.deriveToken(eof, ELexer.LF)); } this.tokens.push(eof); }; EIndentingLexer.prototype.interpretLFTAB = function(lftab) { // count TABs following LF var indentCount = this.countIndents(lftab.text); var next = this.nextLexerToken(); // if this was an empty line, simply skip it if(next.type===ELexer.EOF || next.type===ELexer.LF_TAB) { this.tokens.push(this.deriveToken(lftab, ELexer.LF)); this.interpret(next); } else if(indentCount===this.indents[this.indents.length-1]) { this.tokens.push(this.deriveToken(lftab, ELexer.LF)); this.interpret(next); } else if(indentCount>this.indents[this.indents.length-1]) { this.tokens.push(this.deriveToken(lftab, ELexer.LF)); this.tokens.push(this.deriveToken(lftab, ELexer.INDENT)); this.indents.push(indentCount); this.interpret(next); } else { while(this.indents.length>1 && indentCountthis.indents[this.indents.length-1]) { // TODO, fire an error through token } this.interpret(next); /*jshint noempty:true*/ } }; EIndentingLexer.prototype.deriveToken = function(token, type) { var res = token.clone(); res.type = type; if(token.type === ELexer.EOF) res._text = "" return res; }; EIndentingLexer.prototype.countIndents = function(text) { var count = 0; for(var i=0;i\t>\u0004", "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", "\u00c8\t\u00c8\u0003\u0002\u0003\u0002\u0007\u0002\u0194\n\u0002\f\u0002", "\u000e\u0002\u0197\u000b\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003", "\u0004\u0005\u0004\u019d\n\u0004\u0003\u0004\u0003\u0004\u0003\u0005", "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006", "\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0007\u0007", "\u01ad\n\u0007\f\u0007\u000e\u0007\u01b0\u000b\u0007\u0003\u0007\u0003", "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0007\u0007\u01b8", "\n\u0007\f\u0007\u000e\u0007\u01bb\u000b\u0007\u0005\u0007\u01bd\n\u0007", "\u0003\b\u0007\b\u01c0\n\b\f\b\u000e\b\u01c3\u000b\b\u0003\t\u0003\t", "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003\n\u0003", "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003", "\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003", "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003\r\u0003", "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\u000e", "\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e", "\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011", "\u0005\u0011\u01fa\n\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003", "\u0013\u0003\u0013\u0005\u0013\u0201\n\u0013\u0003\u0014\u0003\u0014", "\u0005\u0014\u0205\n\u0014\u0003\u0015\u0003\u0015\u0007\u0015\u0209", "\n\u0015\f\u0015\u000e\u0015\u020c\u000b\u0015\u0005\u0015\u020e\n\u0015", "\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0005\u0016\u0214\n", "\u0016\u0003\u0017\u0003\u0017\u0007\u0017\u0218\n\u0017\f\u0017\u000e", "\u0017\u021b\u000b\u0017\u0005\u0017\u021d\n\u0017\u0003\u0017\u0003", "\u0017\u0003\u0018\u0003\u0018\u0005\u0018\u0223\n\u0018\u0003\u0019", "\u0003\u0019\u0007\u0019\u0227\n\u0019\f\u0019\u000e\u0019\u022a\u000b", "\u0019\u0005\u0019\u022c\n\u0019\u0003\u0019\u0003\u0019\u0003\u001a", "\u0003\u001a\u0005\u001a\u0232\n\u001a\u0003\u001b\u0003\u001b\u0003", "\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003", "\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0005 \u0242", "\n \u0003!\u0003!\u0003\"\u0003\"\u0003#\u0003#\u0003$\u0003$\u0003", "%\u0003%\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003)", "\u0003)\u0003)\u0003*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003", ",\u0003,\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003/\u0003/\u0003", "/\u00030\u00030\u00031\u00031\u00031\u00032\u00032\u00032\u00033\u0003", "3\u00033\u00033\u00033\u00033\u00033\u00033\u00034\u00034\u00034\u0003", "4\u00034\u00034\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u0003", "5\u00035\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003", "7\u00037\u00037\u00037\u00037\u00037\u00037\u00037\u00038\u00038\u0003", "8\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u0003:\u0003:\u0003", ":\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003;\u0003;\u0003;\u0003", ";\u0003;\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003", "<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003>\u0003", ">\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003", "?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003A\u0003A\u0003", "A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003B\u0003B\u0003B\u0003C\u0003", "C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003", "D\u0003D\u0003D\u0003D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", "F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003G\u0003", "G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003", "I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003K\u0003K\u0003", "K\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", "L\u0003L\u0003L\u0005L\u0320\nL\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", "O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003", "O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003S\u0003", "S\u0003S\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003", "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003V\u0003", "V\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", "W\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003", "Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", "Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003", "\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003]\u0003]\u0003", "]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003", "]\u0005]\u039f\n]\u0003^\u0003^\u0003^\u0003_\u0003_\u0003_\u0003_\u0003", "_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003", "a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003", "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003", "d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003", "e\u0003e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003f\u0003f\u0003f\u0003", "f\u0003f\u0003f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", "g\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0003i\u0003", "i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003", "j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0003", "l\u0003l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003", "p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003", "r\u0003r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003", "t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003", "u\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003w\u0003w\u0003", "w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003x\u0003x\u0003x\u0003x\u0003", "x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003", "y\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003", "{\u0003{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003}\u0003", "}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", "}\u0005}\u0471\n}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003\u007f\u0003", "\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003", "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0082\u0003", "\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", "\u0082\u0003\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003", "\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003", "\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003", "\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003\u0086\u0003\u0086\u0003", "\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", "\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003", "\u0088\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u008a\u0003", "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003", "\u008a\u0003\u008a\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", "\u008b\u0003\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003\u008c\u0003", "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", "\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003", "\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003", "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091\u0003", "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0092\u0003", "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", "\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003", "\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", "\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003\u0095\u0003", "\u0095\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", "\u0096\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003", "\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003", "\u0099\u0003\u0099\u0003\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003", "\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003", "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003", "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", "\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009e\u0003", "\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009f\u0003\u009f\u0003", "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003\u00a0\u0003", "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003\u00a1\u0003", "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003\u00a2\u0003", "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0005\u00a2\u0567\n\u00a2", "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u056c\n\u00a3\u0003", "\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003", "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003", "\u00a4\u0003\u00a4\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", "\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6\u0007\u00a6\u058a\n\u00a6", "\f\u00a6\u000e\u00a6\u058d\u000b\u00a6\u0003\u00a7\u0003\u00a7\u0007", "\u00a7\u0591\n\u00a7\f\u00a7\u000e\u00a7\u0594\u000b\u00a7\u0003\u00a8", "\u0003\u00a8\u0007\u00a8\u0598\n\u00a8\f\u00a8\u000e\u00a8\u059b\u000b", "\u00a8\u0003\u00a9\u0003\u00a9\u0007\u00a9\u059f\n\u00a9\f\u00a9\u000e", "\u00a9\u05a2\u000b\u00a9\u0003\u00aa\u0003\u00aa\u0006\u00aa\u05a6\n", "\u00aa\r\u00aa\u000e\u00aa\u05a7\u0003\u00ab\u0003\u00ab\u0006\u00ab", "\u05ac\n\u00ab\r\u00ab\u000e\u00ab\u05ad\u0003\u00ac\u0003\u00ac\u0005", "\u00ac\u05b2\n\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003\u00ae", "\u0003\u00af\u0003\u00af\u0003\u00af\u0007\u00af\u05bb\n\u00af\f\u00af", "\u000e\u00af\u05be\u000b\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003", "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003", "\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003", "\u00b4\u0007\u00b4\u05e2\n\u00b4\f\u00b4\u000e\u00b4\u05e5\u000b\u00b4", "\u0005\u00b4\u05e7\n\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0006", "\u00b5\u05ec\n\u00b5\r\u00b5\u000e\u00b5\u05ed\u0003\u00b5\u0005\u00b5", "\u05f1\n\u00b5\u0003\u00b6\u0003\u00b6\u0005\u00b6\u05f5\n\u00b6\u0003", "\u00b6\u0006\u00b6\u05f8\n\u00b6\r\u00b6\u000e\u00b6\u05f9\u0003\u00b7", "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7\u0600\n\u00b7\u0003", "\u00b7\u0006\u00b7\u0603\n\u00b7\r\u00b7\u000e\u00b7\u0604\u0003\u00b8", "\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0006\u00b9", "\u060d\n\u00b9\r\u00b9\u000e\u00b9\u060e\u0005\u00b9\u0611\n\u00b9\u0003", "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u0618", "\n\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb", "\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", "\u0003\u00bc\u0005\u00bc\u062c\n\u00bc\u0005\u00bc\u062e\n\u00bc\u0005", "\u00bc\u0630\n\u00bc\u0005\u00bc\u0632\n\u00bc\u0003\u00bd\u0003\u00bd", "\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", "\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", "\u0003\u00bf\u0003\u00bf\u0005\u00bf\u064a\n\u00bf\u0003\u00c0\u0003", "\u00c0\u0003\u00c0\u0005\u00c0\u064f\n\u00c0\u0003\u00c0\u0005\u00c0", "\u0652\n\u00c0\u0003\u00c0\u0005\u00c0\u0655\n\u00c0\u0003\u00c0\u0003", "\u00c0\u0003\u00c0\u0005\u00c0\u065a\n\u00c0\u0003\u00c0\u0005\u00c0", "\u065d\n\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0005\u00c0\u0662", "\n\u00c0\u0003\u00c0\u0003\u00c0\u0005\u00c0\u0666\n\u00c0\u0003\u00c0", "\u0003\u00c0\u0003\u00c1\u0005\u00c1\u066b\n\u00c1\u0003\u00c1\u0003", "\u00c1\u0003\u00c1\u0003\u00c2\u0005\u00c2\u0671\n\u00c2\u0003\u00c2", "\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0005\u00c3\u0677\n\u00c3\u0003", "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0005\u00c4\u067d\n\u00c4", "\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0005\u00c5\u0683\n", "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0005\u00c6\u0689", "\n\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0007\u00c6\u068e\n\u00c6", "\f\u00c6\u000e\u00c6\u0691\u000b\u00c6\u0003\u00c6\u0003\u00c6\u0005", "\u00c6\u0695\n\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7", "\u0003\u00c7\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", "\u0005\u00c8\u06a7\n\u00c8\u0005\u00c8\u06a9\n\u00c8\u0003\u00c8\u0003", "\u00c8\u0004\u01ae\u01c1\u0002\u00c9\u0003\u0005\u0005\u0006\u0007\u0007", "\t\b\u000b\t\r\n\u000f\u0002\u0011\u000b\u0013\f\u0015\r\u0017\u000e", "\u0019\u000f\u001b\u0010\u001d\u0011\u001f\u0012!\u0013#\u0014%\u0015", "\'\u0016)\u0017+\u0018-\u0019/\u001a1\u001b3\u001c5\u001d7\u001e9\u001f", "; =!?\"A#C$E%G&I\'K(M)O*Q+S,U-W.Y/[0]1_2a3c4e5g6i7k8m9o:q;sy?{", "@}A\u007fB\u0081C\u0083D\u0085E\u0087F\u0089G\u008bH\u008dI\u008fJ\u0091", "K\u0093L\u0095M\u0097N\u0099O\u009bP\u009dQ\u009fR\u00a1S\u00a3T\u00a5", "U\u00a7V\u00a9W\u00abX\u00adY\u00afZ\u00b1[\u00b3\\\u00b5]\u00b7^\u00b9", "_\u00bb`\u00bda\u00bfb\u00c1c\u00c3d\u00c5e\u00c7f\u00c9g\u00cbh\u00cd", "i\u00cfj\u00d1k\u00d3l\u00d5m\u00d7n\u00d9o\u00dbp\u00ddq\u00dfr\u00e1", "s\u00e3t\u00e5u\u00e7v\u00e9w\u00ebx\u00edy\u00efz\u00f1{\u00f3|\u00f5", "}\u00f7~\u00f9\u007f\u00fb\u0080\u00fd\u0081\u00ff\u0082\u0101\u0083", "\u0103\u0084\u0105\u0085\u0107\u0086\u0109\u0087\u010b\u0088\u010d\u0089", "\u010f\u008a\u0111\u008b\u0113\u008c\u0115\u008d\u0117\u008e\u0119\u008f", "\u011b\u0090\u011d\u0091\u011f\u0092\u0121\u0093\u0123\u0094\u0125\u0095", "\u0127\u0096\u0129\u0097\u012b\u0098\u012d\u0099\u012f\u009a\u0131\u009b", "\u0133\u009c\u0135\u009d\u0137\u009e\u0139\u009f\u013b\u00a0\u013d\u00a1", "\u013f\u00a2\u0141\u00a3\u0143\u00a4\u0145\u00a5\u0147\u00a6\u0149\u00a7", "\u014b\u00a8\u014d\u00a9\u014f\u00aa\u0151\u00ab\u0153\u00ac\u0155\u00ad", "\u0157\u0002\u0159\u0002\u015b\u0002\u015d\u00ae\u015f\u00af\u0161\u00b0", "\u0163\u00b1\u0165\u00b2\u0167\u0002\u0169\u0002\u016b\u0002\u016d\u0002", "\u016f\u0002\u0171\u0002\u0173\u00b3\u0175\u00b4\u0177\u0002\u0179\u00b5", "\u017b\u0002\u017d\u0002\u017f\u00b6\u0181\u0002\u0183\u0002\u0185\u0002", "\u0187\u0002\u0189\u0002\u018b\u0002\u018d\u0002\u018f\u00b7\u0003\u0002", "\u0012\u0004\u0002\u000b\u000b\"\"\u0004\u0002\f\f\u000f\u000f\u0006", "\u0002>>@@}}\u007f\u007f\u0006\u0002\f\f\u000f\u000f))^^\u0003\u0002", "C\\\u0005\u00022;C\\aa\u0003\u0002c|\u0006\u00022;C\\aac|\u0005\u0002", "C\\aac|\u0003\u00022;\u0006\u0002\f\f\u000f\u000f$$^^\u0003\u00023;", "\u0004\u0002GGgg\u0004\u0002--//\u0005\u00022;CHch\n\u0002$$))^^ddh", "hppttvv\u0002\u06dd\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005", "\u0003\u0002\u0002\u0002\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t", "\u0003\u0002\u0002\u0002\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r", "\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013", "\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017", "\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002\u001b", "\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002\u001f", "\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002#\u0003", "\u0002\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002\'\u0003\u0002", "\u0002\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003\u0002\u0002", "\u0002\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002\u0002\u0002", "\u00021\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002\u0002\u0002", "5\u0003\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002\u00029\u0003", "\u0002\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002=\u0003\u0002", "\u0002\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003\u0002\u0002", "\u0002\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002\u0002\u0002", "\u0002G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002\u0002\u0002", "K\u0003\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002\u0002O\u0003", "\u0002\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002S\u0003\u0002", "\u0002\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003\u0002\u0002", "\u0002\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002\u0002\u0002", "\u0002]\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002\u0002\u0002", "a\u0003\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002\u0002e\u0003", "\u0002\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002i\u0003\u0002", "\u0002\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003\u0002\u0002", "\u0002\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002\u0002\u0002", "\u0002s\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002\u0002\u0002", "w\u0003\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002\u0002{\u0003", "\u0002\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002\u007f\u0003", "\u0002\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002\u0083\u0003", "\u0002\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002\u0087\u0003", "\u0002\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002\u008b\u0003", "\u0002\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002\u008f\u0003", "\u0002\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002\u0093\u0003", "\u0002\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002\u0097\u0003", "\u0002\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002\u009b\u0003", "\u0002\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002\u009f\u0003", "\u0002\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002\u00a3\u0003", "\u0002\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002\u00a7\u0003", "\u0002\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002\u00ab\u0003", "\u0002\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002\u00af\u0003", "\u0002\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002\u00b3\u0003", "\u0002\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002\u00b7\u0003", "\u0002\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002\u00bb\u0003", "\u0002\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002\u00bf\u0003", "\u0002\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002\u00c3\u0003", "\u0002\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002\u00c7\u0003", "\u0002\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002\u00cb\u0003", "\u0002\u0002\u0002\u0002\u00cd\u0003\u0002\u0002\u0002\u0002\u00cf\u0003", "\u0002\u0002\u0002\u0002\u00d1\u0003\u0002\u0002\u0002\u0002\u00d3\u0003", "\u0002\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002\u00d7\u0003", "\u0002\u0002\u0002\u0002\u00d9\u0003\u0002\u0002\u0002\u0002\u00db\u0003", "\u0002\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002\u00df\u0003", "\u0002\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002\u00e3\u0003", "\u0002\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002\u00e7\u0003", "\u0002\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002\u00eb\u0003", "\u0002\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002\u00ef\u0003", "\u0002\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002\u00f3\u0003", "\u0002\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002\u00f7\u0003", "\u0002\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002\u00fb\u0003", "\u0002\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002\u00ff\u0003", "\u0002\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002\u0103\u0003", "\u0002\u0002\u0002\u0002\u0105\u0003\u0002\u0002\u0002\u0002\u0107\u0003", "\u0002\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002\u010b\u0003", "\u0002\u0002\u0002\u0002\u010d\u0003\u0002\u0002\u0002\u0002\u010f\u0003", "\u0002\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002\u0113\u0003", "\u0002\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0002\u0117\u0003", "\u0002\u0002\u0002\u0002\u0119\u0003\u0002\u0002\u0002\u0002\u011b\u0003", "\u0002\u0002\u0002\u0002\u011d\u0003\u0002\u0002\u0002\u0002\u011f\u0003", "\u0002\u0002\u0002\u0002\u0121\u0003\u0002\u0002\u0002\u0002\u0123\u0003", "\u0002\u0002\u0002\u0002\u0125\u0003\u0002\u0002\u0002\u0002\u0127\u0003", "\u0002\u0002\u0002\u0002\u0129\u0003\u0002\u0002\u0002\u0002\u012b\u0003", "\u0002\u0002\u0002\u0002\u012d\u0003\u0002\u0002\u0002\u0002\u012f\u0003", "\u0002\u0002\u0002\u0002\u0131\u0003\u0002\u0002\u0002\u0002\u0133\u0003", "\u0002\u0002\u0002\u0002\u0135\u0003\u0002\u0002\u0002\u0002\u0137\u0003", "\u0002\u0002\u0002\u0002\u0139\u0003\u0002\u0002\u0002\u0002\u013b\u0003", "\u0002\u0002\u0002\u0002\u013d\u0003\u0002\u0002\u0002\u0002\u013f\u0003", "\u0002\u0002\u0002\u0002\u0141\u0003\u0002\u0002\u0002\u0002\u0143\u0003", "\u0002\u0002\u0002\u0002\u0145\u0003\u0002\u0002\u0002\u0002\u0147\u0003", "\u0002\u0002\u0002\u0002\u0149\u0003\u0002\u0002\u0002\u0002\u014b\u0003", "\u0002\u0002\u0002\u0002\u014d\u0003\u0002\u0002\u0002\u0002\u014f\u0003", "\u0002\u0002\u0002\u0002\u0151\u0003\u0002\u0002\u0002\u0002\u0153\u0003", "\u0002\u0002\u0002\u0002\u0155\u0003\u0002\u0002\u0002\u0002\u015d\u0003", "\u0002\u0002\u0002\u0002\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003", "\u0002\u0002\u0002\u0002\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003", "\u0002\u0002\u0002\u0002\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003", "\u0002\u0002\u0002\u0002\u0179\u0003\u0002\u0002\u0002\u0002\u017f\u0003", "\u0002\u0002\u0002\u0002\u018f\u0003\u0002\u0002\u0002\u0003\u0191\u0003", "\u0002\u0002\u0002\u0005\u0198\u0003\u0002\u0002\u0002\u0007\u019c\u0003", "\u0002\u0002\u0002\t\u01a0\u0003\u0002\u0002\u0002\u000b\u01a4\u0003", "\u0002\u0002\u0002\r\u01bc\u0003\u0002\u0002\u0002\u000f\u01c1\u0003", "\u0002\u0002\u0002\u0011\u01c4\u0003\u0002\u0002\u0002\u0013\u01ca\u0003", "\u0002\u0002\u0002\u0015\u01ce\u0003\u0002\u0002\u0002\u0017\u01d7\u0003", "\u0002\u0002\u0002\u0019\u01e0\u0003\u0002\u0002\u0002\u001b\u01ec\u0003", "\u0002\u0002\u0002\u001d\u01f3\u0003\u0002\u0002\u0002\u001f\u01f5\u0003", "\u0002\u0002\u0002!\u01f7\u0003\u0002\u0002\u0002#\u01fb\u0003\u0002", "\u0002\u0002%\u01fe\u0003\u0002\u0002\u0002\'\u0202\u0003\u0002\u0002", "\u0002)\u020d\u0003\u0002\u0002\u0002+\u0211\u0003\u0002\u0002\u0002", "-\u021c\u0003\u0002\u0002\u0002/\u0220\u0003\u0002\u0002\u00021\u022b", "\u0003\u0002\u0002\u00023\u022f\u0003\u0002\u0002\u00025\u0233\u0003", "\u0002\u0002\u00027\u0235\u0003\u0002\u0002\u00029\u0237\u0003\u0002", "\u0002\u0002;\u023a\u0003\u0002\u0002\u0002=\u023c\u0003\u0002\u0002", "\u0002?\u023f\u0003\u0002\u0002\u0002A\u0243\u0003\u0002\u0002\u0002", "C\u0245\u0003\u0002\u0002\u0002E\u0247\u0003\u0002\u0002\u0002G\u0249", "\u0003\u0002\u0002\u0002I\u024b\u0003\u0002\u0002\u0002K\u024d\u0003", "\u0002\u0002\u0002M\u024f\u0003\u0002\u0002\u0002O\u0252\u0003\u0002", "\u0002\u0002Q\u0254\u0003\u0002\u0002\u0002S\u0257\u0003\u0002\u0002", "\u0002U\u025a\u0003\u0002\u0002\u0002W\u025e\u0003\u0002\u0002\u0002", "Y\u0260\u0003\u0002\u0002\u0002[\u0263\u0003\u0002\u0002\u0002]\u0266", "\u0003\u0002\u0002\u0002_\u0269\u0003\u0002\u0002\u0002a\u026b\u0003", "\u0002\u0002\u0002c\u026e\u0003\u0002\u0002\u0002e\u0271\u0003\u0002", "\u0002\u0002g\u0279\u0003\u0002\u0002\u0002i\u0283\u0003\u0002\u0002", "\u0002k\u0288\u0003\u0002\u0002\u0002m\u0290\u0003\u0002\u0002\u0002", "o\u0298\u0003\u0002\u0002\u0002q\u029d\u0003\u0002\u0002\u0002s\u02a2", "\u0003\u0002\u0002\u0002u\u02ab\u0003\u0002\u0002\u0002w\u02b2\u0003", "\u0002\u0002\u0002y\u02ba\u0003\u0002\u0002\u0002{\u02c1\u0003\u0002", "\u0002\u0002}\u02c6\u0003\u0002\u0002\u0002\u007f\u02cf\u0003\u0002", "\u0002\u0002\u0081\u02d4\u0003\u0002\u0002\u0002\u0083\u02da\u0003\u0002", "\u0002\u0002\u0085\u02df\u0003\u0002\u0002\u0002\u0087\u02e8\u0003\u0002", "\u0002\u0002\u0089\u02ef\u0003\u0002\u0002\u0002\u008b\u02f4\u0003\u0002", "\u0002\u0002\u008d\u02fd\u0003\u0002\u0002\u0002\u008f\u0301\u0003\u0002", "\u0002\u0002\u0091\u0308\u0003\u0002\u0002\u0002\u0093\u030c\u0003\u0002", "\u0002\u0002\u0095\u0310\u0003\u0002\u0002\u0002\u0097\u031f\u0003\u0002", "\u0002\u0002\u0099\u0321\u0003\u0002\u0002\u0002\u009b\u0326\u0003\u0002", "\u0002\u0002\u009d\u0330\u0003\u0002\u0002\u0002\u009f\u033b\u0003\u0002", "\u0002\u0002\u00a1\u0344\u0003\u0002\u0002\u0002\u00a3\u034a\u0003\u0002", "\u0002\u0002\u00a5\u034d\u0003\u0002\u0002\u0002\u00a7\u0352\u0003\u0002", "\u0002\u0002\u00a9\u0358\u0003\u0002\u0002\u0002\u00ab\u0361\u0003\u0002", "\u0002\u0002\u00ad\u0367\u0003\u0002\u0002\u0002\u00af\u036d\u0003\u0002", "\u0002\u0002\u00b1\u0376\u0003\u0002\u0002\u0002\u00b3\u037a\u0003\u0002", "\u0002\u0002\u00b5\u0382\u0003\u0002\u0002\u0002\u00b7\u0389\u0003\u0002", "\u0002\u0002\u00b9\u039e\u0003\u0002\u0002\u0002\u00bb\u03a0\u0003\u0002", "\u0002\u0002\u00bd\u03a3\u0003\u0002\u0002\u0002\u00bf\u03a9\u0003\u0002", "\u0002\u0002\u00c1\u03ae\u0003\u0002\u0002\u0002\u00c3\u03b3\u0003\u0002", "\u0002\u0002\u00c5\u03b8\u0003\u0002\u0002\u0002\u00c7\u03c3\u0003\u0002", "\u0002\u0002\u00c9\u03ca\u0003\u0002\u0002\u0002\u00cb\u03d2\u0003\u0002", "\u0002\u0002\u00cd\u03dc\u0003\u0002\u0002\u0002\u00cf\u03e4\u0003\u0002", "\u0002\u0002\u00d1\u03ea\u0003\u0002\u0002\u0002\u00d3\u03f3\u0003\u0002", "\u0002\u0002\u00d5\u03fb\u0003\u0002\u0002\u0002\u00d7\u0401\u0003\u0002", "\u0002\u0002\u00d9\u0405\u0003\u0002\u0002\u0002\u00db\u040a\u0003\u0002", "\u0002\u0002\u00dd\u0411\u0003\u0002\u0002\u0002\u00df\u0415\u0003\u0002", "\u0002\u0002\u00e1\u0418\u0003\u0002\u0002\u0002\u00e3\u041b\u0003\u0002", "\u0002\u0002\u00e5\u0421\u0003\u0002\u0002\u0002\u00e7\u0428\u0003\u0002", "\u0002\u0002\u00e9\u042b\u0003\u0002\u0002\u0002\u00eb\u0434\u0003\u0002", "\u0002\u0002\u00ed\u043b\u0003\u0002\u0002\u0002\u00ef\u0443\u0003\u0002", "\u0002\u0002\u00f1\u044a\u0003\u0002\u0002\u0002\u00f3\u0452\u0003\u0002", "\u0002\u0002\u00f5\u0459\u0003\u0002\u0002\u0002\u00f7\u045e\u0003\u0002", "\u0002\u0002\u00f9\u0470\u0003\u0002\u0002\u0002\u00fb\u0472\u0003\u0002", "\u0002\u0002\u00fd\u0477\u0003\u0002\u0002\u0002\u00ff\u047a\u0003\u0002", "\u0002\u0002\u0101\u047e\u0003\u0002\u0002\u0002\u0103\u0483\u0003\u0002", "\u0002\u0002\u0105\u048c\u0003\u0002\u0002\u0002\u0107\u048f\u0003\u0002", "\u0002\u0002\u0109\u0495\u0003\u0002\u0002\u0002\u010b\u049f\u0003\u0002", "\u0002\u0002\u010d\u04a4\u0003\u0002\u0002\u0002\u010f\u04aa\u0003\u0002", "\u0002\u0002\u0111\u04af\u0003\u0002\u0002\u0002\u0113\u04b9\u0003\u0002", "\u0002\u0002\u0115\u04c2\u0003\u0002\u0002\u0002\u0117\u04c9\u0003\u0002", "\u0002\u0002\u0119\u04d3\u0003\u0002\u0002\u0002\u011b\u04d8\u0003\u0002", "\u0002\u0002\u011d\u04dd\u0003\u0002\u0002\u0002\u011f\u04e4\u0003\u0002", "\u0002\u0002\u0121\u04ee\u0003\u0002\u0002\u0002\u0123\u04f5\u0003\u0002", "\u0002\u0002\u0125\u04fe\u0003\u0002\u0002\u0002\u0127\u0504\u0003\u0002", "\u0002\u0002\u0129\u050b\u0003\u0002\u0002\u0002\u012b\u0510\u0003\u0002", "\u0002\u0002\u012d\u0515\u0003\u0002\u0002\u0002\u012f\u051a\u0003\u0002", "\u0002\u0002\u0131\u0520\u0003\u0002\u0002\u0002\u0133\u0523\u0003\u0002", "\u0002\u0002\u0135\u0527\u0003\u0002\u0002\u0002\u0137\u0531\u0003\u0002", "\u0002\u0002\u0139\u0538\u0003\u0002\u0002\u0002\u013b\u053d\u0003\u0002", "\u0002\u0002\u013d\u0542\u0003\u0002\u0002\u0002\u013f\u0548\u0003\u0002", "\u0002\u0002\u0141\u054e\u0003\u0002\u0002\u0002\u0143\u0566\u0003\u0002", "\u0002\u0002\u0145\u0568\u0003\u0002\u0002\u0002\u0147\u056f\u0003\u0002", "\u0002\u0002\u0149\u057b\u0003\u0002\u0002\u0002\u014b\u0587\u0003\u0002", "\u0002\u0002\u014d\u058e\u0003\u0002\u0002\u0002\u014f\u0595\u0003\u0002", "\u0002\u0002\u0151\u059c\u0003\u0002\u0002\u0002\u0153\u05a3\u0003\u0002", "\u0002\u0002\u0155\u05a9\u0003\u0002\u0002\u0002\u0157\u05b1\u0003\u0002", "\u0002\u0002\u0159\u05b3\u0003\u0002\u0002\u0002\u015b\u05b5\u0003\u0002", "\u0002\u0002\u015d\u05b7\u0003\u0002\u0002\u0002\u015f\u05c1\u0003\u0002", "\u0002\u0002\u0161\u05d8\u0003\u0002\u0002\u0002\u0163\u05da\u0003\u0002", "\u0002\u0002\u0165\u05dc\u0003\u0002\u0002\u0002\u0167\u05e6\u0003\u0002", "\u0002\u0002\u0169\u05e8\u0003\u0002\u0002\u0002\u016b\u05f2\u0003\u0002", "\u0002\u0002\u016d\u05ff\u0003\u0002\u0002\u0002\u016f\u0606\u0003\u0002", "\u0002\u0002\u0171\u0608\u0003\u0002\u0002\u0002\u0173\u0612\u0003\u0002", "\u0002\u0002\u0175\u061b\u0003\u0002\u0002\u0002\u0177\u061f\u0003\u0002", "\u0002\u0002\u0179\u0633\u0003\u0002\u0002\u0002\u017b\u0637\u0003\u0002", "\u0002\u0002\u017d\u0649\u0003\u0002\u0002\u0002\u017f\u064b\u0003\u0002", "\u0002\u0002\u0181\u066a\u0003\u0002\u0002\u0002\u0183\u0670\u0003\u0002", "\u0002\u0002\u0185\u0676\u0003\u0002\u0002\u0002\u0187\u067c\u0003\u0002", "\u0002\u0002\u0189\u0682\u0003\u0002\u0002\u0002\u018b\u0688\u0003\u0002", "\u0002\u0002\u018d\u0698\u0003\u0002\u0002\u0002\u018f\u069b\u0003\u0002", "\u0002\u0002\u0191\u0195\u0005\u0007\u0004\u0002\u0192\u0194\t\u0002", "\u0002\u0002\u0193\u0192\u0003\u0002\u0002\u0002\u0194\u0197\u0003\u0002", "\u0002\u0002\u0195\u0193\u0003\u0002\u0002\u0002\u0195\u0196\u0003\u0002", "\u0002\u0002\u0196\u0004\u0003\u0002\u0002\u0002\u0197\u0195\u0003\u0002", "\u0002\u0002\u0198\u0199\u0007^\u0002\u0002\u0199\u019a\u0005\u0003", "\u0002\u0002\u019a\u0006\u0003\u0002\u0002\u0002\u019b\u019d\u0007\u000f", "\u0002\u0002\u019c\u019b\u0003\u0002\u0002\u0002\u019c\u019d\u0003\u0002", "\u0002\u0002\u019d\u019e\u0003\u0002\u0002\u0002\u019e\u019f\u0007\f", "\u0002\u0002\u019f\b\u0003\u0002\u0002\u0002\u01a0\u01a1\u0007\u000b", "\u0002\u0002\u01a1\u01a2\u0003\u0002\u0002\u0002\u01a2\u01a3\b\u0005", "\u0002\u0002\u01a3\n\u0003\u0002\u0002\u0002\u01a4\u01a5\u0007\"\u0002", "\u0002\u01a5\u01a6\u0003\u0002\u0002\u0002\u01a6\u01a7\b\u0006\u0002", "\u0002\u01a7\f\u0003\u0002\u0002\u0002\u01a8\u01a9\u00071\u0002\u0002", "\u01a9\u01aa\u0007,\u0002\u0002\u01aa\u01ae\u0003\u0002\u0002\u0002", "\u01ab\u01ad\u000b\u0002\u0002\u0002\u01ac\u01ab\u0003\u0002\u0002\u0002", "\u01ad\u01b0\u0003\u0002\u0002\u0002\u01ae\u01af\u0003\u0002\u0002\u0002", "\u01ae\u01ac\u0003\u0002\u0002\u0002\u01af\u01b1\u0003\u0002\u0002\u0002", "\u01b0\u01ae\u0003\u0002\u0002\u0002\u01b1\u01b2\u0007,\u0002\u0002", "\u01b2\u01bd\u00071\u0002\u0002\u01b3\u01b4\u00071\u0002\u0002\u01b4", "\u01b5\u00071\u0002\u0002\u01b5\u01b9\u0003\u0002\u0002\u0002\u01b6", "\u01b8\n\u0003\u0002\u0002\u01b7\u01b6\u0003\u0002\u0002\u0002\u01b8", "\u01bb\u0003\u0002\u0002\u0002\u01b9\u01b7\u0003\u0002\u0002\u0002\u01b9", "\u01ba\u0003\u0002\u0002\u0002\u01ba\u01bd\u0003\u0002\u0002\u0002\u01bb", "\u01b9\u0003\u0002\u0002\u0002\u01bc\u01a8\u0003\u0002\u0002\u0002\u01bc", "\u01b3\u0003\u0002\u0002\u0002\u01bd\u000e\u0003\u0002\u0002\u0002\u01be", "\u01c0\n\u0004\u0002\u0002\u01bf\u01be\u0003\u0002\u0002\u0002\u01c0", "\u01c3\u0003\u0002\u0002\u0002\u01c1\u01c2\u0003\u0002\u0002\u0002\u01c1", "\u01bf\u0003\u0002\u0002\u0002\u01c2\u0010\u0003\u0002\u0002\u0002\u01c3", "\u01c1\u0003\u0002\u0002\u0002\u01c4\u01c5\u0007L\u0002\u0002\u01c5", "\u01c6\u0007c\u0002\u0002\u01c6\u01c7\u0007x\u0002\u0002\u01c7\u01c8", "\u0007c\u0002\u0002\u01c8\u01c9\u0007<\u0002\u0002\u01c9\u0012\u0003", "\u0002\u0002\u0002\u01ca\u01cb\u0007E\u0002\u0002\u01cb\u01cc\u0007", "%\u0002\u0002\u01cc\u01cd\u0007<\u0002\u0002\u01cd\u0014\u0003\u0002", "\u0002\u0002\u01ce\u01cf\u0007R\u0002\u0002\u01cf\u01d0\u0007{\u0002", "\u0002\u01d0\u01d1\u0007v\u0002\u0002\u01d1\u01d2\u0007j\u0002\u0002", "\u01d2\u01d3\u0007q\u0002\u0002\u01d3\u01d4\u0007p\u0002\u0002\u01d4", "\u01d5\u00074\u0002\u0002\u01d5\u01d6\u0007<\u0002\u0002\u01d6\u0016", "\u0003\u0002\u0002\u0002\u01d7\u01d8\u0007R\u0002\u0002\u01d8\u01d9", "\u0007{\u0002\u0002\u01d9\u01da\u0007v\u0002\u0002\u01da\u01db\u0007", "j\u0002\u0002\u01db\u01dc\u0007q\u0002\u0002\u01dc\u01dd\u0007p\u0002", "\u0002\u01dd\u01de\u00075\u0002\u0002\u01de\u01df\u0007<\u0002\u0002", "\u01df\u0018\u0003\u0002\u0002\u0002\u01e0\u01e1\u0007L\u0002\u0002", "\u01e1\u01e2\u0007c\u0002\u0002\u01e2\u01e3\u0007x\u0002\u0002\u01e3", "\u01e4\u0007c\u0002\u0002\u01e4\u01e5\u0007U\u0002\u0002\u01e5\u01e6", "\u0007e\u0002\u0002\u01e6\u01e7\u0007t\u0002\u0002\u01e7\u01e8\u0007", "k\u0002\u0002\u01e8\u01e9\u0007r\u0002\u0002\u01e9\u01ea\u0007v\u0002", "\u0002\u01ea\u01eb\u0007<\u0002\u0002\u01eb\u001a\u0003\u0002\u0002", "\u0002\u01ec\u01ed\u0007U\u0002\u0002\u01ed\u01ee\u0007y\u0002\u0002", "\u01ee\u01ef\u0007k\u0002\u0002\u01ef\u01f0\u0007h\u0002\u0002\u01f0", "\u01f1\u0007v\u0002\u0002\u01f1\u01f2\u0007<\u0002\u0002\u01f2\u001c", "\u0003\u0002\u0002\u0002\u01f3\u01f4\u0007<\u0002\u0002\u01f4\u001e", "\u0003\u0002\u0002\u0002\u01f5\u01f6\u0007=\u0002\u0002\u01f6 \u0003", "\u0002\u0002\u0002\u01f7\u01f9\u0007.\u0002\u0002\u01f8\u01fa\u0007", "\f\u0002\u0002\u01f9\u01f8\u0003\u0002\u0002\u0002\u01f9\u01fa\u0003", "\u0002\u0002\u0002\u01fa\"\u0003\u0002\u0002\u0002\u01fb\u01fc\u0007", "0\u0002\u0002\u01fc\u01fd\u00070\u0002\u0002\u01fd$\u0003\u0002\u0002", "\u0002\u01fe\u0200\u00070\u0002\u0002\u01ff\u0201\u0007\f\u0002\u0002", "\u0200\u01ff\u0003\u0002\u0002\u0002\u0200\u0201\u0003\u0002\u0002\u0002", "\u0201&\u0003\u0002\u0002\u0002\u0202\u0204\u0007*\u0002\u0002\u0203", "\u0205\u0007\f\u0002\u0002\u0204\u0203\u0003\u0002\u0002\u0002\u0204", "\u0205\u0003\u0002\u0002\u0002\u0205(\u0003\u0002\u0002\u0002\u0206", "\u020a\u0007\f\u0002\u0002\u0207\u0209\t\u0002\u0002\u0002\u0208\u0207", "\u0003\u0002\u0002\u0002\u0209\u020c\u0003\u0002\u0002\u0002\u020a\u0208", "\u0003\u0002\u0002\u0002\u020a\u020b\u0003\u0002\u0002\u0002\u020b\u020e", "\u0003\u0002\u0002\u0002\u020c\u020a\u0003\u0002\u0002\u0002\u020d\u0206", "\u0003\u0002\u0002\u0002\u020d\u020e\u0003\u0002\u0002\u0002\u020e\u020f", "\u0003\u0002\u0002\u0002\u020f\u0210\u0007+\u0002\u0002\u0210*\u0003", "\u0002\u0002\u0002\u0211\u0213\u0007]\u0002\u0002\u0212\u0214\u0007", "\f\u0002\u0002\u0213\u0212\u0003\u0002\u0002\u0002\u0213\u0214\u0003", "\u0002\u0002\u0002\u0214,\u0003\u0002\u0002\u0002\u0215\u0219\u0007", "\f\u0002\u0002\u0216\u0218\t\u0002\u0002\u0002\u0217\u0216\u0003\u0002", "\u0002\u0002\u0218\u021b\u0003\u0002\u0002\u0002\u0219\u0217\u0003\u0002", "\u0002\u0002\u0219\u021a\u0003\u0002\u0002\u0002\u021a\u021d\u0003\u0002", "\u0002\u0002\u021b\u0219\u0003\u0002\u0002\u0002\u021c\u0215\u0003\u0002", "\u0002\u0002\u021c\u021d\u0003\u0002\u0002\u0002\u021d\u021e\u0003\u0002", "\u0002\u0002\u021e\u021f\u0007_\u0002\u0002\u021f.\u0003\u0002\u0002", "\u0002\u0220\u0222\u0007}\u0002\u0002\u0221\u0223\u0007\f\u0002\u0002", "\u0222\u0221\u0003\u0002\u0002\u0002\u0222\u0223\u0003\u0002\u0002\u0002", "\u02230\u0003\u0002\u0002\u0002\u0224\u0228\u0007\f\u0002\u0002\u0225", "\u0227\t\u0002\u0002\u0002\u0226\u0225\u0003\u0002\u0002\u0002\u0227", "\u022a\u0003\u0002\u0002\u0002\u0228\u0226\u0003\u0002\u0002\u0002\u0228", "\u0229\u0003\u0002\u0002\u0002\u0229\u022c\u0003\u0002\u0002\u0002\u022a", "\u0228\u0003\u0002\u0002\u0002\u022b\u0224\u0003\u0002\u0002\u0002\u022b", "\u022c\u0003\u0002\u0002\u0002\u022c\u022d\u0003\u0002\u0002\u0002\u022d", "\u022e\u0007\u007f\u0002\u0002\u022e2\u0003\u0002\u0002\u0002\u022f", "\u0231\u0007A\u0002\u0002\u0230\u0232\u0007\f\u0002\u0002\u0231\u0230", "\u0003\u0002\u0002\u0002\u0231\u0232\u0003\u0002\u0002\u0002\u02324", "\u0003\u0002\u0002\u0002\u0233\u0234\u0007#\u0002\u0002\u02346\u0003", "\u0002\u0002\u0002\u0235\u0236\u0007(\u0002\u0002\u02368\u0003\u0002", "\u0002\u0002\u0237\u0238\u0007(\u0002\u0002\u0238\u0239\u0007(\u0002", "\u0002\u0239:\u0003\u0002\u0002\u0002\u023a\u023b\u0007~\u0002\u0002", "\u023b<\u0003\u0002\u0002\u0002\u023c\u023d\u0007~\u0002\u0002\u023d", "\u023e\u0007~\u0002\u0002\u023e>\u0003\u0002\u0002\u0002\u023f\u0241", "\u0007-\u0002\u0002\u0240\u0242\u0007\f\u0002\u0002\u0241\u0240\u0003", "\u0002\u0002\u0002\u0241\u0242\u0003\u0002\u0002\u0002\u0242@\u0003", "\u0002\u0002\u0002\u0243\u0244\u0007/\u0002\u0002\u0244B\u0003\u0002", "\u0002\u0002\u0245\u0246\u0007,\u0002\u0002\u0246D\u0003\u0002\u0002", "\u0002\u0247\u0248\u00071\u0002\u0002\u0248F\u0003\u0002\u0002\u0002", "\u0249\u024a\u0007^\u0002\u0002\u024aH\u0003\u0002\u0002\u0002\u024b", "\u024c\u0007\'\u0002\u0002\u024cJ\u0003\u0002\u0002\u0002\u024d\u024e", "\u0007@\u0002\u0002\u024eL\u0003\u0002\u0002\u0002\u024f\u0250\u0007", "@\u0002\u0002\u0250\u0251\u0007?\u0002\u0002\u0251N\u0003\u0002\u0002", "\u0002\u0252\u0253\u0007>\u0002\u0002\u0253P\u0003\u0002\u0002\u0002", "\u0254\u0255\u0007>\u0002\u0002\u0255\u0256\u0007?\u0002\u0002\u0256", "R\u0003\u0002\u0002\u0002\u0257\u0258\u0007>\u0002\u0002\u0258\u0259", "\u0007@\u0002\u0002\u0259T\u0003\u0002\u0002\u0002\u025a\u025b\u0007", ">\u0002\u0002\u025b\u025c\u0007<\u0002\u0002\u025c\u025d\u0007@\u0002", "\u0002\u025dV\u0003\u0002\u0002\u0002\u025e\u025f\u0007?\u0002\u0002", "\u025fX\u0003\u0002\u0002\u0002\u0260\u0261\u0007#\u0002\u0002\u0261", "\u0262\u0007?\u0002\u0002\u0262Z\u0003\u0002\u0002\u0002\u0263\u0264", "\u0007?\u0002\u0002\u0264\u0265\u0007?\u0002\u0002\u0265\\\u0003\u0002", "\u0002\u0002\u0266\u0267\u0007\u0080\u0002\u0002\u0267\u0268\u0007?", "\u0002\u0002\u0268^\u0003\u0002\u0002\u0002\u0269\u026a\u0007\u0080", "\u0002\u0002\u026a`\u0003\u0002\u0002\u0002\u026b\u026c\u0007>\u0002", "\u0002\u026c\u026d\u0007/\u0002\u0002\u026db\u0003\u0002\u0002\u0002", "\u026e\u026f\u0007/\u0002\u0002\u026f\u0270\u0007@\u0002\u0002\u0270", "d\u0003\u0002\u0002\u0002\u0271\u0272\u0007D\u0002\u0002\u0272\u0273", "\u0007q\u0002\u0002\u0273\u0274\u0007q\u0002\u0002\u0274\u0275\u0007", "n\u0002\u0002\u0275\u0276\u0007g\u0002\u0002\u0276\u0277\u0007c\u0002", "\u0002\u0277\u0278\u0007p\u0002\u0002\u0278f\u0003\u0002\u0002\u0002", "\u0279\u027a\u0007E\u0002\u0002\u027a\u027b\u0007j\u0002\u0002\u027b", "\u027c\u0007c\u0002\u0002\u027c\u027d\u0007t\u0002\u0002\u027d\u027e", "\u0007c\u0002\u0002\u027e\u027f\u0007e\u0002\u0002\u027f\u0280\u0007", "v\u0002\u0002\u0280\u0281\u0007g\u0002\u0002\u0281\u0282\u0007t\u0002", "\u0002\u0282h\u0003\u0002\u0002\u0002\u0283\u0284\u0007V\u0002\u0002", "\u0284\u0285\u0007g\u0002\u0002\u0285\u0286\u0007z\u0002\u0002\u0286", "\u0287\u0007v\u0002\u0002\u0287j\u0003\u0002\u0002\u0002\u0288\u0289", "\u0007K\u0002\u0002\u0289\u028a\u0007p\u0002\u0002\u028a\u028b\u0007", "v\u0002\u0002\u028b\u028c\u0007g\u0002\u0002\u028c\u028d\u0007i\u0002", "\u0002\u028d\u028e\u0007g\u0002\u0002\u028e\u028f\u0007t\u0002\u0002", "\u028fl\u0003\u0002\u0002\u0002\u0290\u0291\u0007F\u0002\u0002\u0291", "\u0292\u0007g\u0002\u0002\u0292\u0293\u0007e\u0002\u0002\u0293\u0294", "\u0007k\u0002\u0002\u0294\u0295\u0007o\u0002\u0002\u0295\u0296\u0007", "c\u0002\u0002\u0296\u0297\u0007n\u0002\u0002\u0297n\u0003\u0002\u0002", "\u0002\u0298\u0299\u0007F\u0002\u0002\u0299\u029a\u0007c\u0002\u0002", "\u029a\u029b\u0007v\u0002\u0002\u029b\u029c\u0007g\u0002\u0002\u029c", "p\u0003\u0002\u0002\u0002\u029d\u029e\u0007V\u0002\u0002\u029e\u029f", "\u0007k\u0002\u0002\u029f\u02a0\u0007o\u0002\u0002\u02a0\u02a1\u0007", "g\u0002\u0002\u02a1r\u0003\u0002\u0002\u0002\u02a2\u02a3\u0007F\u0002", "\u0002\u02a3\u02a4\u0007c\u0002\u0002\u02a4\u02a5\u0007v\u0002\u0002", "\u02a5\u02a6\u0007g\u0002\u0002\u02a6\u02a7\u0007V\u0002\u0002\u02a7", "\u02a8\u0007k\u0002\u0002\u02a8\u02a9\u0007o\u0002\u0002\u02a9\u02aa", "\u0007g\u0002\u0002\u02aat\u0003\u0002\u0002\u0002\u02ab\u02ac\u0007", "R\u0002\u0002\u02ac\u02ad\u0007g\u0002\u0002\u02ad\u02ae\u0007t\u0002", "\u0002\u02ae\u02af\u0007k\u0002\u0002\u02af\u02b0\u0007q\u0002\u0002", "\u02b0\u02b1\u0007f\u0002\u0002\u02b1v\u0003\u0002\u0002\u0002\u02b2", "\u02b3\u0007X\u0002\u0002\u02b3\u02b4\u0007g\u0002\u0002\u02b4\u02b5", "\u0007t\u0002\u0002\u02b5\u02b6\u0007u\u0002\u0002\u02b6\u02b7\u0007", "k\u0002\u0002\u02b7\u02b8\u0007q\u0002\u0002\u02b8\u02b9\u0007p\u0002", "\u0002\u02b9x\u0003\u0002\u0002\u0002\u02ba\u02bb\u0007O\u0002\u0002", "\u02bb\u02bc\u0007g\u0002\u0002\u02bc\u02bd\u0007v\u0002\u0002\u02bd", "\u02be\u0007j\u0002\u0002\u02be\u02bf\u0007q\u0002\u0002\u02bf\u02c0", "\u0007f\u0002\u0002\u02c0z\u0003\u0002\u0002\u0002\u02c1\u02c2\u0007", "E\u0002\u0002\u02c2\u02c3\u0007q\u0002\u0002\u02c3\u02c4\u0007f\u0002", "\u0002\u02c4\u02c5\u0007g\u0002\u0002\u02c5|\u0003\u0002\u0002\u0002", "\u02c6\u02c7\u0007F\u0002\u0002\u02c7\u02c8\u0007q\u0002\u0002\u02c8", "\u02c9\u0007e\u0002\u0002\u02c9\u02ca\u0007w\u0002\u0002\u02ca\u02cb", "\u0007o\u0002\u0002\u02cb\u02cc\u0007g\u0002\u0002\u02cc\u02cd\u0007", "p\u0002\u0002\u02cd\u02ce\u0007v\u0002\u0002\u02ce~\u0003\u0002\u0002", "\u0002\u02cf\u02d0\u0007D\u0002\u0002\u02d0\u02d1\u0007n\u0002\u0002", "\u02d1\u02d2\u0007q\u0002\u0002\u02d2\u02d3\u0007d\u0002\u0002\u02d3", "\u0080\u0003\u0002\u0002\u0002\u02d4\u02d5\u0007K\u0002\u0002\u02d5", "\u02d6\u0007o\u0002\u0002\u02d6\u02d7\u0007c\u0002\u0002\u02d7\u02d8", "\u0007i\u0002\u0002\u02d8\u02d9\u0007g\u0002\u0002\u02d9\u0082\u0003", "\u0002\u0002\u0002\u02da\u02db\u0007W\u0002\u0002\u02db\u02dc\u0007", "w\u0002\u0002\u02dc\u02dd\u0007k\u0002\u0002\u02dd\u02de\u0007f\u0002", "\u0002\u02de\u0084\u0003\u0002\u0002\u0002\u02df\u02e0\u0007K\u0002", "\u0002\u02e0\u02e1\u0007v\u0002\u0002\u02e1\u02e2\u0007g\u0002\u0002", "\u02e2\u02e3\u0007t\u0002\u0002\u02e3\u02e4\u0007c\u0002\u0002\u02e4", "\u02e5\u0007v\u0002\u0002\u02e5\u02e6\u0007q\u0002\u0002\u02e6\u02e7", "\u0007t\u0002\u0002\u02e7\u0086\u0003\u0002\u0002\u0002\u02e8\u02e9", "\u0007E\u0002\u0002\u02e9\u02ea\u0007w\u0002\u0002\u02ea\u02eb\u0007", "t\u0002\u0002\u02eb\u02ec\u0007u\u0002\u0002\u02ec\u02ed\u0007q\u0002", "\u0002\u02ed\u02ee\u0007t\u0002\u0002\u02ee\u0088\u0003\u0002\u0002", "\u0002\u02ef\u02f0\u0007J\u0002\u0002\u02f0\u02f1\u0007v\u0002\u0002", "\u02f1\u02f2\u0007o\u0002\u0002\u02f2\u02f3\u0007n\u0002\u0002\u02f3", "\u008a\u0003\u0002\u0002\u0002\u02f4\u02f5\u0007c\u0002\u0002\u02f5", "\u02f6\u0007d\u0002\u0002\u02f6\u02f7\u0007u\u0002\u0002\u02f7\u02f8", "\u0007v\u0002\u0002\u02f8\u02f9\u0007t\u0002\u0002\u02f9\u02fa\u0007", "c\u0002\u0002\u02fa\u02fb\u0007e\u0002\u0002\u02fb\u02fc\u0007v\u0002", "\u0002\u02fc\u008c\u0003\u0002\u0002\u0002\u02fd\u02fe\u0007c\u0002", "\u0002\u02fe\u02ff\u0007n\u0002\u0002\u02ff\u0300\u0007n\u0002\u0002", "\u0300\u008e\u0003\u0002\u0002\u0002\u0301\u0302\u0007c\u0002\u0002", "\u0302\u0303\u0007n\u0002\u0002\u0303\u0304\u0007y\u0002\u0002\u0304", "\u0305\u0007c\u0002\u0002\u0305\u0306\u0007{\u0002\u0002\u0306\u0307", "\u0007u\u0002\u0002\u0307\u0090\u0003\u0002\u0002\u0002\u0308\u0309", "\u0007c\u0002\u0002\u0309\u030a\u0007p\u0002\u0002\u030a\u030b\u0007", "f\u0002\u0002\u030b\u0092\u0003\u0002\u0002\u0002\u030c\u030d\u0007", "c\u0002\u0002\u030d\u030e\u0007p\u0002\u0002\u030e\u030f\u0007{\u0002", "\u0002\u030f\u0094\u0003\u0002\u0002\u0002\u0310\u0311\u0007c\u0002", "\u0002\u0311\u0312\u0007u\u0002\u0002\u0312\u0096\u0003\u0002\u0002", "\u0002\u0313\u0314\u0007c\u0002\u0002\u0314\u0315\u0007u\u0002\u0002", "\u0315\u0320\u0007e\u0002\u0002\u0316\u0317\u0007c\u0002\u0002\u0317", "\u0318\u0007u\u0002\u0002\u0318\u0319\u0007e\u0002\u0002\u0319\u031a", "\u0007g\u0002\u0002\u031a\u031b\u0007p\u0002\u0002\u031b\u031c\u0007", "f\u0002\u0002\u031c\u031d\u0007k\u0002\u0002\u031d\u031e\u0007p\u0002", "\u0002\u031e\u0320\u0007i\u0002\u0002\u031f\u0313\u0003\u0002\u0002", "\u0002\u031f\u0316\u0003\u0002\u0002\u0002\u0320\u0098\u0003\u0002\u0002", "\u0002\u0321\u0322\u0007c\u0002\u0002\u0322\u0323\u0007v\u0002\u0002", "\u0323\u0324\u0007v\u0002\u0002\u0324\u0325\u0007t\u0002\u0002\u0325", "\u009a\u0003\u0002\u0002\u0002\u0326\u0327\u0007c\u0002\u0002\u0327", "\u0328\u0007v\u0002\u0002\u0328\u0329\u0007v\u0002\u0002\u0329\u032a", "\u0007t\u0002\u0002\u032a\u032b\u0007k\u0002\u0002\u032b\u032c\u0007", "d\u0002\u0002\u032c\u032d\u0007w\u0002\u0002\u032d\u032e\u0007v\u0002", "\u0002\u032e\u032f\u0007g\u0002\u0002\u032f\u009c\u0003\u0002\u0002", "\u0002\u0330\u0331\u0007c\u0002\u0002\u0331\u0332\u0007v\u0002\u0002", "\u0332\u0333\u0007v\u0002\u0002\u0333\u0334\u0007t\u0002\u0002\u0334", "\u0335\u0007k\u0002\u0002\u0335\u0336\u0007d\u0002\u0002\u0336\u0337", "\u0007w\u0002\u0002\u0337\u0338\u0007v\u0002\u0002\u0338\u0339\u0007", "g\u0002\u0002\u0339\u033a\u0007u\u0002\u0002\u033a\u009e\u0003\u0002", "\u0002\u0002\u033b\u033c\u0007d\u0002\u0002\u033c\u033d\u0007k\u0002", "\u0002\u033d\u033e\u0007p\u0002\u0002\u033e\u033f\u0007f\u0002\u0002", "\u033f\u0340\u0007k\u0002\u0002\u0340\u0341\u0007p\u0002\u0002\u0341", "\u0342\u0007i\u0002\u0002\u0342\u0343\u0007u\u0002\u0002\u0343\u00a0", "\u0003\u0002\u0002\u0002\u0344\u0345\u0007d\u0002\u0002\u0345\u0346", "\u0007t\u0002\u0002\u0346\u0347\u0007g\u0002\u0002\u0347\u0348\u0007", "c\u0002\u0002\u0348\u0349\u0007m\u0002\u0002\u0349\u00a2\u0003\u0002", "\u0002\u0002\u034a\u034b\u0007d\u0002\u0002\u034b\u034c\u0007{\u0002", "\u0002\u034c\u00a4\u0003\u0002\u0002\u0002\u034d\u034e\u0007e\u0002", "\u0002\u034e\u034f\u0007c\u0002\u0002\u034f\u0350\u0007u\u0002\u0002", "\u0350\u0351\u0007g\u0002\u0002\u0351\u00a6\u0003\u0002\u0002\u0002", "\u0352\u0353\u0007e\u0002\u0002\u0353\u0354\u0007c\u0002\u0002\u0354", "\u0355\u0007v\u0002\u0002\u0355\u0356\u0007e\u0002\u0002\u0356\u0357", "\u0007j\u0002\u0002\u0357\u00a8\u0003\u0002\u0002\u0002\u0358\u0359", "\u0007e\u0002\u0002\u0359\u035a\u0007c\u0002\u0002\u035a\u035b\u0007", "v\u0002\u0002\u035b\u035c\u0007g\u0002\u0002\u035c\u035d\u0007i\u0002", "\u0002\u035d\u035e\u0007q\u0002\u0002\u035e\u035f\u0007t\u0002\u0002", "\u035f\u0360\u0007{\u0002\u0002\u0360\u00aa\u0003\u0002\u0002\u0002", "\u0361\u0362\u0007e\u0002\u0002\u0362\u0363\u0007n\u0002\u0002\u0363", "\u0364\u0007c\u0002\u0002\u0364\u0365\u0007u\u0002\u0002\u0365\u0366", "\u0007u\u0002\u0002\u0366\u00ac\u0003\u0002\u0002\u0002\u0367\u0368", "\u0007e\u0002\u0002\u0368\u0369\u0007n\u0002\u0002\u0369\u036a\u0007", "q\u0002\u0002\u036a\u036b\u0007u\u0002\u0002\u036b\u036c\u0007g\u0002", "\u0002\u036c\u00ae\u0003\u0002\u0002\u0002\u036d\u036e\u0007e\u0002", "\u0002\u036e\u036f\u0007q\u0002\u0002\u036f\u0370\u0007p\u0002\u0002", "\u0370\u0371\u0007v\u0002\u0002\u0371\u0372\u0007c\u0002\u0002\u0372", "\u0373\u0007k\u0002\u0002\u0373\u0374\u0007p\u0002\u0002\u0374\u0375", "\u0007u\u0002\u0002\u0375\u00b0\u0003\u0002\u0002\u0002\u0376\u0377", "\u0007f\u0002\u0002\u0377\u0378\u0007g\u0002\u0002\u0378\u0379\u0007", "h\u0002\u0002\u0379\u00b2\u0003\u0002\u0002\u0002\u037a\u037b\u0007", "f\u0002\u0002\u037b\u037c\u0007g\u0002\u0002\u037c\u037d\u0007h\u0002", "\u0002\u037d\u037e\u0007c\u0002\u0002\u037e\u037f\u0007w\u0002\u0002", "\u037f\u0380\u0007n\u0002\u0002\u0380\u0381\u0007v\u0002\u0002\u0381", "\u00b4\u0003\u0002\u0002\u0002\u0382\u0383\u0007f\u0002\u0002\u0383", "\u0384\u0007g\u0002\u0002\u0384\u0385\u0007h\u0002\u0002\u0385\u0386", "\u0007k\u0002\u0002\u0386\u0387\u0007p\u0002\u0002\u0387\u0388\u0007", "g\u0002\u0002\u0388\u00b6\u0003\u0002\u0002\u0002\u0389\u038a\u0007", "f\u0002\u0002\u038a\u038b\u0007g\u0002\u0002\u038b\u038c\u0007n\u0002", "\u0002\u038c\u038d\u0007g\u0002\u0002\u038d\u038e\u0007v\u0002\u0002", "\u038e\u038f\u0007g\u0002\u0002\u038f\u00b8\u0003\u0002\u0002\u0002", "\u0390\u0391\u0007f\u0002\u0002\u0391\u0392\u0007g\u0002\u0002\u0392", "\u0393\u0007u\u0002\u0002\u0393\u039f\u0007e\u0002\u0002\u0394\u0395", "\u0007f\u0002\u0002\u0395\u0396\u0007g\u0002\u0002\u0396\u0397\u0007", "u\u0002\u0002\u0397\u0398\u0007e\u0002\u0002\u0398\u0399\u0007g\u0002", "\u0002\u0399\u039a\u0007p\u0002\u0002\u039a\u039b\u0007f\u0002\u0002", "\u039b\u039c\u0007k\u0002\u0002\u039c\u039d\u0007p\u0002\u0002\u039d", "\u039f\u0007i\u0002\u0002\u039e\u0390\u0003\u0002\u0002\u0002\u039e", "\u0394\u0003\u0002\u0002\u0002\u039f\u00ba\u0003\u0002\u0002\u0002\u03a0", "\u03a1\u0007f\u0002\u0002\u03a1\u03a2\u0007q\u0002\u0002\u03a2\u00bc", "\u0003\u0002\u0002\u0002\u03a3\u03a4\u0007f\u0002\u0002\u03a4\u03a5", "\u0007q\u0002\u0002\u03a5\u03a6\u0007k\u0002\u0002\u03a6\u03a7\u0007", "p\u0002\u0002\u03a7\u03a8\u0007i\u0002\u0002\u03a8\u00be\u0003\u0002", "\u0002\u0002\u03a9\u03aa\u0007g\u0002\u0002\u03aa\u03ab\u0007c\u0002", "\u0002\u03ab\u03ac\u0007e\u0002\u0002\u03ac\u03ad\u0007j\u0002\u0002", "\u03ad\u00c0\u0003\u0002\u0002\u0002\u03ae\u03af\u0007g\u0002\u0002", "\u03af\u03b0\u0007n\u0002\u0002\u03b0\u03b1\u0007u\u0002\u0002\u03b1", "\u03b2\u0007g\u0002\u0002\u03b2\u00c2\u0003\u0002\u0002\u0002\u03b3", "\u03b4\u0007g\u0002\u0002\u03b4\u03b5\u0007p\u0002\u0002\u03b5\u03b6", "\u0007w\u0002\u0002\u03b6\u03b7\u0007o\u0002\u0002\u03b7\u00c4\u0003", "\u0002\u0002\u0002\u03b8\u03b9\u0007g\u0002\u0002\u03b9\u03ba\u0007", "p\u0002\u0002\u03ba\u03bb\u0007w\u0002\u0002\u03bb\u03bc\u0007o\u0002", "\u0002\u03bc\u03bd\u0007g\u0002\u0002\u03bd\u03be\u0007t\u0002\u0002", "\u03be\u03bf\u0007c\u0002\u0002\u03bf\u03c0\u0007v\u0002\u0002\u03c0", "\u03c1\u0007g\u0002\u0002\u03c1\u03c2\u0007f\u0002\u0002\u03c2\u00c6", "\u0003\u0002\u0002\u0002\u03c3\u03c4\u0007g\u0002\u0002\u03c4\u03c5", "\u0007z\u0002\u0002\u03c5\u03c6\u0007e\u0002\u0002\u03c6\u03c7\u0007", "g\u0002\u0002\u03c7\u03c8\u0007r\u0002\u0002\u03c8\u03c9\u0007v\u0002", "\u0002\u03c9\u00c8\u0003\u0002\u0002\u0002\u03ca\u03cb\u0007g\u0002", "\u0002\u03cb\u03cc\u0007z\u0002\u0002\u03cc\u03cd\u0007g\u0002\u0002", "\u03cd\u03ce\u0007e\u0002\u0002\u03ce\u03cf\u0007w\u0002\u0002\u03cf", "\u03d0\u0007v\u0002\u0002\u03d0\u03d1\u0007g\u0002\u0002\u03d1\u00ca", "\u0003\u0002\u0002\u0002\u03d2\u03d3\u0007g\u0002\u0002\u03d3\u03d4", "\u0007z\u0002\u0002\u03d4\u03d5\u0007r\u0002\u0002\u03d5\u03d6\u0007", "g\u0002\u0002\u03d6\u03d7\u0007e\u0002\u0002\u03d7\u03d8\u0007v\u0002", "\u0002\u03d8\u03d9\u0007k\u0002\u0002\u03d9\u03da\u0007p\u0002\u0002", "\u03da\u03db\u0007i\u0002\u0002\u03db\u00cc\u0003\u0002\u0002\u0002", "\u03dc\u03dd\u0007g\u0002\u0002\u03dd\u03de\u0007z\u0002\u0002\u03de", "\u03df\u0007v\u0002\u0002\u03df\u03e0\u0007g\u0002\u0002\u03e0\u03e1", "\u0007p\u0002\u0002\u03e1\u03e2\u0007f\u0002\u0002\u03e2\u03e3\u0007", "u\u0002\u0002\u03e3\u00ce\u0003\u0002\u0002\u0002\u03e4\u03e5\u0007", "h\u0002\u0002\u03e5\u03e6\u0007g\u0002\u0002\u03e6\u03e7\u0007v\u0002", "\u0002\u03e7\u03e8\u0007e\u0002\u0002\u03e8\u03e9\u0007j\u0002\u0002", "\u03e9\u00d0\u0003\u0002\u0002\u0002\u03ea\u03eb\u0007h\u0002\u0002", "\u03eb\u03ec\u0007k\u0002\u0002\u03ec\u03ed\u0007n\u0002\u0002\u03ed", "\u03ee\u0007v\u0002\u0002\u03ee\u03ef\u0007g\u0002\u0002\u03ef\u03f0", "\u0007t\u0002\u0002\u03f0\u03f1\u0007g\u0002\u0002\u03f1\u03f2\u0007", "f\u0002\u0002\u03f2\u00d2\u0003\u0002\u0002\u0002\u03f3\u03f4\u0007", "h\u0002\u0002\u03f4\u03f5\u0007k\u0002\u0002\u03f5\u03f6\u0007p\u0002", "\u0002\u03f6\u03f7\u0007c\u0002\u0002\u03f7\u03f8\u0007n\u0002\u0002", "\u03f8\u03f9\u0007n\u0002\u0002\u03f9\u03fa\u0007{\u0002\u0002\u03fa", "\u00d4\u0003\u0002\u0002\u0002\u03fb\u03fc\u0007h\u0002\u0002\u03fc", "\u03fd\u0007n\u0002\u0002\u03fd\u03fe\u0007w\u0002\u0002\u03fe\u03ff", "\u0007u\u0002\u0002\u03ff\u0400\u0007j\u0002\u0002\u0400\u00d6\u0003", "\u0002\u0002\u0002\u0401\u0402\u0007h\u0002\u0002\u0402\u0403\u0007", "q\u0002\u0002\u0403\u0404\u0007t\u0002\u0002\u0404\u00d8\u0003\u0002", "\u0002\u0002\u0405\u0406\u0007h\u0002\u0002\u0406\u0407\u0007t\u0002", "\u0002\u0407\u0408\u0007q\u0002\u0002\u0408\u0409\u0007o\u0002\u0002", "\u0409\u00da\u0003\u0002\u0002\u0002\u040a\u040b\u0007i\u0002\u0002", "\u040b\u040c\u0007g\u0002\u0002\u040c\u040d\u0007v\u0002\u0002\u040d", "\u040e\u0007v\u0002\u0002\u040e\u040f\u0007g\u0002\u0002\u040f\u0410", "\u0007t\u0002\u0002\u0410\u00dc\u0003\u0002\u0002\u0002\u0411\u0412", "\u0007j\u0002\u0002\u0412\u0413\u0007c\u0002\u0002\u0413\u0414\u0007", "u\u0002\u0002\u0414\u00de\u0003\u0002\u0002\u0002\u0415\u0416\u0007", "k\u0002\u0002\u0416\u0417\u0007h\u0002\u0002\u0417\u00e0\u0003\u0002", "\u0002\u0002\u0418\u0419\u0007k\u0002\u0002\u0419\u041a\u0007p\u0002", "\u0002\u041a\u00e2\u0003\u0002\u0002\u0002\u041b\u041c\u0007k\u0002", "\u0002\u041c\u041d\u0007p\u0002\u0002\u041d\u041e\u0007f\u0002\u0002", "\u041e\u041f\u0007g\u0002\u0002\u041f\u0420\u0007z\u0002\u0002\u0420", "\u00e4\u0003\u0002\u0002\u0002\u0421\u0422\u0007k\u0002\u0002\u0422", "\u0423\u0007p\u0002\u0002\u0423\u0424\u0007x\u0002\u0002\u0424\u0425", "\u0007q\u0002\u0002\u0425\u0426\u0007m\u0002\u0002\u0426\u0427\u0007", "g\u0002\u0002\u0427\u00e6\u0003\u0002\u0002\u0002\u0428\u0429\u0007", "k\u0002\u0002\u0429\u042a\u0007u\u0002\u0002\u042a\u00e8\u0003\u0002", "\u0002\u0002\u042b\u042c\u0007o\u0002\u0002\u042c\u042d\u0007c\u0002", "\u0002\u042d\u042e\u0007v\u0002\u0002\u042e\u042f\u0007e\u0002\u0002", "\u042f\u0430\u0007j\u0002\u0002\u0430\u0431\u0007k\u0002\u0002\u0431", "\u0432\u0007p\u0002\u0002\u0432\u0433\u0007i\u0002\u0002\u0433\u00ea", "\u0003\u0002\u0002\u0002\u0434\u0435\u0007o\u0002\u0002\u0435\u0436", "\u0007g\u0002\u0002\u0436\u0437\u0007v\u0002\u0002\u0437\u0438\u0007", "j\u0002\u0002\u0438\u0439\u0007q\u0002\u0002\u0439\u043a\u0007f\u0002", "\u0002\u043a\u00ec\u0003\u0002\u0002\u0002\u043b\u043c\u0007o\u0002", "\u0002\u043c\u043d\u0007g\u0002\u0002\u043d\u043e\u0007v\u0002\u0002", "\u043e\u043f\u0007j\u0002\u0002\u043f\u0440\u0007q\u0002\u0002\u0440", "\u0441\u0007f\u0002\u0002\u0441\u0442\u0007u\u0002\u0002\u0442\u00ee", "\u0003\u0002\u0002\u0002\u0443\u0444\u0007o\u0002\u0002\u0444\u0445", "\u0007q\u0002\u0002\u0445\u0446\u0007f\u0002\u0002\u0446\u0447\u0007", "w\u0002\u0002\u0447\u0448\u0007n\u0002\u0002\u0448\u0449\u0007q\u0002", "\u0002\u0449\u00f0\u0003\u0002\u0002\u0002\u044a\u044b\u0007o\u0002", "\u0002\u044b\u044c\u0007w\u0002\u0002\u044c\u044d\u0007v\u0002\u0002", "\u044d\u044e\u0007c\u0002\u0002\u044e\u044f\u0007d\u0002\u0002\u044f", "\u0450\u0007n\u0002\u0002\u0450\u0451\u0007g\u0002\u0002\u0451\u00f2", "\u0003\u0002\u0002\u0002\u0452\u0453\u0007p\u0002\u0002\u0453\u0454", "\u0007c\u0002\u0002\u0454\u0455\u0007v\u0002\u0002\u0455\u0456\u0007", "k\u0002\u0002\u0456\u0457\u0007x\u0002\u0002\u0457\u0458\u0007g\u0002", "\u0002\u0458\u00f4\u0003\u0002\u0002\u0002\u0459\u045a\u0007P\u0002", "\u0002\u045a\u045b\u0007q\u0002\u0002\u045b\u045c\u0007p\u0002\u0002", "\u045c\u045d\u0007g\u0002\u0002\u045d\u00f6\u0003\u0002\u0002\u0002", "\u045e\u045f\u0007p\u0002\u0002\u045f\u0460\u0007q\u0002\u0002\u0460", "\u0461\u0007v\u0002\u0002\u0461\u00f8\u0003\u0002\u0002\u0002\u0462", "\u0463\u0007p\u0002\u0002\u0463\u0464\u0007q\u0002\u0002\u0464\u0465", "\u0007v\u0002\u0002\u0465\u0466\u0007j\u0002\u0002\u0466\u0467\u0007", "k\u0002\u0002\u0467\u0468\u0007p\u0002\u0002\u0468\u0471\u0007i\u0002", "\u0002\u0469\u046a\u0007P\u0002\u0002\u046a\u046b\u0007q\u0002\u0002", "\u046b\u046c\u0007v\u0002\u0002\u046c\u046d\u0007j\u0002\u0002\u046d", "\u046e\u0007k\u0002\u0002\u046e\u046f\u0007p\u0002\u0002\u046f\u0471", "\u0007i\u0002\u0002\u0470\u0462\u0003\u0002\u0002\u0002\u0470\u0469", "\u0003\u0002\u0002\u0002\u0471\u00fa\u0003\u0002\u0002\u0002\u0472\u0473", "\u0007p\u0002\u0002\u0473\u0474\u0007w\u0002\u0002\u0474\u0475\u0007", "n\u0002\u0002\u0475\u0476\u0007n\u0002\u0002\u0476\u00fc\u0003\u0002", "\u0002\u0002\u0477\u0478\u0007q\u0002\u0002\u0478\u0479\u0007p\u0002", "\u0002\u0479\u00fe\u0003\u0002\u0002\u0002\u047a\u047b\u0007q\u0002", "\u0002\u047b\u047c\u0007p\u0002\u0002\u047c\u047d\u0007g\u0002\u0002", "\u047d\u0100\u0003\u0002\u0002\u0002\u047e\u047f\u0007q\u0002\u0002", "\u047f\u0480\u0007r\u0002\u0002\u0480\u0481\u0007g\u0002\u0002\u0481", "\u0482\u0007p\u0002\u0002\u0482\u0102\u0003\u0002\u0002\u0002\u0483", "\u0484\u0007q\u0002\u0002\u0484\u0485\u0007r\u0002\u0002\u0485\u0486", "\u0007g\u0002\u0002\u0486\u0487\u0007t\u0002\u0002\u0487\u0488\u0007", "c\u0002\u0002\u0488\u0489\u0007v\u0002\u0002\u0489\u048a\u0007q\u0002", "\u0002\u048a\u048b\u0007t\u0002\u0002\u048b\u0104\u0003\u0002\u0002", "\u0002\u048c\u048d\u0007q\u0002\u0002\u048d\u048e\u0007t\u0002\u0002", "\u048e\u0106\u0003\u0002\u0002\u0002\u048f\u0490\u0007q\u0002\u0002", "\u0490\u0491\u0007t\u0002\u0002\u0491\u0492\u0007f\u0002\u0002\u0492", "\u0493\u0007g\u0002\u0002\u0493\u0494\u0007t\u0002\u0002\u0494\u0108", "\u0003\u0002\u0002\u0002\u0495\u0496\u0007q\u0002\u0002\u0496\u0497", "\u0007v\u0002\u0002\u0497\u0498\u0007j\u0002\u0002\u0498\u0499\u0007", "g\u0002\u0002\u0499\u049a\u0007t\u0002\u0002\u049a\u049b\u0007y\u0002", "\u0002\u049b\u049c\u0007k\u0002\u0002\u049c\u049d\u0007u\u0002\u0002", "\u049d\u049e\u0007g\u0002\u0002\u049e\u010a\u0003\u0002\u0002\u0002", "\u049f\u04a0\u0007r\u0002\u0002\u04a0\u04a1\u0007c\u0002\u0002\u04a1", "\u04a2\u0007u\u0002\u0002\u04a2\u04a3\u0007u\u0002\u0002\u04a3\u010c", "\u0003\u0002\u0002\u0002\u04a4\u04a5\u0007t\u0002\u0002\u04a5\u04a6", "\u0007c\u0002\u0002\u04a6\u04a7\u0007k\u0002\u0002\u04a7\u04a8\u0007", "u\u0002\u0002\u04a8\u04a9\u0007g\u0002\u0002\u04a9\u010e\u0003\u0002", "\u0002\u0002\u04aa\u04ab\u0007t\u0002\u0002\u04ab\u04ac\u0007g\u0002", "\u0002\u04ac\u04ad\u0007c\u0002\u0002\u04ad\u04ae\u0007f\u0002\u0002", "\u04ae\u0110\u0003\u0002\u0002\u0002\u04af\u04b0\u0007t\u0002\u0002", "\u04b0\u04b1\u0007g\u0002\u0002\u04b1\u04b2\u0007e\u0002\u0002\u04b2", "\u04b3\u0007g\u0002\u0002\u04b3\u04b4\u0007k\u0002\u0002\u04b4\u04b5", "\u0007x\u0002\u0002\u04b5\u04b6\u0007k\u0002\u0002\u04b6\u04b7\u0007", "p\u0002\u0002\u04b7\u04b8\u0007i\u0002\u0002\u04b8\u0112\u0003\u0002", "\u0002\u0002\u04b9\u04ba\u0007t\u0002\u0002\u04ba\u04bb\u0007g\u0002", "\u0002\u04bb\u04bc\u0007u\u0002\u0002\u04bc\u04bd\u0007q\u0002\u0002", "\u04bd\u04be\u0007w\u0002\u0002\u04be\u04bf\u0007t\u0002\u0002\u04bf", "\u04c0\u0007e\u0002\u0002\u04c0\u04c1\u0007g\u0002\u0002\u04c1\u0114", "\u0003\u0002\u0002\u0002\u04c2\u04c3\u0007t\u0002\u0002\u04c3\u04c4", "\u0007g\u0002\u0002\u04c4\u04c5\u0007v\u0002\u0002\u04c5\u04c6\u0007", "w\u0002\u0002\u04c6\u04c7\u0007t\u0002\u0002\u04c7\u04c8\u0007p\u0002", "\u0002\u04c8\u0116\u0003\u0002\u0002\u0002\u04c9\u04ca\u0007t\u0002", "\u0002\u04ca\u04cb\u0007g\u0002\u0002\u04cb\u04cc\u0007v\u0002\u0002", "\u04cc\u04cd\u0007w\u0002\u0002\u04cd\u04ce\u0007t\u0002\u0002\u04ce", "\u04cf\u0007p\u0002\u0002\u04cf\u04d0\u0007k\u0002\u0002\u04d0\u04d1", "\u0007p\u0002\u0002\u04d1\u04d2\u0007i\u0002\u0002\u04d2\u0118\u0003", "\u0002\u0002\u0002\u04d3\u04d4\u0007t\u0002\u0002\u04d4\u04d5\u0007", "q\u0002\u0002\u04d5\u04d6\u0007y\u0002\u0002\u04d6\u04d7\u0007u\u0002", "\u0002\u04d7\u011a\u0003\u0002\u0002\u0002\u04d8\u04d9\u0007u\u0002", "\u0002\u04d9\u04da\u0007g\u0002\u0002\u04da\u04db\u0007n\u0002\u0002", "\u04db\u04dc\u0007h\u0002\u0002\u04dc\u011c\u0003\u0002\u0002\u0002", "\u04dd\u04de\u0007u\u0002\u0002\u04de\u04df\u0007g\u0002\u0002\u04df", "\u04e0\u0007v\u0002\u0002\u04e0\u04e1\u0007v\u0002\u0002\u04e1\u04e2", "\u0007g\u0002\u0002\u04e2\u04e3\u0007t\u0002\u0002\u04e3\u011e\u0003", "\u0002\u0002\u0002\u04e4\u04e5\u0007u\u0002\u0002\u04e5\u04e6\u0007", "k\u0002\u0002\u04e6\u04e7\u0007p\u0002\u0002\u04e7\u04e8\u0007i\u0002", "\u0002\u04e8\u04e9\u0007n\u0002\u0002\u04e9\u04ea\u0007g\u0002\u0002", "\u04ea\u04eb\u0007v\u0002\u0002\u04eb\u04ec\u0007q\u0002\u0002\u04ec", "\u04ed\u0007p\u0002\u0002\u04ed\u0120\u0003\u0002\u0002\u0002\u04ee", "\u04ef\u0007u\u0002\u0002\u04ef\u04f0\u0007q\u0002\u0002\u04f0\u04f1", "\u0007t\u0002\u0002\u04f1\u04f2\u0007v\u0002\u0002\u04f2\u04f3\u0007", "g\u0002\u0002\u04f3\u04f4\u0007f\u0002\u0002\u04f4\u0122\u0003\u0002", "\u0002\u0002\u04f5\u04f6\u0007u\u0002\u0002\u04f6\u04f7\u0007v\u0002", "\u0002\u04f7\u04f8\u0007q\u0002\u0002\u04f8\u04f9\u0007t\u0002\u0002", "\u04f9\u04fa\u0007c\u0002\u0002\u04fa\u04fb\u0007d\u0002\u0002\u04fb", "\u04fc\u0007n\u0002\u0002\u04fc\u04fd\u0007g\u0002\u0002\u04fd\u0124", "\u0003\u0002\u0002\u0002\u04fe\u04ff\u0007u\u0002\u0002\u04ff\u0500", "\u0007v\u0002\u0002\u0500\u0501\u0007q\u0002\u0002\u0501\u0502\u0007", "t\u0002\u0002\u0502\u0503\u0007g\u0002\u0002\u0503\u0126\u0003\u0002", "\u0002\u0002\u0504\u0505\u0007u\u0002\u0002\u0505\u0506\u0007y\u0002", "\u0002\u0506\u0507\u0007k\u0002\u0002\u0507\u0508\u0007v\u0002\u0002", "\u0508\u0509\u0007e\u0002\u0002\u0509\u050a\u0007j\u0002\u0002\u050a", "\u0128\u0003\u0002\u0002\u0002\u050b\u050c\u0007v\u0002\u0002\u050c", "\u050d\u0007g\u0002\u0002\u050d\u050e\u0007u\u0002\u0002\u050e\u050f", "\u0007v\u0002\u0002\u050f\u012a\u0003\u0002\u0002\u0002\u0510\u0511", "\u0007v\u0002\u0002\u0511\u0512\u0007j\u0002\u0002\u0512\u0513\u0007", "g\u0002\u0002\u0513\u0514\u0007p\u0002\u0002\u0514\u012c\u0003\u0002", "\u0002\u0002\u0515\u0516\u0007v\u0002\u0002\u0516\u0517\u0007j\u0002", "\u0002\u0517\u0518\u0007k\u0002\u0002\u0518\u0519\u0007u\u0002\u0002", "\u0519\u012e\u0003\u0002\u0002\u0002\u051a\u051b\u0007v\u0002\u0002", "\u051b\u051c\u0007j\u0002\u0002\u051c\u051d\u0007t\u0002\u0002\u051d", "\u051e\u0007q\u0002\u0002\u051e\u051f\u0007y\u0002\u0002\u051f\u0130", "\u0003\u0002\u0002\u0002\u0520\u0521\u0007v\u0002\u0002\u0521\u0522", "\u0007q\u0002\u0002\u0522\u0132\u0003\u0002\u0002\u0002\u0523\u0524", "\u0007v\u0002\u0002\u0524\u0525\u0007t\u0002\u0002\u0525\u0526\u0007", "{\u0002\u0002\u0526\u0134\u0003\u0002\u0002\u0002\u0527\u0528\u0007", "x\u0002\u0002\u0528\u0529\u0007g\u0002\u0002\u0529\u052a\u0007t\u0002", "\u0002\u052a\u052b\u0007k\u0002\u0002\u052b\u052c\u0007h\u0002\u0002", "\u052c\u052d\u0007{\u0002\u0002\u052d\u052e\u0007k\u0002\u0002\u052e", "\u052f\u0007p\u0002\u0002\u052f\u0530\u0007i\u0002\u0002\u0530\u0136", "\u0003\u0002\u0002\u0002\u0531\u0532\u0007y\u0002\u0002\u0532\u0533", "\u0007k\u0002\u0002\u0533\u0534\u0007f\u0002\u0002\u0534\u0535\u0007", "i\u0002\u0002\u0535\u0536\u0007g\u0002\u0002\u0536\u0537\u0007v\u0002", "\u0002\u0537\u0138\u0003\u0002\u0002\u0002\u0538\u0539\u0007y\u0002", "\u0002\u0539\u053a\u0007k\u0002\u0002\u053a\u053b\u0007v\u0002\u0002", "\u053b\u053c\u0007j\u0002\u0002\u053c\u013a\u0003\u0002\u0002\u0002", "\u053d\u053e\u0007y\u0002\u0002\u053e\u053f\u0007j\u0002\u0002\u053f", "\u0540\u0007g\u0002\u0002\u0540\u0541\u0007p\u0002\u0002\u0541\u013c", "\u0003\u0002\u0002\u0002\u0542\u0543\u0007y\u0002\u0002\u0543\u0544", "\u0007j\u0002\u0002\u0544\u0545\u0007g\u0002\u0002\u0545\u0546\u0007", "t\u0002\u0002\u0546\u0547\u0007g\u0002\u0002\u0547\u013e\u0003\u0002", "\u0002\u0002\u0548\u0549\u0007y\u0002\u0002\u0549\u054a\u0007j\u0002", "\u0002\u054a\u054b\u0007k\u0002\u0002\u054b\u054c\u0007n\u0002\u0002", "\u054c\u054d\u0007g\u0002\u0002\u054d\u0140\u0003\u0002\u0002\u0002", "\u054e\u054f\u0007y\u0002\u0002\u054f\u0550\u0007t\u0002\u0002\u0550", "\u0551\u0007k\u0002\u0002\u0551\u0552\u0007v\u0002\u0002\u0552\u0553", "\u0007g\u0002\u0002\u0553\u0142\u0003\u0002\u0002\u0002\u0554\u0555", "\u0007v\u0002\u0002\u0555\u0556\u0007t\u0002\u0002\u0556\u0557\u0007", "w\u0002\u0002\u0557\u0567\u0007g\u0002\u0002\u0558\u0559\u0007V\u0002", "\u0002\u0559\u055a\u0007t\u0002\u0002\u055a\u055b\u0007w\u0002\u0002", "\u055b\u0567\u0007g\u0002\u0002\u055c\u055d\u0007h\u0002\u0002\u055d", "\u055e\u0007c\u0002\u0002\u055e\u055f\u0007n\u0002\u0002\u055f\u0560", "\u0007u\u0002\u0002\u0560\u0567\u0007g\u0002\u0002\u0561\u0562\u0007", "H\u0002\u0002\u0562\u0563\u0007c\u0002\u0002\u0563\u0564\u0007n\u0002", "\u0002\u0564\u0565\u0007u\u0002\u0002\u0565\u0567\u0007g\u0002\u0002", "\u0566\u0554\u0003\u0002\u0002\u0002\u0566\u0558\u0003\u0002\u0002\u0002", "\u0566\u055c\u0003\u0002\u0002\u0002\u0566\u0561\u0003\u0002\u0002\u0002", "\u0567\u0144\u0003\u0002\u0002\u0002\u0568\u056b\u0007)\u0002\u0002", "\u0569\u056c\u0005\u0171\u00b9\u0002\u056a\u056c\n\u0005\u0002\u0002", "\u056b\u0569\u0003\u0002\u0002\u0002\u056b\u056a\u0003\u0002\u0002\u0002", "\u056c\u056d\u0003\u0002\u0002\u0002\u056d\u056e\u0007)\u0002\u0002", "\u056e\u0146\u0003\u0002\u0002\u0002\u056f\u0570\u0007O\u0002\u0002", "\u0570\u0571\u0007K\u0002\u0002\u0571\u0572\u0007P\u0002\u0002\u0572", "\u0573\u0007a\u0002\u0002\u0573\u0574\u0007K\u0002\u0002\u0574\u0575", "\u0007P\u0002\u0002\u0575\u0576\u0007V\u0002\u0002\u0576\u0577\u0007", "G\u0002\u0002\u0577\u0578\u0007I\u0002\u0002\u0578\u0579\u0007G\u0002", "\u0002\u0579\u057a\u0007T\u0002\u0002\u057a\u0148\u0003\u0002\u0002", "\u0002\u057b\u057c\u0007O\u0002\u0002\u057c\u057d\u0007C\u0002\u0002", "\u057d\u057e\u0007Z\u0002\u0002\u057e\u057f\u0007a\u0002\u0002\u057f", "\u0580\u0007K\u0002\u0002\u0580\u0581\u0007P\u0002\u0002\u0581\u0582", "\u0007V\u0002\u0002\u0582\u0583\u0007G\u0002\u0002\u0583\u0584\u0007", "I\u0002\u0002\u0584\u0585\u0007G\u0002\u0002\u0585\u0586\u0007T\u0002", "\u0002\u0586\u014a\u0003\u0002\u0002\u0002\u0587\u058b\t\u0006\u0002", "\u0002\u0588\u058a\t\u0007\u0002\u0002\u0589\u0588\u0003\u0002\u0002", "\u0002\u058a\u058d\u0003\u0002\u0002\u0002\u058b\u0589\u0003\u0002\u0002", "\u0002\u058b\u058c\u0003\u0002\u0002\u0002\u058c\u014c\u0003\u0002\u0002", "\u0002\u058d\u058b\u0003\u0002\u0002\u0002\u058e\u0592\t\u0006\u0002", "\u0002\u058f\u0591\u0005\u0157\u00ac\u0002\u0590\u058f\u0003\u0002\u0002", "\u0002\u0591\u0594\u0003\u0002\u0002\u0002\u0592\u0590\u0003\u0002\u0002", "\u0002\u0592\u0593\u0003\u0002\u0002\u0002\u0593\u014e\u0003\u0002\u0002", "\u0002\u0594\u0592\u0003\u0002\u0002\u0002\u0595\u0599\t\b\u0002\u0002", "\u0596\u0598\u0005\u0157\u00ac\u0002\u0597\u0596\u0003\u0002\u0002\u0002", "\u0598\u059b\u0003\u0002\u0002\u0002\u0599\u0597\u0003\u0002\u0002\u0002", "\u0599\u059a\u0003\u0002\u0002\u0002\u059a\u0150\u0003\u0002\u0002\u0002", "\u059b\u0599\u0003\u0002\u0002\u0002\u059c\u05a0\u0007a\u0002\u0002", "\u059d\u059f\u0005\u0157\u00ac\u0002\u059e\u059d\u0003\u0002\u0002\u0002", "\u059f\u05a2\u0003\u0002\u0002\u0002\u05a0\u059e\u0003\u0002\u0002\u0002", "\u05a0\u05a1\u0003\u0002\u0002\u0002\u05a1\u0152\u0003\u0002\u0002\u0002", "\u05a2\u05a0\u0003\u0002\u0002\u0002\u05a3\u05a5\u0007&\u0002\u0002", "\u05a4\u05a6\u0005\u0157\u00ac\u0002\u05a5\u05a4\u0003\u0002\u0002\u0002", "\u05a6\u05a7\u0003\u0002\u0002\u0002\u05a7\u05a5\u0003\u0002\u0002\u0002", "\u05a7\u05a8\u0003\u0002\u0002\u0002\u05a8\u0154\u0003\u0002\u0002\u0002", "\u05a9\u05ab\u0007B\u0002\u0002\u05aa\u05ac\t\t\u0002\u0002\u05ab\u05aa", "\u0003\u0002\u0002\u0002\u05ac\u05ad\u0003\u0002\u0002\u0002\u05ad\u05ab", "\u0003\u0002\u0002\u0002\u05ad\u05ae\u0003\u0002\u0002\u0002\u05ae\u0156", "\u0003\u0002\u0002\u0002\u05af\u05b2\u0005\u0159\u00ad\u0002\u05b0\u05b2", "\u0005\u015b\u00ae\u0002\u05b1\u05af\u0003\u0002\u0002\u0002\u05b1\u05b0", "\u0003\u0002\u0002\u0002\u05b2\u0158\u0003\u0002\u0002\u0002\u05b3\u05b4", "\t\n\u0002\u0002\u05b4\u015a\u0003\u0002\u0002\u0002\u05b5\u05b6\t\u000b", "\u0002\u0002\u05b6\u015c\u0003\u0002\u0002\u0002\u05b7\u05bc\u0007$", "\u0002\u0002\u05b8\u05bb\u0005\u0171\u00b9\u0002\u05b9\u05bb\n\f\u0002", "\u0002\u05ba\u05b8\u0003\u0002\u0002\u0002\u05ba\u05b9\u0003\u0002\u0002", "\u0002\u05bb\u05be\u0003\u0002\u0002\u0002\u05bc\u05ba\u0003\u0002\u0002", "\u0002\u05bc\u05bd\u0003\u0002\u0002\u0002\u05bd\u05bf\u0003\u0002\u0002", "\u0002\u05be\u05bc\u0003\u0002\u0002\u0002\u05bf\u05c0\u0007$\u0002", "\u0002\u05c0\u015e\u0003\u0002\u0002\u0002\u05c1\u05c2\u0007)\u0002", "\u0002\u05c2\u05c3\u0005\u018d\u00c7\u0002\u05c3\u05c4\u0005\u018d\u00c7", "\u0002\u05c4\u05c5\u0005\u018d\u00c7\u0002\u05c5\u05c6\u0005\u018d\u00c7", "\u0002\u05c6\u05c7\u0007/\u0002\u0002\u05c7\u05c8\u0005\u018d\u00c7", "\u0002\u05c8\u05c9\u0005\u018d\u00c7\u0002\u05c9\u05ca\u0007/\u0002", "\u0002\u05ca\u05cb\u0005\u018d\u00c7\u0002\u05cb\u05cc\u0005\u018d\u00c7", "\u0002\u05cc\u05cd\u0007/\u0002\u0002\u05cd\u05ce\u0005\u018d\u00c7", "\u0002\u05ce\u05cf\u0005\u018d\u00c7\u0002\u05cf\u05d0\u0007/\u0002", "\u0002\u05d0\u05d1\u0005\u018d\u00c7\u0002\u05d1\u05d2\u0005\u018d\u00c7", "\u0002\u05d2\u05d3\u0005\u018d\u00c7\u0002\u05d3\u05d4\u0005\u018d\u00c7", "\u0002\u05d4\u05d5\u0005\u018d\u00c7\u0002\u05d5\u05d6\u0005\u018d\u00c7", "\u0002\u05d6\u05d7\u0007)\u0002\u0002\u05d7\u0160\u0003\u0002\u0002", "\u0002\u05d8\u05d9\u0005\u0167\u00b4\u0002\u05d9\u0162\u0003\u0002\u0002", "\u0002\u05da\u05db\u0005\u016d\u00b7\u0002\u05db\u0164\u0003\u0002\u0002", "\u0002\u05dc\u05dd\u0005\u0169\u00b5\u0002\u05dd\u0166\u0003\u0002\u0002", "\u0002\u05de\u05e7\u00072\u0002\u0002\u05df\u05e3\t\r\u0002\u0002\u05e0", "\u05e2\t\u000b\u0002\u0002\u05e1\u05e0\u0003\u0002\u0002\u0002\u05e2", "\u05e5\u0003\u0002\u0002\u0002\u05e3\u05e1\u0003\u0002\u0002\u0002\u05e3", "\u05e4\u0003\u0002\u0002\u0002\u05e4\u05e7\u0003\u0002\u0002\u0002\u05e5", "\u05e3\u0003\u0002\u0002\u0002\u05e6\u05de\u0003\u0002\u0002\u0002\u05e6", "\u05df\u0003\u0002\u0002\u0002\u05e7\u0168\u0003\u0002\u0002\u0002\u05e8", "\u05e9\u0005\u0167\u00b4\u0002\u05e9\u05eb\u0005%\u0013\u0002\u05ea", "\u05ec\t\u000b\u0002\u0002\u05eb\u05ea\u0003\u0002\u0002\u0002\u05ec", "\u05ed\u0003\u0002\u0002\u0002\u05ed\u05eb\u0003\u0002\u0002\u0002\u05ed", "\u05ee\u0003\u0002\u0002\u0002\u05ee\u05f0\u0003\u0002\u0002\u0002\u05ef", "\u05f1\u0005\u016b\u00b6\u0002\u05f0\u05ef\u0003\u0002\u0002\u0002\u05f0", "\u05f1\u0003\u0002\u0002\u0002\u05f1\u016a\u0003\u0002\u0002\u0002\u05f2", "\u05f4\t\u000e\u0002\u0002\u05f3\u05f5\t\u000f\u0002\u0002\u05f4\u05f3", "\u0003\u0002\u0002\u0002\u05f4\u05f5\u0003\u0002\u0002\u0002\u05f5\u05f7", "\u0003\u0002\u0002\u0002\u05f6\u05f8\u00042;\u0002\u05f7\u05f6\u0003", "\u0002\u0002\u0002\u05f8\u05f9\u0003\u0002\u0002\u0002\u05f9\u05f7\u0003", "\u0002\u0002\u0002\u05f9\u05fa\u0003\u0002\u0002\u0002\u05fa\u016c\u0003", "\u0002\u0002\u0002\u05fb\u05fc\u00072\u0002\u0002\u05fc\u0600\u0007", "z\u0002\u0002\u05fd\u05fe\u00072\u0002\u0002\u05fe\u0600\u0007Z\u0002", "\u0002\u05ff\u05fb\u0003\u0002\u0002\u0002\u05ff\u05fd\u0003\u0002\u0002", "\u0002\u0600\u0602\u0003\u0002\u0002\u0002\u0601\u0603\u0005\u016f\u00b8", "\u0002\u0602\u0601\u0003\u0002\u0002\u0002\u0603\u0604\u0003\u0002\u0002", "\u0002\u0604\u0602\u0003\u0002\u0002\u0002\u0604\u0605\u0003\u0002\u0002", "\u0002\u0605\u016e\u0003\u0002\u0002\u0002\u0606\u0607\t\u0010\u0002", "\u0002\u0607\u0170\u0003\u0002\u0002\u0002\u0608\u0610\u0007^\u0002", "\u0002\u0609\u0611\t\u0011\u0002\u0002\u060a\u060c\u0007w\u0002\u0002", "\u060b\u060d\t\u0010\u0002\u0002\u060c\u060b\u0003\u0002\u0002\u0002", "\u060d\u060e\u0003\u0002\u0002\u0002\u060e\u060c\u0003\u0002\u0002\u0002", "\u060e\u060f\u0003\u0002\u0002\u0002\u060f\u0611\u0003\u0002\u0002\u0002", "\u0610\u0609\u0003\u0002\u0002\u0002\u0610\u060a\u0003\u0002\u0002\u0002", "\u0611\u0172\u0003\u0002\u0002\u0002\u0612\u0613\u0007)\u0002\u0002", "\u0613\u0614\u0005\u017b\u00be\u0002\u0614\u0615\u0007V\u0002\u0002", "\u0615\u0617\u0005\u0177\u00bc\u0002\u0616\u0618\u0005\u017d\u00bf\u0002", "\u0617\u0616\u0003\u0002\u0002\u0002\u0617\u0618\u0003\u0002\u0002\u0002", "\u0618\u0619\u0003\u0002\u0002\u0002\u0619\u061a\u0007)\u0002\u0002", "\u061a\u0174\u0003\u0002\u0002\u0002\u061b\u061c\u0007)\u0002\u0002", "\u061c\u061d\u0005\u0177\u00bc\u0002\u061d\u061e\u0007)\u0002\u0002", "\u061e\u0176\u0003\u0002\u0002\u0002\u061f\u0620\u000424\u0002\u0620", "\u0621\u00042;\u0002\u0621\u0622\u0007<\u0002\u0002\u0622\u0623\u0004", "27\u0002\u0623\u0631\u00042;\u0002\u0624\u0625\u0007<\u0002\u0002\u0625", "\u0626\u000427\u0002\u0626\u062f\u00042;\u0002\u0627\u0628\u0005%\u0013", "\u0002\u0628\u062d\u00042;\u0002\u0629\u062b\u00042;\u0002\u062a\u062c", "\u00042;\u0002\u062b\u062a\u0003\u0002\u0002\u0002\u062b\u062c\u0003", "\u0002\u0002\u0002\u062c\u062e\u0003\u0002\u0002\u0002\u062d\u0629\u0003", "\u0002\u0002\u0002\u062d\u062e\u0003\u0002\u0002\u0002\u062e\u0630\u0003", "\u0002\u0002\u0002\u062f\u0627\u0003\u0002\u0002\u0002\u062f\u0630\u0003", "\u0002\u0002\u0002\u0630\u0632\u0003\u0002\u0002\u0002\u0631\u0624\u0003", "\u0002\u0002\u0002\u0631\u0632\u0003\u0002\u0002\u0002\u0632\u0178\u0003", "\u0002\u0002\u0002\u0633\u0634\u0007)\u0002\u0002\u0634\u0635\u0005", "\u017b\u00be\u0002\u0635\u0636\u0007)\u0002\u0002\u0636\u017a\u0003", "\u0002\u0002\u0002\u0637\u0638\u00042;\u0002\u0638\u0639\u00042;\u0002", "\u0639\u063a\u00042;\u0002\u063a\u063b\u00042;\u0002\u063b\u063c\u0007", "/\u0002\u0002\u063c\u063d\u000423\u0002\u063d\u063e\u00042;\u0002\u063e", "\u063f\u0007/\u0002\u0002\u063f\u0640\u000425\u0002\u0640\u0641\u0004", "2;\u0002\u0641\u017c\u0003\u0002\u0002\u0002\u0642\u064a\u0007\\\u0002", "\u0002\u0643\u0644\t\u000f\u0002\u0002\u0644\u0645\u000423\u0002\u0645", "\u0646\u00042;\u0002\u0646\u0647\u0007<\u0002\u0002\u0647\u0648\u0004", "2;\u0002\u0648\u064a\u00042;\u0002\u0649\u0642\u0003\u0002\u0002\u0002", "\u0649\u0643\u0003\u0002\u0002\u0002\u064a\u017e\u0003\u0002\u0002\u0002", "\u064b\u064c\u0007)\u0002\u0002\u064c\u064e\u0007R\u0002\u0002\u064d", "\u064f\u0005\u0181\u00c1\u0002\u064e\u064d\u0003\u0002\u0002\u0002\u064e", "\u064f\u0003\u0002\u0002\u0002\u064f\u0651\u0003\u0002\u0002\u0002\u0650", "\u0652\u0005\u0183\u00c2\u0002\u0651\u0650\u0003\u0002\u0002\u0002\u0651", "\u0652\u0003\u0002\u0002\u0002\u0652\u0654\u0003\u0002\u0002\u0002\u0653", "\u0655\u0005\u0185\u00c3\u0002\u0654\u0653\u0003\u0002\u0002\u0002\u0654", "\u0655\u0003\u0002\u0002\u0002\u0655\u0665\u0003\u0002\u0002\u0002\u0656", "\u0657\u0007V\u0002\u0002\u0657\u0659\u0005\u0187\u00c4\u0002\u0658", "\u065a\u0005\u0189\u00c5\u0002\u0659\u0658\u0003\u0002\u0002\u0002\u0659", "\u065a\u0003\u0002\u0002\u0002\u065a\u065c\u0003\u0002\u0002\u0002\u065b", "\u065d\u0005\u018b\u00c6\u0002\u065c\u065b\u0003\u0002\u0002\u0002\u065c", "\u065d\u0003\u0002\u0002\u0002\u065d\u0666\u0003\u0002\u0002\u0002\u065e", "\u065f\u0007V\u0002\u0002\u065f\u0661\u0005\u0189\u00c5\u0002\u0660", "\u0662\u0005\u018b\u00c6\u0002\u0661\u0660\u0003\u0002\u0002\u0002\u0661", "\u0662\u0003\u0002\u0002\u0002\u0662\u0666\u0003\u0002\u0002\u0002\u0663", "\u0664\u0007V\u0002\u0002\u0664\u0666\u0005\u018b\u00c6\u0002\u0665", "\u0656\u0003\u0002\u0002\u0002\u0665\u065e\u0003\u0002\u0002\u0002\u0665", "\u0663\u0003\u0002\u0002\u0002\u0665\u0666\u0003\u0002\u0002\u0002\u0666", "\u0667\u0003\u0002\u0002\u0002\u0667\u0668\u0007)\u0002\u0002\u0668", "\u0180\u0003\u0002\u0002\u0002\u0669\u066b\u0007/\u0002\u0002\u066a", "\u0669\u0003\u0002\u0002\u0002\u066a\u066b\u0003\u0002\u0002\u0002\u066b", "\u066c\u0003\u0002\u0002\u0002\u066c\u066d\u0005\u0167\u00b4\u0002\u066d", "\u066e\u0007[\u0002\u0002\u066e\u0182\u0003\u0002\u0002\u0002\u066f", "\u0671\u0007/\u0002\u0002\u0670\u066f\u0003\u0002\u0002\u0002\u0670", "\u0671\u0003\u0002\u0002\u0002\u0671\u0672\u0003\u0002\u0002\u0002\u0672", "\u0673\u0005\u0167\u00b4\u0002\u0673\u0674\u0007O\u0002\u0002\u0674", "\u0184\u0003\u0002\u0002\u0002\u0675\u0677\u0007/\u0002\u0002\u0676", "\u0675\u0003\u0002\u0002\u0002\u0676\u0677\u0003\u0002\u0002\u0002\u0677", "\u0678\u0003\u0002\u0002\u0002\u0678\u0679\u0005\u0167\u00b4\u0002\u0679", "\u067a\u0007F\u0002\u0002\u067a\u0186\u0003\u0002\u0002\u0002\u067b", "\u067d\u0007/\u0002\u0002\u067c\u067b\u0003\u0002\u0002\u0002\u067c", "\u067d\u0003\u0002\u0002\u0002\u067d\u067e\u0003\u0002\u0002\u0002\u067e", "\u067f\u0005\u0167\u00b4\u0002\u067f\u0680\u0007J\u0002\u0002\u0680", "\u0188\u0003\u0002\u0002\u0002\u0681\u0683\u0007/\u0002\u0002\u0682", "\u0681\u0003\u0002\u0002\u0002\u0682\u0683\u0003\u0002\u0002\u0002\u0683", "\u0684\u0003\u0002\u0002\u0002\u0684\u0685\u0005\u0167\u00b4\u0002\u0685", "\u0686\u0007O\u0002\u0002\u0686\u018a\u0003\u0002\u0002\u0002\u0687", "\u0689\u0007/\u0002\u0002\u0688\u0687\u0003\u0002\u0002\u0002\u0688", "\u0689\u0003\u0002\u0002\u0002\u0689\u068a\u0003\u0002\u0002\u0002\u068a", "\u0694\u0005\u0167\u00b4\u0002\u068b\u068f\u0005%\u0013\u0002\u068c", "\u068e\u00072\u0002\u0002\u068d\u068c\u0003\u0002\u0002\u0002\u068e", "\u0691\u0003\u0002\u0002\u0002\u068f\u068d\u0003\u0002\u0002\u0002\u068f", "\u0690\u0003\u0002\u0002\u0002\u0690\u0692\u0003\u0002\u0002\u0002\u0691", "\u068f\u0003\u0002\u0002\u0002\u0692\u0693\u0005\u0167\u00b4\u0002\u0693", "\u0695\u0003\u0002\u0002\u0002\u0694\u068b\u0003\u0002\u0002\u0002\u0694", "\u0695\u0003\u0002\u0002\u0002\u0695\u0696\u0003\u0002\u0002\u0002\u0696", "\u0697\u0007U\u0002\u0002\u0697\u018c\u0003\u0002\u0002\u0002\u0698", "\u0699\u0005\u016f\u00b8\u0002\u0699\u069a\u0005\u016f\u00b8\u0002\u069a", "\u018e\u0003\u0002\u0002\u0002\u069b\u069c\u0007)\u0002\u0002\u069c", "\u069d\u0007x\u0002\u0002\u069d\u069e\u0003\u0002\u0002\u0002\u069e", "\u069f\u0005\u0167\u00b4\u0002\u069f\u06a0\u0005%\u0013\u0002\u06a0", "\u06a8\u0005\u0167\u00b4\u0002\u06a1\u06a2\u0005%\u0013\u0002\u06a2", "\u06a6\u0005\u0167\u00b4\u0002\u06a3\u06a4\u0005%\u0013\u0002\u06a4", "\u06a5\u0005\u0167\u00b4\u0002\u06a5\u06a7\u0003\u0002\u0002\u0002\u06a6", "\u06a3\u0003\u0002\u0002\u0002\u06a6\u06a7\u0003\u0002\u0002\u0002\u06a7", "\u06a9\u0003\u0002\u0002\u0002\u06a8\u06a1\u0003\u0002\u0002\u0002\u06a8", "\u06a9\u0003\u0002\u0002\u0002\u06a9\u06aa\u0003\u0002\u0002\u0002\u06aa", "\u06ab\u0007)\u0002\u0002\u06ab\u0190\u0003\u0002\u0002\u0002E\u0002", "\u0195\u019c\u01ae\u01b9\u01bc\u01c1\u01f9\u0200\u0204\u020a\u020d\u0213", "\u0219\u021c\u0222\u0228\u022b\u0231\u0241\u031f\u039e\u0470\u0566\u056b", "\u058b\u0592\u0599\u05a0\u05a7\u05ad\u05b1\u05ba\u05bc\u05e3\u05e6\u05ed", "\u05f0\u05f4\u05f9\u05ff\u0604\u060e\u0610\u0617\u062b\u062d\u062f\u0631", "\u0649\u064e\u0651\u0654\u0659\u065c\u0661\u0665\u066a\u0670\u0676\u067c", "\u0682\u0688\u068f\u0694\u06a6\u06a8\u0003\u0002\u0003\u0002"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); function ELexer(input) { antlr4.Lexer.call(this, input); this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); return this; } ELexer.prototype = Object.create(antlr4.Lexer.prototype); ELexer.prototype.constructor = ELexer; Object.defineProperty(ELexer.prototype, "atn", { get : function() { return atn; } }); ELexer.EOF = antlr4.Token.EOF; ELexer.INDENT = 1; ELexer.DEDENT = 2; ELexer.LF_TAB = 3; ELexer.LF_MORE = 4; ELexer.LF = 5; ELexer.TAB = 6; ELexer.WS = 7; ELexer.COMMENT = 8; ELexer.JAVA = 9; ELexer.CSHARP = 10; ELexer.PYTHON2 = 11; ELexer.PYTHON3 = 12; ELexer.JAVASCRIPT = 13; ELexer.SWIFT = 14; ELexer.COLON = 15; ELexer.SEMI = 16; ELexer.COMMA = 17; ELexer.RANGE = 18; ELexer.DOT = 19; ELexer.LPAR = 20; ELexer.RPAR = 21; ELexer.LBRAK = 22; ELexer.RBRAK = 23; ELexer.LCURL = 24; ELexer.RCURL = 25; ELexer.QMARK = 26; ELexer.XMARK = 27; ELexer.AMP = 28; ELexer.AMP2 = 29; ELexer.PIPE = 30; ELexer.PIPE2 = 31; ELexer.PLUS = 32; ELexer.MINUS = 33; ELexer.STAR = 34; ELexer.SLASH = 35; ELexer.BSLASH = 36; ELexer.PERCENT = 37; ELexer.GT = 38; ELexer.GTE = 39; ELexer.LT = 40; ELexer.LTE = 41; ELexer.LTGT = 42; ELexer.LTCOLONGT = 43; ELexer.EQ = 44; ELexer.XEQ = 45; ELexer.EQ2 = 46; ELexer.TEQ = 47; ELexer.TILDE = 48; ELexer.LARROW = 49; ELexer.RARROW = 50; ELexer.BOOLEAN = 51; ELexer.CHARACTER = 52; ELexer.TEXT = 53; ELexer.INTEGER = 54; ELexer.DECIMAL = 55; ELexer.DATE = 56; ELexer.TIME = 57; ELexer.DATETIME = 58; ELexer.PERIOD = 59; ELexer.VERSION = 60; ELexer.METHOD_T = 61; ELexer.CODE = 62; ELexer.DOCUMENT = 63; ELexer.BLOB = 64; ELexer.IMAGE = 65; ELexer.UUID = 66; ELexer.ITERATOR = 67; ELexer.CURSOR = 68; ELexer.HTML = 69; ELexer.ABSTRACT = 70; ELexer.ALL = 71; ELexer.ALWAYS = 72; ELexer.AND = 73; ELexer.ANY = 74; ELexer.AS = 75; ELexer.ASC = 76; ELexer.ATTR = 77; ELexer.ATTRIBUTE = 78; ELexer.ATTRIBUTES = 79; ELexer.BINDINGS = 80; ELexer.BREAK = 81; ELexer.BY = 82; ELexer.CASE = 83; ELexer.CATCH = 84; ELexer.CATEGORY = 85; ELexer.CLASS = 86; ELexer.CLOSE = 87; ELexer.CONTAINS = 88; ELexer.DEF = 89; ELexer.DEFAULT = 90; ELexer.DEFINE = 91; ELexer.DELETE = 92; ELexer.DESC = 93; ELexer.DO = 94; ELexer.DOING = 95; ELexer.EACH = 96; ELexer.ELSE = 97; ELexer.ENUM = 98; ELexer.ENUMERATED = 99; ELexer.EXCEPT = 100; ELexer.EXECUTE = 101; ELexer.EXPECTING = 102; ELexer.EXTENDS = 103; ELexer.FETCH = 104; ELexer.FILTERED = 105; ELexer.FINALLY = 106; ELexer.FLUSH = 107; ELexer.FOR = 108; ELexer.FROM = 109; ELexer.GETTER = 110; ELexer.HAS = 111; ELexer.IF = 112; ELexer.IN = 113; ELexer.INDEX = 114; ELexer.INVOKE = 115; ELexer.IS = 116; ELexer.MATCHING = 117; ELexer.METHOD = 118; ELexer.METHODS = 119; ELexer.MODULO = 120; ELexer.MUTABLE = 121; ELexer.NATIVE = 122; ELexer.NONE = 123; ELexer.NOT = 124; ELexer.NOTHING = 125; ELexer.NULL = 126; ELexer.ON = 127; ELexer.ONE = 128; ELexer.OPEN = 129; ELexer.OPERATOR = 130; ELexer.OR = 131; ELexer.ORDER = 132; ELexer.OTHERWISE = 133; ELexer.PASS = 134; ELexer.RAISE = 135; ELexer.READ = 136; ELexer.RECEIVING = 137; ELexer.RESOURCE = 138; ELexer.RETURN = 139; ELexer.RETURNING = 140; ELexer.ROWS = 141; ELexer.SELF = 142; ELexer.SETTER = 143; ELexer.SINGLETON = 144; ELexer.SORTED = 145; ELexer.STORABLE = 146; ELexer.STORE = 147; ELexer.SWITCH = 148; ELexer.TEST = 149; ELexer.THEN = 150; ELexer.THIS = 151; ELexer.THROW = 152; ELexer.TO = 153; ELexer.TRY = 154; ELexer.VERIFYING = 155; ELexer.WIDGET = 156; ELexer.WITH = 157; ELexer.WHEN = 158; ELexer.WHERE = 159; ELexer.WHILE = 160; ELexer.WRITE = 161; ELexer.BOOLEAN_LITERAL = 162; ELexer.CHAR_LITERAL = 163; ELexer.MIN_INTEGER = 164; ELexer.MAX_INTEGER = 165; ELexer.SYMBOL_IDENTIFIER = 166; ELexer.TYPE_IDENTIFIER = 167; ELexer.VARIABLE_IDENTIFIER = 168; ELexer.NATIVE_IDENTIFIER = 169; ELexer.DOLLAR_IDENTIFIER = 170; ELexer.ARONDBASE_IDENTIFIER = 171; ELexer.TEXT_LITERAL = 172; ELexer.UUID_LITERAL = 173; ELexer.INTEGER_LITERAL = 174; ELexer.HEXA_LITERAL = 175; ELexer.DECIMAL_LITERAL = 176; ELexer.DATETIME_LITERAL = 177; ELexer.TIME_LITERAL = 178; ELexer.DATE_LITERAL = 179; ELexer.PERIOD_LITERAL = 180; ELexer.VERSION_LITERAL = 181; ELexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; ELexer.prototype.modeNames = [ "DEFAULT_MODE" ]; ELexer.prototype.literalNames = [ null, null, null, null, null, null, "'\t'", "' '", null, "'Java:'", "'C#:'", "'Python2:'", "'Python3:'", "'JavaScript:'", "'Swift:'", "':'", "';'", null, "'..'", null, null, null, null, null, null, null, null, "'!'", "'&'", "'&&'", "'|'", "'||'", null, "'-'", "'*'", "'/'", "'\\'", "'%'", "'>'", "'>='", "'<'", "'<='", "'<>'", "'<:>'", "'='", "'!='", "'=='", "'~='", "'~'", "'<-'", "'->'", "'Boolean'", "'Character'", "'Text'", "'Integer'", "'Decimal'", "'Date'", "'Time'", "'DateTime'", "'Period'", "'Version'", "'Method'", "'Code'", "'Document'", "'Blob'", "'Image'", "'Uuid'", "'Iterator'", "'Cursor'", "'Html'", "'abstract'", "'all'", "'always'", "'and'", "'any'", "'as'", null, "'attr'", "'attribute'", "'attributes'", "'bindings'", "'break'", "'by'", "'case'", "'catch'", "'category'", "'class'", "'close'", "'contains'", "'def'", "'default'", "'define'", "'delete'", null, "'do'", "'doing'", "'each'", "'else'", "'enum'", "'enumerated'", "'except'", "'execute'", "'expecting'", "'extends'", "'fetch'", "'filtered'", "'finally'", "'flush'", "'for'", "'from'", "'getter'", "'has'", "'if'", "'in'", "'index'", "'invoke'", "'is'", "'matching'", "'method'", "'methods'", "'modulo'", "'mutable'", "'native'", "'None'", "'not'", null, "'null'", "'on'", "'one'", "'open'", "'operator'", "'or'", "'order'", "'otherwise'", "'pass'", "'raise'", "'read'", "'receiving'", "'resource'", "'return'", "'returning'", "'rows'", "'self'", "'setter'", "'singleton'", "'sorted'", "'storable'", "'store'", "'switch'", "'test'", "'then'", "'this'", "'throw'", "'to'", "'try'", "'verifying'", "'widget'", "'with'", "'when'", "'where'", "'while'", "'write'", null, null, "'MIN_INTEGER'", "'MAX_INTEGER'" ]; ELexer.prototype.symbolicNames = [ null, "INDENT", "DEDENT", "LF_TAB", "LF_MORE", "LF", "TAB", "WS", "COMMENT", "JAVA", "CSHARP", "PYTHON2", "PYTHON3", "JAVASCRIPT", "SWIFT", "COLON", "SEMI", "COMMA", "RANGE", "DOT", "LPAR", "RPAR", "LBRAK", "RBRAK", "LCURL", "RCURL", "QMARK", "XMARK", "AMP", "AMP2", "PIPE", "PIPE2", "PLUS", "MINUS", "STAR", "SLASH", "BSLASH", "PERCENT", "GT", "GTE", "LT", "LTE", "LTGT", "LTCOLONGT", "EQ", "XEQ", "EQ2", "TEQ", "TILDE", "LARROW", "RARROW", "BOOLEAN", "CHARACTER", "TEXT", "INTEGER", "DECIMAL", "DATE", "TIME", "DATETIME", "PERIOD", "VERSION", "METHOD_T", "CODE", "DOCUMENT", "BLOB", "IMAGE", "UUID", "ITERATOR", "CURSOR", "HTML", "ABSTRACT", "ALL", "ALWAYS", "AND", "ANY", "AS", "ASC", "ATTR", "ATTRIBUTE", "ATTRIBUTES", "BINDINGS", "BREAK", "BY", "CASE", "CATCH", "CATEGORY", "CLASS", "CLOSE", "CONTAINS", "DEF", "DEFAULT", "DEFINE", "DELETE", "DESC", "DO", "DOING", "EACH", "ELSE", "ENUM", "ENUMERATED", "EXCEPT", "EXECUTE", "EXPECTING", "EXTENDS", "FETCH", "FILTERED", "FINALLY", "FLUSH", "FOR", "FROM", "GETTER", "HAS", "IF", "IN", "INDEX", "INVOKE", "IS", "MATCHING", "METHOD", "METHODS", "MODULO", "MUTABLE", "NATIVE", "NONE", "NOT", "NOTHING", "NULL", "ON", "ONE", "OPEN", "OPERATOR", "OR", "ORDER", "OTHERWISE", "PASS", "RAISE", "READ", "RECEIVING", "RESOURCE", "RETURN", "RETURNING", "ROWS", "SELF", "SETTER", "SINGLETON", "SORTED", "STORABLE", "STORE", "SWITCH", "TEST", "THEN", "THIS", "THROW", "TO", "TRY", "VERIFYING", "WIDGET", "WITH", "WHEN", "WHERE", "WHILE", "WRITE", "BOOLEAN_LITERAL", "CHAR_LITERAL", "MIN_INTEGER", "MAX_INTEGER", "SYMBOL_IDENTIFIER", "TYPE_IDENTIFIER", "VARIABLE_IDENTIFIER", "NATIVE_IDENTIFIER", "DOLLAR_IDENTIFIER", "ARONDBASE_IDENTIFIER", "TEXT_LITERAL", "UUID_LITERAL", "INTEGER_LITERAL", "HEXA_LITERAL", "DECIMAL_LITERAL", "DATETIME_LITERAL", "TIME_LITERAL", "DATE_LITERAL", "PERIOD_LITERAL", "VERSION_LITERAL" ]; ELexer.prototype.ruleNames = [ "LF_TAB", "LF_MORE", "LF", "TAB", "WS", "COMMENT", "JSX_TEXT", "JAVA", "CSHARP", "PYTHON2", "PYTHON3", "JAVASCRIPT", "SWIFT", "COLON", "SEMI", "COMMA", "RANGE", "DOT", "LPAR", "RPAR", "LBRAK", "RBRAK", "LCURL", "RCURL", "QMARK", "XMARK", "AMP", "AMP2", "PIPE", "PIPE2", "PLUS", "MINUS", "STAR", "SLASH", "BSLASH", "PERCENT", "GT", "GTE", "LT", "LTE", "LTGT", "LTCOLONGT", "EQ", "XEQ", "EQ2", "TEQ", "TILDE", "LARROW", "RARROW", "BOOLEAN", "CHARACTER", "TEXT", "INTEGER", "DECIMAL", "DATE", "TIME", "DATETIME", "PERIOD", "VERSION", "METHOD_T", "CODE", "DOCUMENT", "BLOB", "IMAGE", "UUID", "ITERATOR", "CURSOR", "HTML", "ABSTRACT", "ALL", "ALWAYS", "AND", "ANY", "AS", "ASC", "ATTR", "ATTRIBUTE", "ATTRIBUTES", "BINDINGS", "BREAK", "BY", "CASE", "CATCH", "CATEGORY", "CLASS", "CLOSE", "CONTAINS", "DEF", "DEFAULT", "DEFINE", "DELETE", "DESC", "DO", "DOING", "EACH", "ELSE", "ENUM", "ENUMERATED", "EXCEPT", "EXECUTE", "EXPECTING", "EXTENDS", "FETCH", "FILTERED", "FINALLY", "FLUSH", "FOR", "FROM", "GETTER", "HAS", "IF", "IN", "INDEX", "INVOKE", "IS", "MATCHING", "METHOD", "METHODS", "MODULO", "MUTABLE", "NATIVE", "NONE", "NOT", "NOTHING", "NULL", "ON", "ONE", "OPEN", "OPERATOR", "OR", "ORDER", "OTHERWISE", "PASS", "RAISE", "READ", "RECEIVING", "RESOURCE", "RETURN", "RETURNING", "ROWS", "SELF", "SETTER", "SINGLETON", "SORTED", "STORABLE", "STORE", "SWITCH", "TEST", "THEN", "THIS", "THROW", "TO", "TRY", "VERIFYING", "WIDGET", "WITH", "WHEN", "WHERE", "WHILE", "WRITE", "BOOLEAN_LITERAL", "CHAR_LITERAL", "MIN_INTEGER", "MAX_INTEGER", "SYMBOL_IDENTIFIER", "TYPE_IDENTIFIER", "VARIABLE_IDENTIFIER", "NATIVE_IDENTIFIER", "DOLLAR_IDENTIFIER", "ARONDBASE_IDENTIFIER", "LetterOrDigit", "Letter", "Digit", "TEXT_LITERAL", "UUID_LITERAL", "INTEGER_LITERAL", "HEXA_LITERAL", "DECIMAL_LITERAL", "Integer", "Decimal", "Exponent", "Hexadecimal", "HexNibble", "EscapeSequence", "DATETIME_LITERAL", "TIME_LITERAL", "Time", "DATE_LITERAL", "Date", "TimeZone", "PERIOD_LITERAL", "Years", "Months", "Days", "Hours", "Minutes", "Seconds", "HexByte", "VERSION_LITERAL" ]; ELexer.prototype.grammarFileName = "ELexer.g4"; exports.ELexer = ELexer; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; var fs = isNodeJs ? __webpack_require__(44) : {}; // nodejs only var antlr4 = __webpack_require__(1); var EIndentingLexer = __webpack_require__(112).EIndentingLexer; var EParser = __webpack_require__(115).EParser; var EPromptoBuilder = __webpack_require__(118).EPromptoBuilder; function createInput(input) { if(typeof(input)==='string' || input instanceof String) { if(isNodeJs && fs.existsSync(input)) { input = new antlr4.FileStream(input); } else { input = new antlr4.InputStream(input); } } if(input instanceof antlr4.InputStream) { input = new EIndentingLexer(input); } if(input instanceof antlr4.Lexer) { input = new antlr4.CommonTokenStream(input); } return input; } function ECleverParser(input) { EParser.call(this,createInput(input)); this.path = ""; return this; } ECleverParser.prototype = Object.create(EParser.prototype); ECleverParser.prototype.constructor = ECleverParser; ECleverParser.prototype.parse = function() { return this.parse_declaration_list(); }; ECleverParser.prototype.parse_declaration_list = function() { return this.doParse(this.declaration_list, true); }; ECleverParser.prototype.parse_standalone_type = function() { return this.doParse(this.category_or_any_type, false); }; ECleverParser.prototype.doParse = function(rule, addLF) { this.getTokenStream().tokenSource.addLF = addLF; var tree = rule.bind(this)(); var builder = new EPromptoBuilder(this); var walker = new antlr4.tree.ParseTreeWalker(); walker.walk(builder, tree); return builder.getNodeValue(tree); }; exports.ECleverParser = ECleverParser; /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { // Generated from EParser.g4 by ANTLR 4.7.1 // jshint ignore: start var antlr4 = __webpack_require__(1); var EParserListener = __webpack_require__(116).EParserListener; var AbstractParser = __webpack_require__(117).AbstractParser; var grammarFileName = "EParser.g4"; var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0003\u00b7\u0ad6\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004w\tw\u0004", "x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004~\t~\u0004", "\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004\u0082\t", "\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t\u0085\u0004", "\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004\u0089\t", "\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t\u008c\u0004", "\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004\u0090\t", "\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t\u0093\u0004", "\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004\u0097\t", "\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t\u009a\u0004", "\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004\u009e\t", "\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t\u00a1\u0004", "\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004\u00a5\t", "\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t\u00a8\u0004", "\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004\u00ac\t", "\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t\u00af\u0004", "\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004\u00b3\t", "\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t\u00b6\u0004", "\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004\u00ba\t", "\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t\u00bd\u0004", "\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004\u00c1\t", "\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t\u00c4\u0004", "\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004\u00c8\t", "\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t\u00cb\u0004", "\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004\u00cf\t", "\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t\u00d2\u0004", "\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004\u00d6\t", "\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t\u00d9\u0004", "\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004\u00dd\t", "\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t\u00e0\u0004", "\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004\u00e4\t", "\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t\u00e7\u0004", "\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004\u00eb\t", "\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t\u00ee\u0004", "\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004\u00f2\t", "\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0003\u0002\u0003\u0002", "\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0005\u0002\u01ef\n", "\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0005", "\u0002\u01f6\n\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002", "\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003", "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003", "\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004", "\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", "\u0005\u0005\u0214\n\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003", "\u0006\u0005\u0006\u021a\n\u0006\u0003\u0006\u0003\u0006\u0003\u0006", "\u0005\u0006\u021f\n\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", "\u0006\u0005\u0006\u0225\n\u0006\u0005\u0006\u0227\n\u0006\u0003\u0006", "\u0005\u0006\u022a\n\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003", "\u0007\u0003\u0007\u0005\u0007\u0231\n\u0007\u0003\u0007\u0003\u0007", "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0005\u0007", "\u023a\n\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", "\b\u0003\b\u0003\b\u0003\b\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0253", "\n\t\u0003\t\u0003\t\u0005\t\u0257\n\t\u0003\t\u0003\t\u0003\t\u0003", "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0262\n\t\u0003\t", "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u026b\n\t\u0003", "\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003", "\n\u0003\n\u0003\n\u0003\n\u0005\n\u027a\n\n\u0003\n\u0003\n\u0003\n", "\u0003\n\u0003\n\u0003\n\u0003\n\u0005\n\u0283\n\n\u0003\u000b\u0003", "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0005\u000b\u028a\n\u000b", "\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0005", "\f\u0294\n\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r", "\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003", "\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0005\u000e\u02aa", "\n\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e", "\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", "\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0005\u0010\u02c1\n", "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003", "\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0005", "\u0011\u02ce\n\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011", "\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0005\u0011", "\u02d9\n\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", "\u0011\u0003\u0011\u0005\u0011\u02e7\n\u0011\u0003\u0012\u0003\u0012", "\u0003\u0012\u0003\u0012\u0005\u0012\u02ed\n\u0012\u0003\u0012\u0003", "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", "\u0012\u0003\u0012\u0005\u0012\u02f8\n\u0012\u0003\u0012\u0003\u0012", "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012", "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u0306\n", "\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003", "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014\u0003\u0014\u0003", "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0007\u0014\u0318", "\n\u0014\f\u0014\u000e\u0014\u031b\u000b\u0014\u0003\u0015\u0003\u0015", "\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015", "\u0005\u0015\u0325\n\u0015\u0005\u0015\u0327\n\u0015\u0003\u0016\u0003", "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0005", "\u0016\u0330\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0334\n\u0016", "\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017", "\u0005\u0017\u033c\n\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u0340", "\n\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017", "\u0005\u0017\u0347\n\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003", "\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u034f\n\u0018\u0003\u0018", "\u0003\u0018\u0003\u0018\u0005\u0018\u0354\n\u0018\u0003\u0018\u0003", "\u0018\u0005\u0018\u0358\n\u0018\u0003\u0018\u0003\u0018\u0003\u0018", "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019", "\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019", "\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019", "\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0005\u0019\u0373\n", "\u0019\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0005", "\u001b\u037a\n\u001b\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c", "\u037f\n\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u0383\n\u001c\u0003", "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", "\u001d\u0003\u001d\u0005\u001d\u0399\n\u001d\u0003\u001e\u0003\u001e", "\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f", "\u03a2\n\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u03a6\n\u001f\u0003", "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005", "\u001f\u03ae\n\u001f\u0003 \u0003 \u0005 \u03b2\n \u0003 \u0003 \u0003", " \u0005 \u03b7\n \u0003 \u0003 \u0003 \u0003 \u0003 \u0005 \u03be\n", " \u0003 \u0005 \u03c1\n \u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003", "!\u0003!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", "\"\u0003\"\u0003\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#", "\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0005#\u03e2\n#\u0003#\u0003", "#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", "$\u0003$\u0003$\u0003$\u0003$\u0003$\u0005$\u03f5\n$\u0003%\u0003%\u0003", "%\u0003%\u0003%\u0005%\u03fc\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003", "%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003", "&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003(\u0003", "(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005(\u041e\n(\u0003", "(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005(\u0427\n(\u0003)\u0003", ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003", ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u043c\n)\f", ")\u000e)\u043f\u000b)\u0003*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003", "+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005+\u044e\n+\u0003+\u0003", "+\u0003+\u0005+\u0453\n+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005", "+\u045b\n+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005+\u0464", "\n+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", ",\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", ",\u0003,\u0005,\u047b\n,\u0003-\u0003-\u0003.\u0003.\u0005.\u0481\n", ".\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0005/\u048a\n/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0005/\u04a4\n/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0007/\u0514\n/\f/\u000e/\u0517", "\u000b/\u00030\u00030\u00030\u00030\u00030\u00070\u051e\n0\f0\u000e", "0\u0521\u000b0\u00031\u00031\u00031\u00031\u00032\u00032\u00032\u0003", "2\u00032\u00033\u00033\u00034\u00034\u00034\u00034\u00054\u0532\n4\u0003", "5\u00035\u00035\u00035\u00035\u00075\u0539\n5\f5\u000e5\u053c\u000b", "5\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003", "6\u00036\u00036\u00036\u00056\u054b\n6\u00037\u00037\u00037\u00057\u0550", "\n7\u00038\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u00059\u055a", "\n9\u00039\u00039\u00039\u00059\u055f\n9\u00059\u0561\n9\u00039\u0003", "9\u00039\u00039\u00059\u0567\n9\u00059\u0569\n9\u00059\u056b\n9\u0003", ":\u0003:\u0003:\u0003:\u0003:\u0003;\u0003;\u0003;\u0003;\u0003<\u0003", "<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0005=\u057f\n=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0005=\u0586\n=\u0003=\u0003=\u0005=\u058a", "\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0005", "=\u0595\n=\u0003=\u0003=\u0005=\u0599\n=\u0003=\u0003=\u0003=\u0005", "=\u059e\n=\u0005=\u05a0\n=\u0003>\u0003>\u0003>\u0005>\u05a5\n>\u0003", ">\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003", ">\u0003>\u0003>\u0005>\u05b4\n>\u0003>\u0003>\u0005>\u05b8\n>\u0003", ">\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005>\u05c3", "\n>\u0003>\u0003>\u0005>\u05c7\n>\u0003>\u0003>\u0003>\u0005>\u05cc", "\n>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005>\u05d6", "\n>\u0003?\u0003?\u0005?\u05da\n?\u0003?\u0003?\u0003?\u0003?\u0003", "?\u0003?\u0005?\u05e2\n?\u0003@\u0003@\u0003@\u0003@\u0003@\u0005@\u05e9", "\n@\u0005@\u05eb\n@\u0003@\u0003@\u0003@\u0005@\u05f0\n@\u0005@\u05f2", "\n@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0007A\u05fb\n", "A\fA\u000eA\u05fe\u000bA\u0003B\u0003B\u0003B\u0005B\u0603\nB\u0003", "B\u0003B\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0003D\u0003", "D\u0003D\u0003D\u0003D\u0005D\u0613\nD\u0003E\u0003E\u0003E\u0003E\u0003", "F\u0007F\u061a\nF\fF\u000eF\u061d\u000bF\u0003G\u0006G\u0620\nG\rG\u000e", "G\u0621\u0003H\u0007H\u0625\nH\fH\u000eH\u0628\u000bH\u0003I\u0006I", "\u062b\nI\rI\u000eI\u062c\u0003I\u0003I\u0003J\u0007J\u0632\nJ\fJ\u000e", "J\u0635\u000bJ\u0003J\u0003J\u0003K\u0003K\u0003L\u0005L\u063c\nL\u0003", "L\u0003L\u0003L\u0003M\u0003M\u0003M\u0003M\u0007M\u0645\nM\fM\u000e", "M\u0648\u000bM\u0003N\u0003N\u0003N\u0007N\u064d\nN\fN\u000eN\u0650", "\u000bN\u0003N\u0003N\u0003N\u0007N\u0655\nN\fN\u000eN\u0658\u000bN", "\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u0660\nN\u0003O\u0003", "O\u0003O\u0003O\u0003O\u0005O\u0667\nO\u0003P\u0003P\u0003Q\u0003Q\u0003", "R\u0003R\u0005R\u066f\nR\u0003S\u0003S\u0003S\u0003S\u0007S\u0675\n", "S\fS\u000eS\u0678\u000bS\u0003T\u0003T\u0003T\u0003T\u0007T\u067e\n", "T\fT\u000eT\u0681\u000bT\u0003U\u0003U\u0003U\u0007U\u0686\nU\fU\u000e", "U\u0689\u000bU\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", "V\u0003V\u0003V\u0005V\u0695\nV\u0003W\u0005W\u0698\nW\u0003W\u0003", "W\u0005W\u069c\nW\u0003W\u0003W\u0003X\u0005X\u06a1\nX\u0003X\u0003", "X\u0005X\u06a5\nX\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0007Y\u06ac\n", "Y\fY\u000eY\u06af\u000bY\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", "[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003", "[\u0003[\u0005[\u06c3\n[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003", "[\u0007[\u06cc\n[\f[\u000e[\u06cf\u000b[\u0003\\\u0003\\\u0005\\\u06d3", "\n\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]", "\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0005]\u06e5\n]\u0003", "^\u0003^\u0003_\u0005_\u06ea\n_\u0003_\u0003_\u0003`\u0003`\u0003a\u0003", "a\u0003a\u0005a\u06f3\na\u0003b\u0003b\u0005b\u06f7\nb\u0003c\u0003", "c\u0003c\u0007c\u06fc\nc\fc\u000ec\u06ff\u000bc\u0003d\u0003d\u0005", "d\u0703\nd\u0003e\u0003e\u0005e\u0707\ne\u0003f\u0003f\u0003f\u0003", "f\u0003g\u0003g\u0003g\u0003h\u0003h\u0003h\u0005h\u0713\nh\u0003i\u0003", "i\u0003j\u0003j\u0003k\u0003k\u0003l\u0003l\u0003m\u0003m\u0003n\u0003", "n\u0003n\u0007n\u0722\nn\fn\u000en\u0725\u000bn\u0003o\u0003o\u0005", "o\u0729\no\u0003o\u0005o\u072c\no\u0003p\u0003p\u0005p\u0730\np\u0003", "q\u0003q\u0003q\u0005q\u0735\nq\u0003r\u0003r\u0003r\u0003s\u0003s\u0005", "s\u073c\ns\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", "t\u0007t\u0747\nt\ft\u000et\u074a\u000bt\u0003u\u0003u\u0003u\u0003", "u\u0007u\u0750\nu\fu\u000eu\u0753\u000bu\u0003v\u0003v\u0003v\u0007", "v\u0758\nv\fv\u000ev\u075b\u000bv\u0003v\u0003v\u0003v\u0007v\u0760", "\nv\fv\u000ev\u0763\u000bv\u0003v\u0003v\u0003v\u0003v\u0003v\u0005", "v\u076a\nv\u0003w\u0003w\u0003w\u0003w\u0007w\u0770\nw\fw\u000ew\u0773", "\u000bw\u0003x\u0003x\u0003x\u0005x\u0778\nx\u0003y\u0003y\u0003y\u0003", "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0005y\u0784\ny\u0003z\u0003", "z\u0005z\u0788\nz\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0007{\u0790", "\n{\f{\u000e{\u0793\u000b{\u0003|\u0003|\u0003|\u0007|\u0798\n|\f|\u000e", "|\u079b\u000b|\u0003|\u0005|\u079e\n|\u0003}\u0003}\u0003}\u0003}\u0005", "}\u07a4\n}\u0003}\u0003}\u0003}\u0007}\u07a9\n}\f}\u000e}\u07ac\u000b", "}\u0003}\u0003}\u0005}\u07b0\n}\u0003~\u0003~\u0003~\u0007~\u07b5\n", "~\f~\u000e~\u07b8\u000b~\u0003\u007f\u0003\u007f\u0003\u007f\u0007\u007f", "\u07bd\n\u007f\f\u007f\u000e\u007f\u07c0\u000b\u007f\u0003\u0080\u0003", "\u0080\u0003\u0080\u0003\u0080\u0005\u0080\u07c6\n\u0080\u0003\u0081", "\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0007\u0082", "\u07ce\n\u0082\f\u0082\u000e\u0082\u07d1\u000b\u0082\u0003\u0083\u0003", "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", "\u0083\u0003\u0083\u0003\u0083\u0005\u0083\u07dd\n\u0083\u0003\u0084", "\u0003\u0084\u0005\u0084\u07e1\n\u0084\u0003\u0084\u0005\u0084\u07e4", "\n\u0084\u0003\u0085\u0003\u0085\u0005\u0085\u07e8\n\u0085\u0003\u0085", "\u0005\u0085\u07eb\n\u0085\u0003\u0086\u0003\u0086\u0003\u0086\u0003", "\u0086\u0007\u0086\u07f1\n\u0086\f\u0086\u000e\u0086\u07f4\u000b\u0086", "\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0007\u0087\u07fa\n", "\u0087\f\u0087\u000e\u0087\u07fd\u000b\u0087\u0003\u0088\u0003\u0088", "\u0003\u0088\u0003\u0088\u0007\u0088\u0803\n\u0088\f\u0088\u000e\u0088", "\u0806\u000b\u0088\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0007", "\u0089\u080c\n\u0089\f\u0089\u000e\u0089\u080f\u000b\u0089\u0003\u008a", "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", "\u0003\u008a\u0005\u008a\u081f\n\u008a\u0003\u008b\u0003\u008b\u0003", "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", "\u008b\u0005\u008b\u0830\n\u008b\u0003\u008c\u0003\u008c\u0003\u008c", "\u0007\u008c\u0835\n\u008c\f\u008c\u000e\u008c\u0838\u000b\u008c\u0003", "\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003", "\u008f\u0003\u008f\u0005\u008f\u0842\n\u008f\u0003\u0090\u0003\u0090", "\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0005\u0090\u084a\n", "\u0090\u0003\u0091\u0005\u0091\u084d\n\u0091\u0003\u0091\u0003\u0091", "\u0005\u0091\u0851\n\u0091\u0003\u0091\u0003\u0091\u0003\u0092\u0005", "\u0092\u0856\n\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092", "\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0005\u0092\u0860\n", "\u0092\u0003\u0093\u0003\u0093\u0005\u0093\u0864\n\u0093\u0003\u0093", "\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094", "\u0007\u0094\u086d\n\u0094\f\u0094\u000e\u0094\u0870\u000b\u0094\u0005", "\u0094\u0872\n\u0094\u0003\u0095\u0003\u0095\u0003\u0095\u0007\u0095", "\u0877\n\u0095\f\u0095\u000e\u0095\u087a\u000b\u0095\u0003\u0096\u0003", "\u0096\u0003\u0096\u0003\u0096\u0003\u0097\u0003\u0097\u0005\u0097\u0882", "\n\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098", "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u088d\n", "\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u009a\u0003", "\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0007\u009a\u0898\n\u009a", "\f\u009a\u000e\u009a\u089b\u000b\u009a\u0003\u009b\u0003\u009b\u0003", "\u009b\u0003\u009b\u0005\u009b\u08a1\n\u009b\u0003\u009c\u0003\u009c", "\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009d\u0003\u009d\u0003\u009d", "\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0007\u009e", "\u08b0\n\u009e\f\u009e\u000e\u009e\u08b3\u000b\u009e\u0003\u009f\u0003", "\u009f\u0003\u009f\u0007\u009f\u08b8\n\u009f\f\u009f\u000e\u009f\u08bb", "\u000b\u009f\u0003\u009f\u0005\u009f\u08be\n\u009f\u0003\u00a0\u0003", "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u08c6", "\n\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2", "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4", "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6", "\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9", "\u0003\u00aa\u0003\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003\u00ac", "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac", "\u08ea\n\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", "\u00ad\u0007\u00ad\u08f1\n\u00ad\f\u00ad\u000e\u00ad\u08f4\u000b\u00ad", "\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", "\u0003\u00ae\u0005\u00ae\u08fd\n\u00ae\u0003\u00af\u0003\u00af\u0003", "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", "\u00b1\u0003\u00b1\u0005\u00b1\u0909\n\u00b1\u0003\u00b2\u0003\u00b2", "\u0003\u00b2\u0005\u00b2\u090e\n\u00b2\u0003\u00b2\u0003\u00b2\u0003", "\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0007", "\u00b3\u0918\n\u00b3\f\u00b3\u000e\u00b3\u091b\u000b\u00b3\u0003\u00b4", "\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5", "\u0003\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7", "\u0003\u00b7\u0003\u00b7\u0005\u00b7\u092c\n\u00b7\u0003\u00b8\u0003", "\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0933\n\u00b9", "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0007\u00ba", "\u093a\n\u00ba\f\u00ba\u000e\u00ba\u093d\u000b\u00ba\u0003\u00bb\u0003", "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0944\n\u00bb", "\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", "\u0003\u00bd\u0003\u00bd\u0005\u00bd\u094e\n\u00bd\u0003\u00be\u0003", "\u00be\u0003\u00be\u0005\u00be\u0953\n\u00be\u0003\u00be\u0003\u00be", "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", "\u0005\u00bf\u095d\n\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", "\u00c0\u0003\u00c0\u0003\u00c0\u0007\u00c0\u0965\n\u00c0\f\u00c0\u000e", "\u00c0\u0968\u000b\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0007\u00c1\u0975\n\u00c1\f\u00c1\u000e\u00c1\u0978\u000b", "\u00c1\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003", "\u00c3\u0003\u00c3\u0005\u00c3\u0981\n\u00c3\u0003\u00c3\u0003\u00c3", "\u0003\u00c3\u0007\u00c3\u0986\n\u00c3\f\u00c3\u000e\u00c3\u0989\u000b", "\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0005", "\u00c4\u0990\n\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003\u00c6", "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6", "\u099b\n\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", "\u00c7\u0007\u00c7\u09a2\n\u00c7\f\u00c7\u000e\u00c7\u09a5\u000b\u00c7", "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8", "\u09ac\n\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003\u00ca\u0003", "\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u09b6\n\u00cb", "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u09bb\n\u00cc\u0003", "\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", "\u00cd\u0003\u00cd\u0007\u00cd\u09c5\n\u00cd\f\u00cd\u000e\u00cd\u09c8", "\u000b\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf", "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0", "\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0007\u00d0\u09d8\n\u00d0\f\u00d0", "\u000e\u00d0\u09db\u000b\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", "\u00d1\u0003\u00d1\u0007\u00d1\u09e2\n\u00d1\f\u00d1\u000e\u00d1\u09e5", "\u000b\u00d1\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2", "\u0005\u00d2\u09ec\n\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003", "\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0005", "\u00d4\u09f7\n\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", "\u0003\u00d5\u0007\u00d5\u09fe\n\u00d5\f\u00d5\u000e\u00d5\u0a01\u000b", "\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0005", "\u00d6\u0a08\n\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8", "\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0005\u00d9\u0a12\n", "\u00d9\u0003\u00da\u0003\u00da\u0003\u00da\u0005\u00da\u0a17\n\u00da", "\u0003\u00da\u0003\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db", "\u0003\u00db\u0003\u00db\u0007\u00db\u0a21\n\u00db\f\u00db\u000e\u00db", "\u0a24\u000b\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00de\u0003\u00de\u0003", "\u00de\u0005\u00de\u0a31\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de", "\u0007\u00de\u0a36\n\u00de\f\u00de\u000e\u00de\u0a39\u000b\u00de\u0003", "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u0a40", "\n\u00df\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0005\u00e1", "\u0a46\n\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2\u0a4b", "\n\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2\u0a4f\n\u00e2\u0003\u00e3", "\u0003\u00e3\u0005\u00e3\u0a53\n\u00e3\u0003\u00e3\u0003\u00e3\u0003", "\u00e4\u0003\u00e4\u0003\u00e4\u0005\u00e4\u0a5a\n\u00e4\u0003\u00e5", "\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6", "\u0003\u00e6\u0007\u00e6\u0a64\n\u00e6\f\u00e6\u000e\u00e6\u0a67\u000b", "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003\u00e7\u0003", "\u00e7\u0003\u00e7\u0007\u00e7\u0a70\n\u00e7\f\u00e7\u000e\u00e7\u0a73", "\u000b\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8", "\u0003\u00e8\u0003\u00e8\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0007\u00e9", "\u0a7f\n\u00e9\f\u00e9\u000e\u00e9\u0a82\u000b\u00e9\u0003\u00ea\u0003", "\u00ea\u0007\u00ea\u0a86\n\u00ea\f\u00ea\u000e\u00ea\u0a89\u000b\u00ea", "\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0005\u00eb\u0a8e\n\u00eb\u0003", "\u00eb\u0003\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003", "\u00ec\u0005\u00ec\u0a97\n\u00ec\u0003\u00ed\u0006\u00ed\u0a9a\n\u00ed", "\r\u00ed\u000e\u00ed\u0a9b\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003", "\u00ee\u0005\u00ee\u0aa2\n\u00ee\u0003\u00ee\u0005\u00ee\u0aa5\n\u00ee", "\u0003\u00ef\u0006\u00ef\u0aa8\n\u00ef\r\u00ef\u000e\u00ef\u0aa9\u0003", "\u00f0\u0003\u00f0\u0006\u00f0\u0aae\n\u00f0\r\u00f0\u000e\u00f0\u0aaf", "\u0003\u00f0\u0003\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1", "\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0005\u00f2", "\u0abd\n\u00f2\u0003\u00f2\u0003\u00f2\u0006\u00f2\u0ac1\n\u00f2\r\u00f2", "\u000e\u00f2\u0ac2\u0007\u00f2\u0ac5\n\u00f2\f\u00f2\u000e\u00f2\u0ac8", "\u000b\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3", "\u0005\u00f3\u0acf\n\u00f3\u0003\u00f4\u0006\u00f4\u0ad2\n\u00f4\r\u00f4", "\u000e\u00f4\u0ad3\u0003\u00f4\u0002\u0019&P\\^h\u0080\u00b4\u00e6\u0132", "\u0158\u0164\u0172\u017e\u0180\u0184\u018c\u0198\u019e\u01a0\u01a8\u01b4", "\u01ba\u01e2\u00f5\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016", "\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnp", "rtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092", "\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa", "\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2", "\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da", "\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2", "\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a", "\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122", "\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a", "\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152", "\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a", "\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182", "\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a", "\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2", "\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca", "\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2", "\u01e4\u01e6\u0002\u0010\u0003\u0002\"#\u0004\u0002\u0003\u0003\u0007", "\t\u0004\u0002\u0094\u0094\u00aa\u00aa\u0003\u0002\u00a8\u00aa\u0004", "\u0002\u0090\u0090\u0099\u0099\u0004\u0002NN__\u0005\u0002\u000b\u0010", "5\u0097\u0099\u00a3\u0004\u0002\'\'zz\r\u00025>DDGG}}\u0080\u0080\u008a", "\u008a\u0090\u0090\u0097\u0097\u00a3\u00a3\u00a8\u00aa\u00ac\u00ac\f", "\u00025>DDGG}}\u0080\u0080\u008a\u008a\u0097\u0097\u0099\u0099\u00a3", "\u00a3\u00a8\u00aa\f\u00025>DDGG}}\u0080\u0080\u008a\u008a\u0090\u0090", "\u0097\u0097\u00a3\u00a3\u00a8\u00ac\f\u00025>DDGG}}\u0080\u0080\u008a", "\u008a\u0090\u0090\u0097\u0097\u00a3\u00a3\u00a8\u00aa\u0005\u0002\u001a", "\u001b((**\u0005\u0002\t\t\u0011\u0012\u001a\u001b\u0002\u0b77\u0002", "\u01e8\u0003\u0002\u0002\u0002\u0004\u01fd\u0003\u0002\u0002\u0002\u0006", "\u0209\u0003\u0002\u0002\u0002\b\u020f\u0003\u0002\u0002\u0002\n\u0215", "\u0003\u0002\u0002\u0002\f\u022b\u0003\u0002\u0002\u0002\u000e\u023b", "\u0003\u0002\u0002\u0002\u0010\u024e\u0003\u0002\u0002\u0002\u0012\u026c", "\u0003\u0002\u0002\u0002\u0014\u0289\u0003\u0002\u0002\u0002\u0016\u028b", "\u0003\u0002\u0002\u0002\u0018\u029b\u0003\u0002\u0002\u0002\u001a\u02a5", "\u0003\u0002\u0002\u0002\u001c\u02b2\u0003\u0002\u0002\u0002\u001e\u02bc", "\u0003\u0002\u0002\u0002 \u02c9\u0003\u0002\u0002\u0002\"\u02e8\u0003", "\u0002\u0002\u0002$\u0307\u0003\u0002\u0002\u0002&\u0310\u0003\u0002", "\u0002\u0002(\u0326\u0003\u0002\u0002\u0002*\u0328\u0003\u0002\u0002", "\u0002,\u0335\u0003\u0002\u0002\u0002.\u034a\u0003\u0002\u0002\u0002", "0\u035f\u0003\u0002\u0002\u00022\u0374\u0003\u0002\u0002\u00024\u0376", "\u0003\u0002\u0002\u00026\u037b\u0003\u0002\u0002\u00028\u0398\u0003", "\u0002\u0002\u0002:\u039a\u0003\u0002\u0002\u0002<\u03a5\u0003\u0002", "\u0002\u0002>\u03c0\u0003\u0002\u0002\u0002@\u03c2\u0003\u0002\u0002", "\u0002B\u03cb\u0003\u0002\u0002\u0002D\u03d4\u0003\u0002\u0002\u0002", "F\u03f4\u0003\u0002\u0002\u0002H\u03f6\u0003\u0002\u0002\u0002J\u0404", "\u0003\u0002\u0002\u0002L\u040d\u0003\u0002\u0002\u0002N\u0414\u0003", "\u0002\u0002\u0002P\u0428\u0003\u0002\u0002\u0002R\u0440\u0003\u0002", "\u0002\u0002T\u0443\u0003\u0002\u0002\u0002V\u047a\u0003\u0002\u0002", "\u0002X\u047c\u0003\u0002\u0002\u0002Z\u047e\u0003\u0002\u0002\u0002", "\\\u04a3\u0003\u0002\u0002\u0002^\u0518\u0003\u0002\u0002\u0002`\u0522", "\u0003\u0002\u0002\u0002b\u0526\u0003\u0002\u0002\u0002d\u052b\u0003", "\u0002\u0002\u0002f\u0531\u0003\u0002\u0002\u0002h\u0533\u0003\u0002", "\u0002\u0002j\u054a\u0003\u0002\u0002\u0002l\u054c\u0003\u0002\u0002", "\u0002n\u0551\u0003\u0002\u0002\u0002p\u056a\u0003\u0002\u0002\u0002", "r\u056c\u0003\u0002\u0002\u0002t\u0571\u0003\u0002\u0002\u0002v\u0575", "\u0003\u0002\u0002\u0002x\u059f\u0003\u0002\u0002\u0002z\u05d5\u0003", "\u0002\u0002\u0002|\u05d7\u0003\u0002\u0002\u0002~\u05f1\u0003\u0002", "\u0002\u0002\u0080\u05f3\u0003\u0002\u0002\u0002\u0082\u0602\u0003\u0002", "\u0002\u0002\u0084\u0606\u0003\u0002\u0002\u0002\u0086\u0612\u0003\u0002", "\u0002\u0002\u0088\u0614\u0003\u0002\u0002\u0002\u008a\u061b\u0003\u0002", "\u0002\u0002\u008c\u061f\u0003\u0002\u0002\u0002\u008e\u0626\u0003\u0002", "\u0002\u0002\u0090\u062a\u0003\u0002\u0002\u0002\u0092\u0633\u0003\u0002", "\u0002\u0002\u0094\u0638\u0003\u0002\u0002\u0002\u0096\u063b\u0003\u0002", "\u0002\u0002\u0098\u0640\u0003\u0002\u0002\u0002\u009a\u064e\u0003\u0002", "\u0002\u0002\u009c\u0661\u0003\u0002\u0002\u0002\u009e\u0668\u0003\u0002", "\u0002\u0002\u00a0\u066a\u0003\u0002\u0002\u0002\u00a2\u066e\u0003\u0002", "\u0002\u0002\u00a4\u0670\u0003\u0002\u0002\u0002\u00a6\u0679\u0003\u0002", "\u0002\u0002\u00a8\u0682\u0003\u0002\u0002\u0002\u00aa\u0694\u0003\u0002", "\u0002\u0002\u00ac\u0697\u0003\u0002\u0002\u0002\u00ae\u06a0\u0003\u0002", "\u0002\u0002\u00b0\u06a8\u0003\u0002\u0002\u0002\u00b2\u06b0\u0003\u0002", "\u0002\u0002\u00b4\u06c2\u0003\u0002\u0002\u0002\u00b6\u06d2\u0003\u0002", "\u0002\u0002\u00b8\u06e4\u0003\u0002\u0002\u0002\u00ba\u06e6\u0003\u0002", "\u0002\u0002\u00bc\u06e9\u0003\u0002\u0002\u0002\u00be\u06ed\u0003\u0002", "\u0002\u0002\u00c0\u06f2\u0003\u0002\u0002\u0002\u00c2\u06f6\u0003\u0002", "\u0002\u0002\u00c4\u06f8\u0003\u0002\u0002\u0002\u00c6\u0702\u0003\u0002", "\u0002\u0002\u00c8\u0706\u0003\u0002\u0002\u0002\u00ca\u0708\u0003\u0002", "\u0002\u0002\u00cc\u070c\u0003\u0002\u0002\u0002\u00ce\u0712\u0003\u0002", "\u0002\u0002\u00d0\u0714\u0003\u0002\u0002\u0002\u00d2\u0716\u0003\u0002", "\u0002\u0002\u00d4\u0718\u0003\u0002\u0002\u0002\u00d6\u071a\u0003\u0002", "\u0002\u0002\u00d8\u071c\u0003\u0002\u0002\u0002\u00da\u071e\u0003\u0002", "\u0002\u0002\u00dc\u072b\u0003\u0002\u0002\u0002\u00de\u072f\u0003\u0002", "\u0002\u0002\u00e0\u0731\u0003\u0002\u0002\u0002\u00e2\u0736\u0003\u0002", "\u0002\u0002\u00e4\u073b\u0003\u0002\u0002\u0002\u00e6\u073d\u0003\u0002", "\u0002\u0002\u00e8\u074b\u0003\u0002\u0002\u0002\u00ea\u0759\u0003\u0002", "\u0002\u0002\u00ec\u076b\u0003\u0002\u0002\u0002\u00ee\u0777\u0003\u0002", "\u0002\u0002\u00f0\u0783\u0003\u0002\u0002\u0002\u00f2\u0785\u0003\u0002", "\u0002\u0002\u00f4\u0789\u0003\u0002\u0002\u0002\u00f6\u0794\u0003\u0002", "\u0002\u0002\u00f8\u079f\u0003\u0002\u0002\u0002\u00fa\u07b1\u0003\u0002", "\u0002\u0002\u00fc\u07b9\u0003\u0002\u0002\u0002\u00fe\u07c5\u0003\u0002", "\u0002\u0002\u0100\u07c7\u0003\u0002\u0002\u0002\u0102\u07c9\u0003\u0002", "\u0002\u0002\u0104\u07dc\u0003\u0002\u0002\u0002\u0106\u07de\u0003\u0002", "\u0002\u0002\u0108\u07e5\u0003\u0002\u0002\u0002\u010a\u07ec\u0003\u0002", "\u0002\u0002\u010c\u07f5\u0003\u0002\u0002\u0002\u010e\u07fe\u0003\u0002", "\u0002\u0002\u0110\u0807\u0003\u0002\u0002\u0002\u0112\u081e\u0003\u0002", "\u0002\u0002\u0114\u082f\u0003\u0002\u0002\u0002\u0116\u0831\u0003\u0002", "\u0002\u0002\u0118\u0839\u0003\u0002\u0002\u0002\u011a\u083b\u0003\u0002", "\u0002\u0002\u011c\u0841\u0003\u0002\u0002\u0002\u011e\u0849\u0003\u0002", "\u0002\u0002\u0120\u084c\u0003\u0002\u0002\u0002\u0122\u0855\u0003\u0002", "\u0002\u0002\u0124\u0861\u0003\u0002\u0002\u0002\u0126\u0867\u0003\u0002", "\u0002\u0002\u0128\u0873\u0003\u0002\u0002\u0002\u012a\u087b\u0003\u0002", "\u0002\u0002\u012c\u0881\u0003\u0002\u0002\u0002\u012e\u088c\u0003\u0002", "\u0002\u0002\u0130\u088e\u0003\u0002\u0002\u0002\u0132\u0892\u0003\u0002", "\u0002\u0002\u0134\u08a0\u0003\u0002\u0002\u0002\u0136\u08a2\u0003\u0002", "\u0002\u0002\u0138\u08a7\u0003\u0002\u0002\u0002\u013a\u08ac\u0003\u0002", "\u0002\u0002\u013c\u08b4\u0003\u0002\u0002\u0002\u013e\u08c5\u0003\u0002", "\u0002\u0002\u0140\u08c7\u0003\u0002\u0002\u0002\u0142\u08c9\u0003\u0002", "\u0002\u0002\u0144\u08cc\u0003\u0002\u0002\u0002\u0146\u08cf\u0003\u0002", "\u0002\u0002\u0148\u08d2\u0003\u0002\u0002\u0002\u014a\u08d5\u0003\u0002", "\u0002\u0002\u014c\u08d8\u0003\u0002\u0002\u0002\u014e\u08da\u0003\u0002", "\u0002\u0002\u0150\u08dc\u0003\u0002\u0002\u0002\u0152\u08de\u0003\u0002", "\u0002\u0002\u0154\u08e0\u0003\u0002\u0002\u0002\u0156\u08e9\u0003\u0002", "\u0002\u0002\u0158\u08eb\u0003\u0002\u0002\u0002\u015a\u08fc\u0003\u0002", "\u0002\u0002\u015c\u08fe\u0003\u0002\u0002\u0002\u015e\u0900\u0003\u0002", "\u0002\u0002\u0160\u0908\u0003\u0002\u0002\u0002\u0162\u090a\u0003\u0002", "\u0002\u0002\u0164\u0911\u0003\u0002\u0002\u0002\u0166\u091c\u0003\u0002", "\u0002\u0002\u0168\u0920\u0003\u0002\u0002\u0002\u016a\u0924\u0003\u0002", "\u0002\u0002\u016c\u092b\u0003\u0002\u0002\u0002\u016e\u092d\u0003\u0002", "\u0002\u0002\u0170\u0932\u0003\u0002\u0002\u0002\u0172\u0934\u0003\u0002", "\u0002\u0002\u0174\u0943\u0003\u0002\u0002\u0002\u0176\u0945\u0003\u0002", "\u0002\u0002\u0178\u094d\u0003\u0002\u0002\u0002\u017a\u094f\u0003\u0002", "\u0002\u0002\u017c\u095c\u0003\u0002\u0002\u0002\u017e\u095e\u0003\u0002", "\u0002\u0002\u0180\u0969\u0003\u0002\u0002\u0002\u0182\u0979\u0003\u0002", "\u0002\u0002\u0184\u0980\u0003\u0002\u0002\u0002\u0186\u098f\u0003\u0002", "\u0002\u0002\u0188\u0991\u0003\u0002\u0002\u0002\u018a\u099a\u0003\u0002", "\u0002\u0002\u018c\u099c\u0003\u0002\u0002\u0002\u018e\u09ab\u0003\u0002", "\u0002\u0002\u0190\u09ad\u0003\u0002\u0002\u0002\u0192\u09af\u0003\u0002", "\u0002\u0002\u0194\u09b5\u0003\u0002\u0002\u0002\u0196\u09b7\u0003\u0002", "\u0002\u0002\u0198\u09be\u0003\u0002\u0002\u0002\u019a\u09c9\u0003\u0002", "\u0002\u0002\u019c\u09cd\u0003\u0002\u0002\u0002\u019e\u09d1\u0003\u0002", "\u0002\u0002\u01a0\u09dc\u0003\u0002\u0002\u0002\u01a2\u09eb\u0003\u0002", "\u0002\u0002\u01a4\u09ed\u0003\u0002\u0002\u0002\u01a6\u09f6\u0003\u0002", "\u0002\u0002\u01a8\u09f8\u0003\u0002\u0002\u0002\u01aa\u0a07\u0003\u0002", "\u0002\u0002\u01ac\u0a09\u0003\u0002\u0002\u0002\u01ae\u0a0b\u0003\u0002", "\u0002\u0002\u01b0\u0a11\u0003\u0002\u0002\u0002\u01b2\u0a13\u0003\u0002", "\u0002\u0002\u01b4\u0a1a\u0003\u0002\u0002\u0002\u01b6\u0a25\u0003\u0002", "\u0002\u0002\u01b8\u0a29\u0003\u0002\u0002\u0002\u01ba\u0a30\u0003\u0002", "\u0002\u0002\u01bc\u0a3f\u0003\u0002\u0002\u0002\u01be\u0a41\u0003\u0002", "\u0002\u0002\u01c0\u0a45\u0003\u0002\u0002\u0002\u01c2\u0a4e\u0003\u0002", "\u0002\u0002\u01c4\u0a50\u0003\u0002\u0002\u0002\u01c6\u0a59\u0003\u0002", "\u0002\u0002\u01c8\u0a5b\u0003\u0002\u0002\u0002\u01ca\u0a5f\u0003\u0002", "\u0002\u0002\u01cc\u0a6b\u0003\u0002\u0002\u0002\u01ce\u0a76\u0003\u0002", "\u0002\u0002\u01d0\u0a7b\u0003\u0002\u0002\u0002\u01d2\u0a83\u0003\u0002", "\u0002\u0002\u01d4\u0a8a\u0003\u0002\u0002\u0002\u01d6\u0a96\u0003\u0002", "\u0002\u0002\u01d8\u0a99\u0003\u0002\u0002\u0002\u01da\u0aa4\u0003\u0002", "\u0002\u0002\u01dc\u0aa7\u0003\u0002\u0002\u0002\u01de\u0aab\u0003\u0002", "\u0002\u0002\u01e0\u0ab3\u0003\u0002\u0002\u0002\u01e2\u0abc\u0003\u0002", "\u0002\u0002\u01e4\u0ace\u0003\u0002\u0002\u0002\u01e6\u0ad1\u0003\u0002", "\u0002\u0002\u01e8\u01e9\u0007]\u0002\u0002\u01e9\u01ea\u0005\u00d4", "k\u0002\u01ea\u01eb\u0007M\u0002\u0002\u01eb\u01ee\u0007e\u0002\u0002", "\u01ec\u01ef\u0007W\u0002\u0002\u01ed\u01ef\u0005\u00d4k\u0002\u01ee", "\u01ec\u0003\u0002\u0002\u0002\u01ee\u01ed\u0003\u0002\u0002\u0002\u01ef", "\u01f5\u0003\u0002\u0002\u0002\u01f0\u01f1\u0005(\u0015\u0002\u01f1", "\u01f2\u0007\u0013\u0002\u0002\u01f2\u01f3\u0007K\u0002\u0002\u01f3", "\u01f6\u0003\u0002\u0002\u0002\u01f4\u01f6\u0007\u009f\u0002\u0002\u01f5", "\u01f0\u0003\u0002\u0002\u0002\u01f5\u01f4\u0003\u0002\u0002\u0002\u01f6", "\u01f7\u0003\u0002\u0002\u0002\u01f7\u01f8\u0005\u014a\u00a6\u0002\u01f8", "\u01f9\u0007\u0011\u0002\u0002\u01f9\u01fa\u0005\u0090I\u0002\u01fa", "\u01fb\u0005\u00a6T\u0002\u01fb\u01fc\u0005\u0092J\u0002\u01fc\u0003", "\u0003\u0002\u0002\u0002\u01fd\u01fe\u0007]\u0002\u0002\u01fe\u01ff", "\u0005\u00d4k\u0002\u01ff\u0200\u0007M\u0002\u0002\u0200\u0201\u0007", "e\u0002\u0002\u0201\u0202\u0005\u00b8]\u0002\u0202\u0203\u0007\u009f", "\u0002\u0002\u0203\u0204\u0005\u014a\u00a6\u0002\u0204\u0205\u0007\u0011", "\u0002\u0002\u0205\u0206\u0005\u0090I\u0002\u0206\u0207\u0005\u00a4", "S\u0002\u0207\u0208\u0005\u0092J\u0002\u0208\u0005\u0003\u0002\u0002", "\u0002\u0209\u020a\u0005\u00d6l\u0002\u020a\u020b\u0007\u009f\u0002", "\u0002\u020b\u020c\u0005\\/\u0002\u020c\u020d\u0007M\u0002\u0002\u020d", "\u020e\u0005\u0148\u00a5\u0002\u020e\u0007\u0003\u0002\u0002\u0002\u020f", "\u0210\u0005\u00d6l\u0002\u0210\u0213\u0005\u0080A\u0002\u0211\u0212", "\u0007K\u0002\u0002\u0212\u0214\u0005\u0082B\u0002\u0213\u0211\u0003", "\u0002\u0002\u0002\u0213\u0214\u0003\u0002\u0002\u0002\u0214\t\u0003", "\u0002\u0002\u0002\u0215\u0216\u0007]\u0002\u0002\u0216\u0217\u0005", "\u00d2j\u0002\u0217\u0219\u0007M\u0002\u0002\u0218\u021a\u0007\u0094", "\u0002\u0002\u0219\u0218\u0003\u0002\u0002\u0002\u0219\u021a\u0003\u0002", "\u0002\u0002\u021a\u021b\u0003\u0002\u0002\u0002\u021b\u021c\u0005\u00b4", "[\u0002\u021c\u021e\u0007P\u0002\u0002\u021d\u021f\u0005\u00aaV\u0002", "\u021e\u021d\u0003\u0002\u0002\u0002\u021e\u021f\u0003\u0002\u0002\u0002", "\u021f\u0229\u0003\u0002\u0002\u0002\u0220\u0226\u0007\u009f\u0002\u0002", "\u0221\u0224\u0005\u00fa~\u0002\u0222\u0223\u0007K\u0002\u0002\u0223", "\u0225\u0005\u00d0i\u0002\u0224\u0222\u0003\u0002\u0002\u0002\u0224", "\u0225\u0003\u0002\u0002\u0002\u0225\u0227\u0003\u0002\u0002\u0002\u0226", "\u0221\u0003\u0002\u0002\u0002\u0226\u0227\u0003\u0002\u0002\u0002\u0227", "\u0228\u0003\u0002\u0002\u0002\u0228\u022a\u0007t\u0002\u0002\u0229", "\u0220\u0003\u0002\u0002\u0002\u0229\u022a\u0003\u0002\u0002\u0002\u022a", "\u000b\u0003\u0002\u0002\u0002\u022b\u022c\u0007]\u0002\u0002\u022c", "\u022d\u0005\u00d4k\u0002\u022d\u0230\u0007M\u0002\u0002\u022e\u0231", "\u0007\u009e\u0002\u0002\u022f\u0231\u0005\u00d4k\u0002\u0230\u022e", "\u0003\u0002\u0002\u0002\u0230\u022f\u0003\u0002\u0002\u0002\u0231\u0239", "\u0003\u0002\u0002\u0002\u0232\u0233\u0007\u009f\u0002\u0002\u0233\u0234", "\u0007y\u0002\u0002\u0234\u0235\u0007\u0011\u0002\u0002\u0235\u0236", "\u0005\u0090I\u0002\u0236\u0237\u0005\u00e8u\u0002\u0237\u0238\u0005", "\u0092J\u0002\u0238\u023a\u0003\u0002\u0002\u0002\u0239\u0232\u0003", "\u0002\u0002\u0002\u0239\u023a\u0003\u0002\u0002\u0002\u023a\r\u0003", "\u0002\u0002\u0002\u023b\u023c\u0007]\u0002\u0002\u023c\u023d\u0005", "\u00d4k\u0002\u023d\u023e\u0007M\u0002\u0002\u023e\u023f\u0007|\u0002", "\u0002\u023f\u0240\u0007\u009e\u0002\u0002\u0240\u0241\u0007\u009f\u0002", "\u0002\u0241\u0242\u0007R\u0002\u0002\u0242\u0243\u0007\u0011\u0002", "\u0002\u0243\u0244\u0005\u0090I\u0002\u0244\u0245\u0005$\u0013\u0002", "\u0245\u0246\u0005\u0092J\u0002\u0246\u0247\u0005\u008cG\u0002\u0247", "\u0248\u0007K\u0002\u0002\u0248\u0249\u0007y\u0002\u0002\u0249\u024a", "\u0007\u0011\u0002\u0002\u024a\u024b\u0005\u0090I\u0002\u024b\u024c", "\u0005\u00ecw\u0002\u024c\u024d\u0005\u0092J\u0002\u024d\u000f\u0003", "\u0002\u0002\u0002\u024e\u024f\u0007]\u0002\u0002\u024f\u0250\u0005", "\u00d4k\u0002\u0250\u0252\u0007M\u0002\u0002\u0251\u0253\u0007\u0094", "\u0002\u0002\u0252\u0251\u0003\u0002\u0002\u0002\u0252\u0253\u0003\u0002", "\u0002\u0002\u0253\u0256\u0003\u0002\u0002\u0002\u0254\u0257\u0007W", "\u0002\u0002\u0255\u0257\u0005\u0014\u000b\u0002\u0256\u0254\u0003\u0002", "\u0002\u0002\u0256\u0255\u0003\u0002\u0002\u0002\u0257\u026a\u0003\u0002", "\u0002\u0002\u0258\u0261\u0005(\u0015\u0002\u0259\u025a\u0007\u0013", "\u0002\u0002\u025a\u025b\u0007K\u0002\u0002\u025b\u025c\u0007y\u0002", "\u0002\u025c\u025d\u0007\u0011\u0002\u0002\u025d\u025e\u0005\u0090I", "\u0002\u025e\u025f\u0005\u00e8u\u0002\u025f\u0260\u0005\u0092J\u0002", "\u0260\u0262\u0003\u0002\u0002\u0002\u0261\u0259\u0003\u0002\u0002\u0002", "\u0261\u0262\u0003\u0002\u0002\u0002\u0262\u026b\u0003\u0002\u0002\u0002", "\u0263\u0264\u0007\u009f\u0002\u0002\u0264\u0265\u0007y\u0002\u0002", "\u0265\u0266\u0007\u0011\u0002\u0002\u0266\u0267\u0005\u0090I\u0002", "\u0267\u0268\u0005\u00e8u\u0002\u0268\u0269\u0005\u0092J\u0002\u0269", "\u026b\u0003\u0002\u0002\u0002\u026a\u0258\u0003\u0002\u0002\u0002\u026a", "\u0263\u0003\u0002\u0002\u0002\u026a\u026b\u0003\u0002\u0002\u0002\u026b", "\u0011\u0003\u0002\u0002\u0002\u026c\u026d\u0007]\u0002\u0002\u026d", "\u026e\u0005\u00d4k\u0002\u026e\u026f\u0007M\u0002\u0002\u026f\u0282", "\u0007\u0092\u0002\u0002\u0270\u0279\u0005(\u0015\u0002\u0271\u0272", "\u0007\u0013\u0002\u0002\u0272\u0273\u0007K\u0002\u0002\u0273\u0274", "\u0007y\u0002\u0002\u0274\u0275\u0007\u0011\u0002\u0002\u0275\u0276", "\u0005\u0090I\u0002\u0276\u0277\u0005\u00e8u\u0002\u0277\u0278\u0005", "\u0092J\u0002\u0278\u027a\u0003\u0002\u0002\u0002\u0279\u0271\u0003", "\u0002\u0002\u0002\u0279\u027a\u0003\u0002\u0002\u0002\u027a\u0283\u0003", "\u0002\u0002\u0002\u027b\u027c\u0007\u009f\u0002\u0002\u027c\u027d\u0007", "y\u0002\u0002\u027d\u027e\u0007\u0011\u0002\u0002\u027e\u027f\u0005", "\u0090I\u0002\u027f\u0280\u0005\u00e8u\u0002\u0280\u0281\u0005\u0092", "J\u0002\u0281\u0283\u0003\u0002\u0002\u0002\u0282\u0270\u0003\u0002", "\u0002\u0002\u0282\u027b\u0003\u0002\u0002\u0002\u0282\u0283\u0003\u0002", "\u0002\u0002\u0283\u0013\u0003\u0002\u0002\u0002\u0284\u028a\u0005\u00c4", "c\u0002\u0285\u0286\u0005\u00c4c\u0002\u0286\u0287\u0007K\u0002\u0002", "\u0287\u0288\u0005\u00d4k\u0002\u0288\u028a\u0003\u0002\u0002\u0002", "\u0289\u0284\u0003\u0002\u0002\u0002\u0289\u0285\u0003\u0002\u0002\u0002", "\u028a\u0015\u0003\u0002\u0002\u0002\u028b\u028c\u0007]\u0002\u0002", "\u028c\u028d\u0005\u013e\u00a0\u0002\u028d\u028e\u0007M\u0002\u0002", "\u028e\u028f\u0007\u0084\u0002\u0002\u028f\u0290\u0007\u008b\u0002\u0002", "\u0290\u0293\u0005\u00dep\u0002\u0291\u0292\u0007\u008e\u0002\u0002", "\u0292\u0294\u0005\u00b4[\u0002\u0293\u0291\u0003\u0002\u0002\u0002", "\u0293\u0294\u0003\u0002\u0002\u0002\u0294\u0295\u0003\u0002\u0002\u0002", "\u0295\u0296\u0007a\u0002\u0002\u0296\u0297\u0007\u0011\u0002\u0002", "\u0297\u0298\u0005\u0090I\u0002\u0298\u0299\u0005\u010a\u0086\u0002", "\u0299\u029a\u0005\u0092J\u0002\u029a\u0017\u0003\u0002\u0002\u0002", "\u029b\u029c\u0007]\u0002\u0002\u029c\u029d\u0005\u00d0i\u0002\u029d", "\u029e\u0007M\u0002\u0002\u029e\u029f\u0007\u0091\u0002\u0002\u029f", "\u02a0\u0007a\u0002\u0002\u02a0\u02a1\u0007\u0011\u0002\u0002\u02a1", "\u02a2\u0005\u0090I\u0002\u02a2\u02a3\u0005\u010a\u0086\u0002\u02a3", "\u02a4\u0005\u0092J\u0002\u02a4\u0019\u0003\u0002\u0002\u0002\u02a5", "\u02a6\u0007]\u0002\u0002\u02a6\u02a7\u0005\u00d0i\u0002\u02a7\u02a9", "\u0007M\u0002\u0002\u02a8\u02aa\u0007|\u0002\u0002\u02a9\u02a8\u0003", "\u0002\u0002\u0002\u02a9\u02aa\u0003\u0002\u0002\u0002\u02aa\u02ab\u0003", "\u0002\u0002\u0002\u02ab\u02ac\u0007\u0091\u0002\u0002\u02ac\u02ad\u0007", "a\u0002\u0002\u02ad\u02ae\u0007\u0011\u0002\u0002\u02ae\u02af\u0005", "\u0090I\u0002\u02af\u02b0\u0005\u0102\u0082\u0002\u02b0\u02b1\u0005", "\u0092J\u0002\u02b1\u001b\u0003\u0002\u0002\u0002\u02b2\u02b3\u0007", "]\u0002\u0002\u02b3\u02b4\u0005\u00d0i\u0002\u02b4\u02b5\u0007M\u0002", "\u0002\u02b5\u02b6\u0007p\u0002\u0002\u02b6\u02b7\u0007a\u0002\u0002", "\u02b7\u02b8\u0007\u0011\u0002\u0002\u02b8\u02b9\u0005\u0090I\u0002", "\u02b9\u02ba\u0005\u010a\u0086\u0002\u02ba\u02bb\u0005\u0092J\u0002", "\u02bb\u001d\u0003\u0002\u0002\u0002\u02bc\u02bd\u0007]\u0002\u0002", "\u02bd\u02be\u0005\u00d0i\u0002\u02be\u02c0\u0007M\u0002\u0002\u02bf", "\u02c1\u0007|\u0002\u0002\u02c0\u02bf\u0003\u0002\u0002\u0002\u02c0", "\u02c1\u0003\u0002\u0002\u0002\u02c1\u02c2\u0003\u0002\u0002\u0002\u02c2", "\u02c3\u0007p\u0002\u0002\u02c3\u02c4\u0007a\u0002\u0002\u02c4\u02c5", "\u0007\u0011\u0002\u0002\u02c5\u02c6\u0005\u0090I\u0002\u02c6\u02c7", "\u0005\u0102\u0082\u0002\u02c7\u02c8\u0005\u0092J\u0002\u02c8\u001f", "\u0003\u0002\u0002\u0002\u02c9\u02ca\u0007]\u0002\u0002\u02ca\u02cb", "\u0005\u00d4k\u0002\u02cb\u02cd\u0007M\u0002\u0002\u02cc\u02ce\u0007", "\u0094\u0002\u0002\u02cd\u02cc\u0003\u0002\u0002\u0002\u02cd\u02ce\u0003", "\u0002\u0002\u0002\u02ce\u02cf\u0003\u0002\u0002\u0002\u02cf\u02d0\u0007", "|\u0002\u0002\u02d0\u02d8\u0007W\u0002\u0002\u02d1\u02d2\u0005(\u0015", "\u0002\u02d2\u02d3\u0007\u0013\u0002\u0002\u02d3\u02d4\u0007K\u0002", "\u0002\u02d4\u02d5\u0007R\u0002\u0002\u02d5\u02d9\u0003\u0002\u0002", "\u0002\u02d6\u02d7\u0007\u009f\u0002\u0002\u02d7\u02d9\u0007R\u0002", "\u0002\u02d8\u02d1\u0003\u0002\u0002\u0002\u02d8\u02d6\u0003\u0002\u0002", "\u0002\u02d9\u02da\u0003\u0002\u0002\u0002\u02da\u02db\u0007\u0011\u0002", "\u0002\u02db\u02dc\u0005\u0090I\u0002\u02dc\u02dd\u0005$\u0013\u0002", "\u02dd\u02e6\u0005\u0092J\u0002\u02de\u02df\u0005\u008cG\u0002\u02df", "\u02e0\u0007K\u0002\u0002\u02e0\u02e1\u0007y\u0002\u0002\u02e1\u02e2", "\u0007\u0011\u0002\u0002\u02e2\u02e3\u0005\u0090I\u0002\u02e3\u02e4", "\u0005\u00ecw\u0002\u02e4\u02e5\u0005\u0092J\u0002\u02e5\u02e7\u0003", "\u0002\u0002\u0002\u02e6\u02de\u0003\u0002\u0002\u0002\u02e6\u02e7\u0003", "\u0002\u0002\u0002\u02e7!\u0003\u0002\u0002\u0002\u02e8\u02e9\u0007", "]\u0002\u0002\u02e9\u02ea\u0005\u00d4k\u0002\u02ea\u02ec\u0007M\u0002", "\u0002\u02eb\u02ed\u0007\u0094\u0002\u0002\u02ec\u02eb\u0003\u0002\u0002", "\u0002\u02ec\u02ed\u0003\u0002\u0002\u0002\u02ed\u02ee\u0003\u0002\u0002", "\u0002\u02ee\u02ef\u0007|\u0002\u0002\u02ef\u02f7\u0007\u008c\u0002", "\u0002\u02f0\u02f1\u0005(\u0015\u0002\u02f1\u02f2\u0007\u0013\u0002", "\u0002\u02f2\u02f3\u0007K\u0002\u0002\u02f3\u02f4\u0007R\u0002\u0002", "\u02f4\u02f8\u0003\u0002\u0002\u0002\u02f5\u02f6\u0007\u009f\u0002\u0002", "\u02f6\u02f8\u0007R\u0002\u0002\u02f7\u02f0\u0003\u0002\u0002\u0002", "\u02f7\u02f5\u0003\u0002\u0002\u0002\u02f8\u02f9\u0003\u0002\u0002\u0002", "\u02f9\u02fa\u0007\u0011\u0002\u0002\u02fa\u02fb\u0005\u0090I\u0002", "\u02fb\u02fc\u0005$\u0013\u0002\u02fc\u0305\u0005\u0092J\u0002\u02fd", "\u02fe\u0005\u008cG\u0002\u02fe\u02ff\u0007K\u0002\u0002\u02ff\u0300", "\u0007y\u0002\u0002\u0300\u0301\u0007\u0011\u0002\u0002\u0301\u0302", "\u0005\u0090I\u0002\u0302\u0303\u0005\u00ecw\u0002\u0303\u0304\u0005", "\u0092J\u0002\u0304\u0306\u0003\u0002\u0002\u0002\u0305\u02fd\u0003", "\u0002\u0002\u0002\u0305\u0306\u0003\u0002\u0002\u0002\u0306#\u0003", "\u0002\u0002\u0002\u0307\u0308\u0007]\u0002\u0002\u0308\u0309\u0007", "W\u0002\u0002\u0309\u030a\u0007R\u0002\u0002\u030a\u030b\u0007M\u0002", "\u0002\u030b\u030c\u0007\u0011\u0002\u0002\u030c\u030d\u0005\u0090I", "\u0002\u030d\u030e\u0005&\u0014\u0002\u030e\u030f\u0005\u0092J\u0002", "\u030f%\u0003\u0002\u0002\u0002\u0310\u0311\b\u0014\u0001\u0002\u0311", "\u0312\u0005\u00f0y\u0002\u0312\u0319\u0003\u0002\u0002\u0002\u0313", "\u0314\f\u0003\u0002\u0002\u0314\u0315\u0005\u008cG\u0002\u0315\u0316", "\u0005\u00f0y\u0002\u0316\u0318\u0003\u0002\u0002\u0002\u0317\u0313", "\u0003\u0002\u0002\u0002\u0318\u031b\u0003\u0002\u0002\u0002\u0319\u0317", "\u0003\u0002\u0002\u0002\u0319\u031a\u0003\u0002\u0002\u0002\u031a\'", "\u0003\u0002\u0002\u0002\u031b\u0319\u0003\u0002\u0002\u0002\u031c\u031d", "\u0007\u009f\u0002\u0002\u031d\u031e\u0007P\u0002\u0002\u031e\u0327", "\u0005\u00d2j\u0002\u031f\u0320\u0007\u009f\u0002\u0002\u0320\u0321", "\u0007Q\u0002\u0002\u0321\u0324\u0005\u00fc\u007f\u0002\u0322\u0323", "\u0007K\u0002\u0002\u0323\u0325\u0005\u00d2j\u0002\u0324\u0322\u0003", "\u0002\u0002\u0002\u0324\u0325\u0003\u0002\u0002\u0002\u0325\u0327\u0003", "\u0002\u0002\u0002\u0326\u031c\u0003\u0002\u0002\u0002\u0326\u031f\u0003", "\u0002\u0002\u0002\u0327)\u0003\u0002\u0002\u0002\u0328\u0329\u0007", "]\u0002\u0002\u0329\u032a\u0005\u00c6d\u0002\u032a\u032b\u0007M\u0002", "\u0002\u032b\u032c\u0007H\u0002\u0002\u032c\u032f\u0007x\u0002\u0002", "\u032d\u032e\u0007\u008b\u0002\u0002\u032e\u0330\u00054\u001b\u0002", "\u032f\u032d\u0003\u0002\u0002\u0002\u032f\u0330\u0003\u0002\u0002\u0002", "\u0330\u0333\u0003\u0002\u0002\u0002\u0331\u0332\u0007\u008e\u0002\u0002", "\u0332\u0334\u0005\u00b4[\u0002\u0333\u0331\u0003\u0002\u0002\u0002", "\u0333\u0334\u0003\u0002\u0002\u0002\u0334+\u0003\u0002\u0002\u0002", "\u0335\u0336\u0007]\u0002\u0002\u0336\u0337\u0005\u00c6d\u0002\u0337", "\u0338\u0007M\u0002\u0002\u0338\u033b\u0007x\u0002\u0002\u0339\u033a", "\u0007\u008b\u0002\u0002\u033a\u033c\u00054\u001b\u0002\u033b\u0339", "\u0003\u0002\u0002\u0002\u033b\u033c\u0003\u0002\u0002\u0002\u033c\u033f", "\u0003\u0002\u0002\u0002\u033d\u033e\u0007\u008e\u0002\u0002\u033e\u0340", "\u0005\u00b4[\u0002\u033f\u033d\u0003\u0002\u0002\u0002\u033f\u0340", "\u0003\u0002\u0002\u0002\u0340\u0341\u0003\u0002\u0002\u0002\u0341\u0342", "\u0007a\u0002\u0002\u0342\u0343\u0007\u0011\u0002\u0002\u0343\u0346", "\u0005\u0090I\u0002\u0344\u0347\u0005\u010a\u0086\u0002\u0345\u0347", "\u0007\u0088\u0002\u0002\u0346\u0344\u0003\u0002\u0002\u0002\u0346\u0345", "\u0003\u0002\u0002\u0002\u0347\u0348\u0003\u0002\u0002\u0002\u0348\u0349", "\u0005\u0092J\u0002\u0349-\u0003\u0002\u0002\u0002\u034a\u034b\u0007", "]\u0002\u0002\u034b\u034c\u0005\u00c6d\u0002\u034c\u034e\u0007M\u0002", "\u0002\u034d\u034f\u0007|\u0002\u0002\u034e\u034d\u0003\u0002\u0002", "\u0002\u034e\u034f\u0003\u0002\u0002\u0002\u034f\u0350\u0003\u0002\u0002", "\u0002\u0350\u0353\u0007x\u0002\u0002\u0351\u0352\u0007\u008b\u0002", "\u0002\u0352\u0354\u00054\u001b\u0002\u0353\u0351\u0003\u0002\u0002", "\u0002\u0353\u0354\u0003\u0002\u0002\u0002\u0354\u0357\u0003\u0002\u0002", "\u0002\u0355\u0356\u0007\u008e\u0002\u0002\u0356\u0358\u0005\u00e4s", "\u0002\u0357\u0355\u0003\u0002\u0002\u0002\u0357\u0358\u0003\u0002\u0002", "\u0002\u0358\u0359\u0003\u0002\u0002\u0002\u0359\u035a\u0007a\u0002", "\u0002\u035a\u035b\u0007\u0011\u0002\u0002\u035b\u035c\u0005\u0090I", "\u0002\u035c\u035d\u0005\u0102\u0082\u0002\u035d\u035e\u0005\u0092J", "\u0002\u035e/\u0003\u0002\u0002\u0002\u035f\u0360\u0007]\u0002\u0002", "\u0360\u0361\u0007\u00ae\u0002\u0002\u0361\u0362\u0007M\u0002\u0002", "\u0362\u0363\u0007\u0097\u0002\u0002\u0363\u0364\u0007x\u0002\u0002", "\u0364\u0365\u0007a\u0002\u0002\u0365\u0366\u0007\u0011\u0002\u0002", "\u0366\u0367\u0005\u0090I\u0002\u0367\u0368\u0005\u010a\u0086\u0002", "\u0368\u0369\u0005\u0092J\u0002\u0369\u036a\u0005\u008cG\u0002\u036a", "\u036b\u0007K\u0002\u0002\u036b\u0372\u0007\u009d\u0002\u0002\u036c", "\u036d\u0007\u0011\u0002\u0002\u036d\u036e\u0005\u0090I\u0002\u036e", "\u036f\u0005\u010c\u0087\u0002\u036f\u0370\u0005\u0092J\u0002\u0370", "\u0373\u0003\u0002\u0002\u0002\u0371\u0373\u0005\u00d6l\u0002\u0372", "\u036c\u0003\u0002\u0002\u0002\u0372\u0371\u0003\u0002\u0002\u0002\u0373", "1\u0003\u0002\u0002\u0002\u0374\u0375\u0005\\/\u0002\u03753\u0003\u0002", "\u0002\u0002\u0376\u0379\u0005\u00dan\u0002\u0377\u0378\u0007K\u0002", "\u0002\u0378\u037a\u0005\u00dco\u0002\u0379\u0377\u0003\u0002\u0002", "\u0002\u0379\u037a\u0003\u0002\u0002\u0002\u037a5\u0003\u0002\u0002", "\u0002\u037b\u037c\u0005\u00e4s\u0002\u037c\u037e\u0005\u00d0i\u0002", "\u037d\u037f\u0005(\u0015\u0002\u037e\u037d\u0003\u0002\u0002\u0002", "\u037e\u037f\u0003\u0002\u0002\u0002\u037f\u0382\u0003\u0002\u0002\u0002", "\u0380\u0381\u0007.\u0002\u0002\u0381\u0383\u0005\u011c\u008f\u0002", "\u0382\u0380\u0003\u0002\u0002\u0002\u0382\u0383\u0003\u0002\u0002\u0002", "\u03837\u0003\u0002\u0002\u0002\u0384\u0399\u0005\u0084C\u0002\u0385", "\u0399\u0005> \u0002\u0386\u0399\u0005\u0088E\u0002\u0387\u0399\u0005", "<\u001f\u0002\u0388\u0399\u0005z>\u0002\u0389\u0399\u0005:\u001e\u0002", "\u038a\u0399\u0005X-\u0002\u038b\u0399\u0005Z.\u0002\u038c\u0399\u0005", "N(\u0002\u038d\u0399\u0005D#\u0002\u038e\u0399\u0005H%\u0002\u038f\u0399", "\u0005L\'\u0002\u0390\u0399\u0005J&\u0002\u0391\u0399\u0005R*\u0002", "\u0392\u0399\u0005T+\u0002\u0393\u0399\u0005r:\u0002\u0394\u0399\u0005", "@!\u0002\u0395\u0399\u0005B\"\u0002\u0396\u0399\u0005,\u0017\u0002\u0397", "\u0399\u0005\u0100\u0081\u0002\u0398\u0384\u0003\u0002\u0002\u0002\u0398", "\u0385\u0003\u0002\u0002\u0002\u0398\u0386\u0003\u0002\u0002\u0002\u0398", "\u0387\u0003\u0002\u0002\u0002\u0398\u0388\u0003\u0002\u0002\u0002\u0398", "\u0389\u0003\u0002\u0002\u0002\u0398\u038a\u0003\u0002\u0002\u0002\u0398", "\u038b\u0003\u0002\u0002\u0002\u0398\u038c\u0003\u0002\u0002\u0002\u0398", "\u038d\u0003\u0002\u0002\u0002\u0398\u038e\u0003\u0002\u0002\u0002\u0398", "\u038f\u0003\u0002\u0002\u0002\u0398\u0390\u0003\u0002\u0002\u0002\u0398", "\u0391\u0003\u0002\u0002\u0002\u0398\u0392\u0003\u0002\u0002\u0002\u0398", "\u0393\u0003\u0002\u0002\u0002\u0398\u0394\u0003\u0002\u0002\u0002\u0398", "\u0395\u0003\u0002\u0002\u0002\u0398\u0396\u0003\u0002\u0002\u0002\u0398", "\u0397\u0003\u0002\u0002\u0002\u03999\u0003\u0002\u0002\u0002\u039a", "\u039b\u0007m\u0002\u0002\u039b;\u0003\u0002\u0002\u0002\u039c\u039d", "\u0007^\u0002\u0002\u039d\u03a1\u0005\u00b0Y\u0002\u039e\u039f\u0007", "K\u0002\u0002\u039f\u03a0\u0007\u0095\u0002\u0002\u03a0\u03a2\u0005", "\u00b0Y\u0002\u03a1\u039e\u0003\u0002\u0002\u0002\u03a1\u03a2\u0003", "\u0002\u0002\u0002\u03a2\u03a6\u0003\u0002\u0002\u0002\u03a3\u03a4\u0007", "\u0095\u0002\u0002\u03a4\u03a6\u0005\u00b0Y\u0002\u03a5\u039c\u0003", "\u0002\u0002\u0002\u03a5\u03a3\u0003\u0002\u0002\u0002\u03a6\u03ad\u0003", "\u0002\u0002\u0002\u03a7\u03a8\u0007\u0098\u0002\u0002\u03a8\u03a9\u0007", "\u0011\u0002\u0002\u03a9\u03aa\u0005\u0090I\u0002\u03aa\u03ab\u0005", "\u010a\u0086\u0002\u03ab\u03ac\u0005\u0092J\u0002\u03ac\u03ae\u0003", "\u0002\u0002\u0002\u03ad\u03a7\u0003\u0002\u0002\u0002\u03ad\u03ae\u0003", "\u0002\u0002\u0002\u03ae=\u0003\u0002\u0002\u0002\u03af\u03b1\u0005", "^0\u0002\u03b0\u03b2\u0005~@\u0002\u03b1\u03b0\u0003\u0002\u0002\u0002", "\u03b1\u03b2\u0003\u0002\u0002\u0002\u03b2\u03bd\u0003\u0002\u0002\u0002", "\u03b3\u03b6\u0007\u0098\u0002\u0002\u03b4\u03b5\u0007\u009f\u0002\u0002", "\u03b5\u03b7\u0005\u00d0i\u0002\u03b6\u03b4\u0003\u0002\u0002\u0002", "\u03b6\u03b7\u0003\u0002\u0002\u0002\u03b7\u03b8\u0003\u0002\u0002\u0002", "\u03b8\u03b9\u0007\u0011\u0002\u0002\u03b9\u03ba\u0005\u0090I\u0002", "\u03ba\u03bb\u0005\u010a\u0086\u0002\u03bb\u03bc\u0005\u0092J\u0002", "\u03bc\u03be\u0003\u0002\u0002\u0002\u03bd\u03b3\u0003\u0002\u0002\u0002", "\u03bd\u03be\u0003\u0002\u0002\u0002\u03be\u03c1\u0003\u0002\u0002\u0002", "\u03bf\u03c1\u0005b2\u0002\u03c0\u03af\u0003\u0002\u0002\u0002\u03c0", "\u03bf\u0003\u0002\u0002\u0002\u03c1?\u0003\u0002\u0002\u0002\u03c2", "\u03c3\u0007\u009f\u0002\u0002\u03c3\u03c4\u0005\u0130\u0099\u0002\u03c4", "\u03c5\u0007\u0013\u0002\u0002\u03c5\u03c6\u0007`\u0002\u0002\u03c6", "\u03c7\u0007\u0011\u0002\u0002\u03c7\u03c8\u0005\u0090I\u0002\u03c8", "\u03c9\u0005\u010a\u0086\u0002\u03c9\u03ca\u0005\u0092J\u0002\u03ca", "A\u0003\u0002\u0002\u0002\u03cb\u03cc\u0007\u009f\u0002\u0002\u03cc", "\u03cd\u0005\u00d4k\u0002\u03cd\u03ce\u0007\u0013\u0002\u0002\u03ce", "\u03cf\u0007`\u0002\u0002\u03cf\u03d0\u0007\u0011\u0002\u0002\u03d0", "\u03d1\u0005\u0090I\u0002\u03d1\u03d2\u0005\u010a\u0086\u0002\u03d2", "\u03d3\u0005\u0092J\u0002\u03d3C\u0003\u0002\u0002\u0002\u03d4\u03d5", "\u0007\u0096\u0002\u0002\u03d5\u03d6\u0007\u0081\u0002\u0002\u03d6\u03d7", "\u0005\\/\u0002\u03d7\u03d8\u0007\u0011\u0002\u0002\u03d8\u03d9\u0005", "\u0090I\u0002\u03d9\u03e1\u0005\u010e\u0088\u0002\u03da\u03db\u0005", "\u008cG\u0002\u03db\u03dc\u0007\u0087\u0002\u0002\u03dc\u03dd\u0007", "\u0011\u0002\u0002\u03dd\u03de\u0005\u0090I\u0002\u03de\u03df\u0005", "\u010a\u0086\u0002\u03df\u03e0\u0005\u0092J\u0002\u03e0\u03e2\u0003", "\u0002\u0002\u0002\u03e1\u03da\u0003\u0002\u0002\u0002\u03e1\u03e2\u0003", "\u0002\u0002\u0002\u03e2\u03e3\u0003\u0002\u0002\u0002\u03e3\u03e4\u0005", "\u0092J\u0002\u03e4E\u0003\u0002\u0002\u0002\u03e5\u03e6\u0007\u00a0", "\u0002\u0002\u03e6\u03e7\u0005\u0114\u008b\u0002\u03e7\u03e8\u0007\u0011", "\u0002\u0002\u03e8\u03e9\u0005\u0090I\u0002\u03e9\u03ea\u0005\u010a", "\u0086\u0002\u03ea\u03eb\u0005\u0092J\u0002\u03eb\u03f5\u0003\u0002", "\u0002\u0002\u03ec\u03ed\u0007\u00a0\u0002\u0002\u03ed\u03ee\u0007s", "\u0002\u0002\u03ee\u03ef\u0005\u0112\u008a\u0002\u03ef\u03f0\u0007\u0011", "\u0002\u0002\u03f0\u03f1\u0005\u0090I\u0002\u03f1\u03f2\u0005\u010a", "\u0086\u0002\u03f2\u03f3\u0005\u0092J\u0002\u03f3\u03f5\u0003\u0002", "\u0002\u0002\u03f4\u03e5\u0003\u0002\u0002\u0002\u03f4\u03ec\u0003\u0002", "\u0002\u0002\u03f5G\u0003\u0002\u0002\u0002\u03f6\u03f7\u0007n\u0002", "\u0002\u03f7\u03f8\u0007b\u0002\u0002\u03f8\u03fb\u0005\u00d0i\u0002", "\u03f9\u03fa\u0007\u0013\u0002\u0002\u03fa\u03fc\u0005\u00d0i\u0002", "\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fb\u03fc\u0003\u0002\u0002\u0002", "\u03fc\u03fd\u0003\u0002\u0002\u0002\u03fd\u03fe\u0007s\u0002\u0002", "\u03fe\u03ff\u0005\\/\u0002\u03ff\u0400\u0007\u0011\u0002\u0002\u0400", "\u0401\u0005\u0090I\u0002\u0401\u0402\u0005\u010a\u0086\u0002\u0402", "\u0403\u0005\u0092J\u0002\u0403I\u0003\u0002\u0002\u0002\u0404\u0405", "\u0007`\u0002\u0002\u0405\u0406\u0007\u0011\u0002\u0002\u0406\u0407", "\u0005\u0090I\u0002\u0407\u0408\u0005\u010a\u0086\u0002\u0408\u0409", "\u0005\u0092J\u0002\u0409\u040a\u0005\u008cG\u0002\u040a\u040b\u0007", "\u00a2\u0002\u0002\u040b\u040c\u0005\\/\u0002\u040cK\u0003\u0002\u0002", "\u0002\u040d\u040e\u0007\u00a2\u0002\u0002\u040e\u040f\u0005\\/\u0002", "\u040f\u0410\u0007\u0011\u0002\u0002\u0410\u0411\u0005\u0090I\u0002", "\u0411\u0412\u0005\u010a\u0086\u0002\u0412\u0413\u0005\u0092J\u0002", "\u0413M\u0003\u0002\u0002\u0002\u0414\u0415\u0007r\u0002\u0002\u0415", "\u0416\u0005\\/\u0002\u0416\u0417\u0007\u0011\u0002\u0002\u0417\u0418", "\u0005\u0090I\u0002\u0418\u0419\u0005\u010a\u0086\u0002\u0419\u041d", "\u0005\u0092J\u0002\u041a\u041b\u0005\u008cG\u0002\u041b\u041c\u0005", "P)\u0002\u041c\u041e\u0003\u0002\u0002\u0002\u041d\u041a\u0003\u0002", "\u0002\u0002\u041d\u041e\u0003\u0002\u0002\u0002\u041e\u0426\u0003\u0002", "\u0002\u0002\u041f\u0420\u0005\u008cG\u0002\u0420\u0421\u0007c\u0002", "\u0002\u0421\u0422\u0007\u0011\u0002\u0002\u0422\u0423\u0005\u0090I", "\u0002\u0423\u0424\u0005\u010a\u0086\u0002\u0424\u0425\u0005\u0092J", "\u0002\u0425\u0427\u0003\u0002\u0002\u0002\u0426\u041f\u0003\u0002\u0002", "\u0002\u0426\u0427\u0003\u0002\u0002\u0002\u0427O\u0003\u0002\u0002", "\u0002\u0428\u0429\b)\u0001\u0002\u0429\u042a\u0007c\u0002\u0002\u042a", "\u042b\u0007r\u0002\u0002\u042b\u042c\u0005\\/\u0002\u042c\u042d\u0007", "\u0011\u0002\u0002\u042d\u042e\u0005\u0090I\u0002\u042e\u042f\u0005", "\u010a\u0086\u0002\u042f\u0430\u0005\u0092J\u0002\u0430\u043d\u0003", "\u0002\u0002\u0002\u0431\u0432\f\u0003\u0002\u0002\u0432\u0433\u0005", "\u008cG\u0002\u0433\u0434\u0007c\u0002\u0002\u0434\u0435\u0007r\u0002", "\u0002\u0435\u0436\u0005\\/\u0002\u0436\u0437\u0007\u0011\u0002\u0002", "\u0437\u0438\u0005\u0090I\u0002\u0438\u0439\u0005\u010a\u0086\u0002", "\u0439\u043a\u0005\u0092J\u0002\u043a\u043c\u0003\u0002\u0002\u0002", "\u043b\u0431\u0003\u0002\u0002\u0002\u043c\u043f\u0003\u0002\u0002\u0002", "\u043d\u043b\u0003\u0002\u0002\u0002\u043d\u043e\u0003\u0002\u0002\u0002", "\u043eQ\u0003\u0002\u0002\u0002\u043f\u043d\u0003\u0002\u0002\u0002", "\u0440\u0441\u0007\u0089\u0002\u0002\u0441\u0442\u0005\\/\u0002\u0442", "S\u0003\u0002\u0002\u0002\u0443\u0444\u0007\u0096\u0002\u0002\u0444", "\u0445\u0007\u0081\u0002\u0002\u0445\u0446\u0005\u00d0i\u0002\u0446", "\u0447\u0007a\u0002\u0002\u0447\u0448\u0007\u0011\u0002\u0002\u0448", "\u0449\u0005\u0090I\u0002\u0449\u044a\u0005\u010a\u0086\u0002\u044a", "\u044b\u0005\u0092J\u0002\u044b\u044d\u0005\u008aF\u0002\u044c\u044e", "\u0005\u0110\u0089\u0002\u044d\u044c\u0003\u0002\u0002\u0002\u044d\u044e", "\u0003\u0002\u0002\u0002\u044e\u045a\u0003\u0002\u0002\u0002\u044f\u0453", "\u0007\u0087\u0002\u0002\u0450\u0451\u0007\u00a0\u0002\u0002\u0451\u0453", "\u0007L\u0002\u0002\u0452\u044f\u0003\u0002\u0002\u0002\u0452\u0450", "\u0003\u0002\u0002\u0002\u0453\u0454\u0003\u0002\u0002\u0002\u0454\u0455", "\u0007\u0011\u0002\u0002\u0455\u0456\u0005\u0090I\u0002\u0456\u0457", "\u0005\u010a\u0086\u0002\u0457\u0458\u0005\u0092J\u0002\u0458\u0459", "\u0005\u008aF\u0002\u0459\u045b\u0003\u0002\u0002\u0002\u045a\u0452", "\u0003\u0002\u0002\u0002\u045a\u045b\u0003\u0002\u0002\u0002\u045b\u0463", "\u0003\u0002\u0002\u0002\u045c\u045d\u0007J\u0002\u0002\u045d\u045e", "\u0007\u0011\u0002\u0002\u045e\u045f\u0005\u0090I\u0002\u045f\u0460", "\u0005\u010a\u0086\u0002\u0460\u0461\u0005\u0092J\u0002\u0461\u0462", "\u0005\u008aF\u0002\u0462\u0464\u0003\u0002\u0002\u0002\u0463\u045c", "\u0003\u0002\u0002\u0002\u0463\u0464\u0003\u0002\u0002\u0002\u0464\u0465", "\u0003\u0002\u0002\u0002\u0465\u0466\u0005\u008aF\u0002\u0466U\u0003", "\u0002\u0002\u0002\u0467\u0468\u0007\u00a0\u0002\u0002\u0468\u0469\u0005", "\u00d6l\u0002\u0469\u046a\u0007\u0011\u0002\u0002\u046a\u046b\u0005", "\u0090I\u0002\u046b\u046c\u0005\u010a\u0086\u0002\u046c\u046d\u0005", "\u0092J\u0002\u046d\u046e\u0005\u008aF\u0002\u046e\u047b\u0003\u0002", "\u0002\u0002\u046f\u0470\u0007\u00a0\u0002\u0002\u0470\u0471\u0007s", "\u0002\u0002\u0471\u0472\u0007\u0018\u0002\u0002\u0472\u0473\u0005\u00a8", "U\u0002\u0473\u0474\u0007\u0019\u0002\u0002\u0474\u0475\u0007\u0011", "\u0002\u0002\u0475\u0476\u0005\u0090I\u0002\u0476\u0477\u0005\u010a", "\u0086\u0002\u0477\u0478\u0005\u0092J\u0002\u0478\u0479\u0005\u008a", "F\u0002\u0479\u047b\u0003\u0002\u0002\u0002\u047a\u0467\u0003\u0002", "\u0002\u0002\u047a\u046f\u0003\u0002\u0002\u0002\u047bW\u0003\u0002", "\u0002\u0002\u047c\u047d\u0007S\u0002\u0002\u047dY\u0003\u0002\u0002", "\u0002\u047e\u0480\u0007\u008d\u0002\u0002\u047f\u0481\u0005\\/\u0002", "\u0480\u047f\u0003\u0002\u0002\u0002\u0480\u0481\u0003\u0002\u0002\u0002", "\u0481[\u0003\u0002\u0002\u0002\u0482\u0483\b/\u0001\u0002\u0483\u04a4", "\u0005\u01de\u00f0\u0002\u0484\u04a4\u0005\u01c0\u00e1\u0002\u0485\u04a4", "\u0005h5\u0002\u0486\u04a4\u0005^0\u0002\u0487\u048a\u0005h5\u0002\u0488", "\u048a\u0005^0\u0002\u0489\u0487\u0003\u0002\u0002\u0002\u0489\u0488", "\u0003\u0002\u0002\u0002\u048a\u048b\u0003\u0002\u0002\u0002\u048b\u048c", "\u0005~@\u0002\u048c\u04a4\u0003\u0002\u0002\u0002\u048d\u048e\u0007", "#\u0002\u0002\u048e\u04a4\u0005\\/.\u048f\u0490\u0007~\u0002\u0002\u0490", "\u04a4\u0005\\/-\u0491\u0492\u0007@\u0002\u0002\u0492\u0493\u0007\u0011", "\u0002\u0002\u0493\u04a4\u0005\\/\u0010\u0494\u0495\u0007g\u0002\u0002", "\u0495\u0496\u0007\u0011\u0002\u0002\u0496\u04a4\u0005\u00d0i\u0002", "\u0497\u0498\u0007?\u0002\u0002\u0498\u0499\u0007\u0011\u0002\u0002", "\u0499\u04a4\u0005\u00c6d\u0002\u049a\u04a4\u0005n8\u0002\u049b\u04a4", "\u0005l7\u0002\u049c\u04a4\u0005p9\u0002\u049d\u04a4\u0005x=\u0002\u049e", "\u04a4\u0005\u0136\u009c\u0002\u049f\u04a4\u0005\u0138\u009d\u0002\u04a0", "\u04a4\u0005|?\u0002\u04a1\u04a4\u0005t;\u0002\u04a2\u04a4\u0005b2\u0002", "\u04a3\u0482\u0003\u0002\u0002\u0002\u04a3\u0484\u0003\u0002\u0002\u0002", "\u04a3\u0485\u0003\u0002\u0002\u0002\u04a3\u0486\u0003\u0002\u0002\u0002", "\u04a3\u0489\u0003\u0002\u0002\u0002\u04a3\u048d\u0003\u0002\u0002\u0002", "\u04a3\u048f\u0003\u0002\u0002\u0002\u04a3\u0491\u0003\u0002\u0002\u0002", "\u04a3\u0494\u0003\u0002\u0002\u0002\u04a3\u0497\u0003\u0002\u0002\u0002", "\u04a3\u049a\u0003\u0002\u0002\u0002\u04a3\u049b\u0003\u0002\u0002\u0002", "\u04a3\u049c\u0003\u0002\u0002\u0002\u04a3\u049d\u0003\u0002\u0002\u0002", "\u04a3\u049e\u0003\u0002\u0002\u0002\u04a3\u049f\u0003\u0002\u0002\u0002", "\u04a3\u04a0\u0003\u0002\u0002\u0002\u04a3\u04a1\u0003\u0002\u0002\u0002", "\u04a3\u04a2\u0003\u0002\u0002\u0002\u04a4\u0515\u0003\u0002\u0002\u0002", "\u04a5\u04a6\f,\u0002\u0002\u04a6\u04a7\u0005\u014e\u00a8\u0002\u04a7", "\u04a8\u0005\\/-\u04a8\u0514\u0003\u0002\u0002\u0002\u04a9\u04aa\f+", "\u0002\u0002\u04aa\u04ab\u0005\u0150\u00a9\u0002\u04ab\u04ac\u0005\\", "/,\u04ac\u0514\u0003\u0002\u0002\u0002\u04ad\u04ae\f*\u0002\u0002\u04ae", "\u04af\u0005\u0154\u00ab\u0002\u04af\u04b0\u0005\\/+\u04b0\u0514\u0003", "\u0002\u0002\u0002\u04b1\u04b2\f)\u0002\u0002\u04b2\u04b3\u0005\u0152", "\u00aa\u0002\u04b3\u04b4\u0005\\/*\u04b4\u0514\u0003\u0002\u0002\u0002", "\u04b5\u04b6\f(\u0002\u0002\u04b6\u04b7\t\u0002\u0002\u0002\u04b7\u0514", "\u0005\\/)\u04b8\u04b9\f&\u0002\u0002\u04b9\u04ba\u0007*\u0002\u0002", "\u04ba\u0514\u0005\\/\'\u04bb\u04bc\f%\u0002\u0002\u04bc\u04bd\u0007", "+\u0002\u0002\u04bd\u0514\u0005\\/&\u04be\u04bf\f$\u0002\u0002\u04bf", "\u04c0\u0007(\u0002\u0002\u04c0\u0514\u0005\\/%\u04c1\u04c2\f#\u0002", "\u0002\u04c2\u04c3\u0007)\u0002\u0002\u04c3\u0514\u0005\\/$\u04c4\u04c5", "\f \u0002\u0002\u04c5\u04c6\u0007.\u0002\u0002\u04c6\u0514\u0005\\/", "!\u04c7\u04c8\f\u001f\u0002\u0002\u04c8\u04c9\u0007,\u0002\u0002\u04c9", "\u0514\u0005\\/ \u04ca\u04cb\f\u001e\u0002\u0002\u04cb\u04cc\u00072", "\u0002\u0002\u04cc\u0514\u0005\\/\u001f\u04cd\u04ce\f\u001d\u0002\u0002", "\u04ce\u04cf\u0007Z\u0002\u0002\u04cf\u0514\u0005\\/\u001e\u04d0\u04d1", "\f\u001c\u0002\u0002\u04d1\u04d2\u0007s\u0002\u0002\u04d2\u0514\u0005", "\\/\u001d\u04d3\u04d4\f\u001b\u0002\u0002\u04d4\u04d5\u0007q\u0002\u0002", "\u04d5\u0514\u0005\\/\u001c\u04d6\u04d7\f\u001a\u0002\u0002\u04d7\u04d8", "\u0007q\u0002\u0002\u04d8\u04d9\u0007I\u0002\u0002\u04d9\u0514\u0005", "\\/\u001b\u04da\u04db\f\u0019\u0002\u0002\u04db\u04dc\u0007q\u0002\u0002", "\u04dc\u04dd\u0007L\u0002\u0002\u04dd\u0514\u0005\\/\u001a\u04de\u04df", "\f\u0018\u0002\u0002\u04df\u04e0\u0007~\u0002\u0002\u04e0\u04e1\u0007", "Z\u0002\u0002\u04e1\u0514\u0005\\/\u0019\u04e2\u04e3\f\u0017\u0002\u0002", "\u04e3\u04e4\u0007~\u0002\u0002\u04e4\u04e5\u0007s\u0002\u0002\u04e5", "\u0514\u0005\\/\u0018\u04e6\u04e7\f\u0016\u0002\u0002\u04e7\u04e8\u0007", "~\u0002\u0002\u04e8\u04e9\u0007q\u0002\u0002\u04e9\u0514\u0005\\/\u0017", "\u04ea\u04eb\f\u0015\u0002\u0002\u04eb\u04ec\u0007~\u0002\u0002\u04ec", "\u04ed\u0007q\u0002\u0002\u04ed\u04ee\u0007I\u0002\u0002\u04ee\u0514", "\u0005\\/\u0016\u04ef\u04f0\f\u0014\u0002\u0002\u04f0\u04f1\u0007~\u0002", "\u0002\u04f1\u04f2\u0007q\u0002\u0002\u04f2\u04f3\u0007L\u0002\u0002", "\u04f3\u0514\u0005\\/\u0015\u04f4\u04f5\f\u0013\u0002\u0002\u04f5\u04f6", "\u0007\u0085\u0002\u0002\u04f6\u0514\u0005\\/\u0014\u04f7\u04f8\f\u0012", "\u0002\u0002\u04f8\u04f9\u0007K\u0002\u0002\u04f9\u0514\u0005\\/\u0013", "\u04fa\u04fb\f\u0011\u0002\u0002\u04fb\u04fc\u0007r\u0002\u0002\u04fc", "\u04fd\u0005\\/\u0002\u04fd\u04fe\u0007c\u0002\u0002\u04fe\u04ff\u0005", "\\/\u0012\u04ff\u0514\u0003\u0002\u0002\u0002\u0500\u0501\f\u0003\u0002", "\u0002\u0501\u0502\u0007n\u0002\u0002\u0502\u0503\u0007b\u0002\u0002", "\u0503\u0504\u0005\u00d0i\u0002\u0504\u0505\u0007s\u0002\u0002\u0505", "\u0506\u0005\\/\u0004\u0506\u0514\u0003\u0002\u0002\u0002\u0507\u0508", "\f\'\u0002\u0002\u0508\u0509\u0007M\u0002\u0002\u0509\u0514\u0005\u00e4", "s\u0002\u050a\u050b\f\"\u0002\u0002\u050b\u050c\u0007v\u0002\u0002\u050c", "\u050d\u0007~\u0002\u0002\u050d\u0514\u0005\u0134\u009b\u0002\u050e", "\u050f\f!\u0002\u0002\u050f\u0510\u0007v\u0002\u0002\u0510\u0514\u0005", "\u0134\u009b\u0002\u0511\u0512\f\n\u0002\u0002\u0512\u0514\u0005v<\u0002", "\u0513\u04a5\u0003\u0002\u0002\u0002\u0513\u04a9\u0003\u0002\u0002\u0002", "\u0513\u04ad\u0003\u0002\u0002\u0002\u0513\u04b1\u0003\u0002\u0002\u0002", "\u0513\u04b5\u0003\u0002\u0002\u0002\u0513\u04b8\u0003\u0002\u0002\u0002", "\u0513\u04bb\u0003\u0002\u0002\u0002\u0513\u04be\u0003\u0002\u0002\u0002", "\u0513\u04c1\u0003\u0002\u0002\u0002\u0513\u04c4\u0003\u0002\u0002\u0002", "\u0513\u04c7\u0003\u0002\u0002\u0002\u0513\u04ca\u0003\u0002\u0002\u0002", "\u0513\u04cd\u0003\u0002\u0002\u0002\u0513\u04d0\u0003\u0002\u0002\u0002", "\u0513\u04d3\u0003\u0002\u0002\u0002\u0513\u04d6\u0003\u0002\u0002\u0002", "\u0513\u04da\u0003\u0002\u0002\u0002\u0513\u04de\u0003\u0002\u0002\u0002", "\u0513\u04e2\u0003\u0002\u0002\u0002\u0513\u04e6\u0003\u0002\u0002\u0002", "\u0513\u04ea\u0003\u0002\u0002\u0002\u0513\u04ef\u0003\u0002\u0002\u0002", "\u0513\u04f4\u0003\u0002\u0002\u0002\u0513\u04f7\u0003\u0002\u0002\u0002", "\u0513\u04fa\u0003\u0002\u0002\u0002\u0513\u0500\u0003\u0002\u0002\u0002", "\u0513\u0507\u0003\u0002\u0002\u0002\u0513\u050a\u0003\u0002\u0002\u0002", "\u0513\u050e\u0003\u0002\u0002\u0002\u0513\u0511\u0003\u0002\u0002\u0002", "\u0514\u0517\u0003\u0002\u0002\u0002\u0515\u0513\u0003\u0002\u0002\u0002", "\u0515\u0516\u0003\u0002\u0002\u0002\u0516]\u0003\u0002\u0002\u0002", "\u0517\u0515\u0003\u0002\u0002\u0002\u0518\u0519\b0\u0001\u0002\u0519", "\u051a\u0005\u00ceh\u0002\u051a\u051f\u0003\u0002\u0002\u0002\u051b", "\u051c\f\u0003\u0002\u0002\u051c\u051e\u0005`1\u0002\u051d\u051b\u0003", "\u0002\u0002\u0002\u051e\u0521\u0003\u0002\u0002\u0002\u051f\u051d\u0003", "\u0002\u0002\u0002\u051f\u0520\u0003\u0002\u0002\u0002\u0520_\u0003", "\u0002\u0002\u0002\u0521\u051f\u0003\u0002\u0002\u0002\u0522\u0523\u0006", "1#\u0003\u0523\u0524\u0007\u0015\u0002\u0002\u0524\u0525\u0005\u00ce", "h\u0002\u0525a\u0003\u0002\u0002\u0002\u0526\u0527\u0007u\u0002\u0002", "\u0527\u0528\u0007\u0011\u0002\u0002\u0528\u0529\u0005\u00d0i\u0002", "\u0529\u052a\u0005d3\u0002\u052ac\u0003\u0002\u0002\u0002\u052b\u052c", "\u00063$\u0003\u052ce\u0003\u0002\u0002\u0002\u052d\u0532\u0005\u011a", "\u008e\u0002\u052e\u0532\u0005\u011c\u008f\u0002\u052f\u0532\u0005\u00ce", "h\u0002\u0530\u0532\u0005\u0118\u008d\u0002\u0531\u052d\u0003\u0002", "\u0002\u0002\u0531\u052e\u0003\u0002\u0002\u0002\u0531\u052f\u0003\u0002", "\u0002\u0002\u0531\u0530\u0003\u0002\u0002\u0002\u0532g\u0003\u0002", "\u0002\u0002\u0533\u0534\b5\u0001\u0002\u0534\u0535\u0005f4\u0002\u0535", "\u053a\u0003\u0002\u0002\u0002\u0536\u0537\f\u0003\u0002\u0002\u0537", "\u0539\u0005j6\u0002\u0538\u0536\u0003\u0002\u0002\u0002\u0539\u053c", "\u0003\u0002\u0002\u0002\u053a\u0538\u0003\u0002\u0002\u0002\u053a\u053b", "\u0003\u0002\u0002\u0002\u053bi\u0003\u0002\u0002\u0002\u053c\u053a", "\u0003\u0002\u0002\u0002\u053d\u053e\u00066&\u0003\u053e\u053f\u0007", "\u0015\u0002\u0002\u053f\u054b\u0005\u00d0i\u0002\u0540\u0541\u0006", "6\'\u0003\u0541\u0542\u0007\u0018\u0002\u0002\u0542\u0543\u0005\u012e", "\u0098\u0002\u0543\u0544\u0007\u0019\u0002\u0002\u0544\u054b\u0003\u0002", "\u0002\u0002\u0545\u0546\u00066(\u0003\u0546\u0547\u0007\u0018\u0002", "\u0002\u0547\u0548\u0005\\/\u0002\u0548\u0549\u0007\u0019\u0002\u0002", "\u0549\u054b\u0003\u0002\u0002\u0002\u054a\u053d\u0003\u0002\u0002\u0002", "\u054a\u0540\u0003\u0002\u0002\u0002\u054a\u0545\u0003\u0002\u0002\u0002", "\u054bk\u0003\u0002\u0002\u0002\u054c\u054f\u0007A\u0002\u0002\u054d", "\u054e\u0007o\u0002\u0002\u054e\u0550\u0005\\/\u0002\u054f\u054d\u0003", "\u0002\u0002\u0002\u054f\u0550\u0003\u0002\u0002\u0002\u0550m\u0003", "\u0002\u0002\u0002\u0551\u0552\u0007B\u0002\u0002\u0552\u0553\u0007", "o\u0002\u0002\u0553\u0554\u0005\\/\u0002\u0554o\u0003\u0002\u0002\u0002", "\u0555\u0556\u0005\u00bc_\u0002\u0556\u0557\u0007o\u0002\u0002\u0557", "\u0560\u0005\\/\u0002\u0558\u055a\u0007\u0013\u0002\u0002\u0559\u0558", "\u0003\u0002\u0002\u0002\u0559\u055a\u0003\u0002\u0002\u0002\u055a\u055b", "\u0003\u0002\u0002\u0002\u055b\u055e\u0005\u0080A\u0002\u055c\u055d", "\u0007K\u0002\u0002\u055d\u055f\u0005\u0082B\u0002\u055e\u055c\u0003", "\u0002\u0002\u0002\u055e\u055f\u0003\u0002\u0002\u0002\u055f\u0561\u0003", "\u0002\u0002\u0002\u0560\u0559\u0003\u0002\u0002\u0002\u0560\u0561\u0003", "\u0002\u0002\u0002\u0561\u056b\u0003\u0002\u0002\u0002\u0562\u0568\u0005", "\u00bc_\u0002\u0563\u0566\u0005\u0080A\u0002\u0564\u0565\u0007K\u0002", "\u0002\u0565\u0567\u0005\u0082B\u0002\u0566\u0564\u0003\u0002\u0002", "\u0002\u0566\u0567\u0003\u0002\u0002\u0002\u0567\u0569\u0003\u0002\u0002", "\u0002\u0568\u0563\u0003\u0002\u0002\u0002\u0568\u0569\u0003\u0002\u0002", "\u0002\u0569\u056b\u0003\u0002\u0002\u0002\u056a\u0555\u0003\u0002\u0002", "\u0002\u056a\u0562\u0003\u0002\u0002\u0002\u056bq\u0003\u0002\u0002", "\u0002\u056c\u056d\u0007\u00a3\u0002\u0002\u056d\u056e\u0005\\/\u0002", "\u056e\u056f\u0007\u009b\u0002\u0002\u056f\u0570\u0005\\/\u0002\u0570", "s\u0003\u0002\u0002\u0002\u0571\u0572\u0005^0\u0002\u0572\u0573\u0007", "#\u0002\u0002\u0573\u0574\u0005\\/\u0002\u0574u\u0003\u0002\u0002\u0002", "\u0575\u0576\u0007k\u0002\u0002\u0576\u0577\u0007\u009f\u0002\u0002", "\u0577\u0578\u0005\u00d0i\u0002\u0578\u0579\u0007\u00a1\u0002\u0002", "\u0579\u057a\u0005\\/\u0002\u057aw\u0003\u0002\u0002\u0002\u057b\u057c", "\u0007j\u0002\u0002\u057c\u057e\u0007\u0082\u0002\u0002\u057d\u057f", "\u0005\u00bc_\u0002\u057e\u057d\u0003\u0002\u0002\u0002\u057e\u057f", "\u0003\u0002\u0002\u0002\u057f\u0580\u0003\u0002\u0002\u0002\u0580\u0581", "\u0007\u00a1\u0002\u0002\u0581\u05a0\u0005\\/\u0002\u0582\u0594\u0007", "j\u0002\u0002\u0583\u0585\u0007I\u0002\u0002\u0584\u0586\u0005\u00bc", "_\u0002\u0585\u0584\u0003\u0002\u0002\u0002\u0585\u0586\u0003\u0002", "\u0002\u0002\u0586\u0595\u0003\u0002\u0002\u0002\u0587\u0589\u0005\u00bc", "_\u0002\u0588\u058a\u0007\u008f\u0002\u0002\u0589\u0588\u0003\u0002", "\u0002\u0002\u0589\u058a\u0003\u0002\u0002\u0002\u058a\u058b\u0003\u0002", "\u0002\u0002\u058b\u058c\u0005\\/\u0002\u058c\u058d\u0007\u009b\u0002", "\u0002\u058d\u058e\u0005\\/\u0002\u058e\u0595\u0003\u0002\u0002\u0002", "\u058f\u0590\u0007\u008f\u0002\u0002\u0590\u0591\u0005\\/\u0002\u0591", "\u0592\u0007\u009b\u0002\u0002\u0592\u0593\u0005\\/\u0002\u0593\u0595", "\u0003\u0002\u0002\u0002\u0594\u0583\u0003\u0002\u0002\u0002\u0594\u0587", "\u0003\u0002\u0002\u0002\u0594\u058f\u0003\u0002\u0002\u0002\u0595\u0598", "\u0003\u0002\u0002\u0002\u0596\u0597\u0007\u00a1\u0002\u0002\u0597\u0599", "\u0005\\/\u0002\u0598\u0596\u0003\u0002\u0002\u0002\u0598\u0599\u0003", "\u0002\u0002\u0002\u0599\u059d\u0003\u0002\u0002\u0002\u059a\u059b\u0007", "\u0086\u0002\u0002\u059b\u059c\u0007T\u0002\u0002\u059c\u059e\u0005", "\u013a\u009e\u0002\u059d\u059a\u0003\u0002\u0002\u0002\u059d\u059e\u0003", "\u0002\u0002\u0002\u059e\u05a0\u0003\u0002\u0002\u0002\u059f\u057b\u0003", "\u0002\u0002\u0002\u059f\u0582\u0003\u0002\u0002\u0002\u05a0y\u0003", "\u0002\u0002\u0002\u05a1\u05a2\u0007j\u0002\u0002\u05a2\u05a4\u0007", "\u0082\u0002\u0002\u05a3\u05a5\u0005\u00bc_\u0002\u05a4\u05a3\u0003", "\u0002\u0002\u0002\u05a4\u05a5\u0003\u0002\u0002\u0002\u05a5\u05a6\u0003", "\u0002\u0002\u0002\u05a6\u05a7\u0007\u00a1\u0002\u0002\u05a7\u05a8\u0005", "\\/\u0002\u05a8\u05a9\u0007\u0098\u0002\u0002\u05a9\u05aa\u0007\u009f", "\u0002\u0002\u05aa\u05ab\u0005\u00d0i\u0002\u05ab\u05ac\u0007\u0011", "\u0002\u0002\u05ac\u05ad\u0005\u0090I\u0002\u05ad\u05ae\u0005\u010a", "\u0086\u0002\u05ae\u05af\u0005\u0092J\u0002\u05af\u05d6\u0003\u0002", "\u0002\u0002\u05b0\u05c2\u0007j\u0002\u0002\u05b1\u05b3\u0007I\u0002", "\u0002\u05b2\u05b4\u0005\u00bc_\u0002\u05b3\u05b2\u0003\u0002\u0002", "\u0002\u05b3\u05b4\u0003\u0002\u0002\u0002\u05b4\u05c3\u0003\u0002\u0002", "\u0002\u05b5\u05b7\u0005\u00bc_\u0002\u05b6\u05b8\u0007\u008f\u0002", "\u0002\u05b7\u05b6\u0003\u0002\u0002\u0002\u05b7\u05b8\u0003\u0002\u0002", "\u0002\u05b8\u05b9\u0003\u0002\u0002\u0002\u05b9\u05ba\u0005\\/\u0002", "\u05ba\u05bb\u0007\u009b\u0002\u0002\u05bb\u05bc\u0005\\/\u0002\u05bc", "\u05c3\u0003\u0002\u0002\u0002\u05bd\u05be\u0007\u008f\u0002\u0002\u05be", "\u05bf\u0005\\/\u0002\u05bf\u05c0\u0007\u009b\u0002\u0002\u05c0\u05c1", "\u0005\\/\u0002\u05c1\u05c3\u0003\u0002\u0002\u0002\u05c2\u05b1\u0003", "\u0002\u0002\u0002\u05c2\u05b5\u0003\u0002\u0002\u0002\u05c2\u05bd\u0003", "\u0002\u0002\u0002\u05c3\u05c6\u0003\u0002\u0002\u0002\u05c4\u05c5\u0007", "\u00a1\u0002\u0002\u05c5\u05c7\u0005\\/\u0002\u05c6\u05c4\u0003\u0002", "\u0002\u0002\u05c6\u05c7\u0003\u0002\u0002\u0002\u05c7\u05cb\u0003\u0002", "\u0002\u0002\u05c8\u05c9\u0007\u0086\u0002\u0002\u05c9\u05ca\u0007T", "\u0002\u0002\u05ca\u05cc\u0005\u013a\u009e\u0002\u05cb\u05c8\u0003\u0002", "\u0002\u0002\u05cb\u05cc\u0003\u0002\u0002\u0002\u05cc\u05cd\u0003\u0002", "\u0002\u0002\u05cd\u05ce\u0007\u0098\u0002\u0002\u05ce\u05cf\u0007\u009f", "\u0002\u0002\u05cf\u05d0\u0005\u00d0i\u0002\u05d0\u05d1\u0007\u0011", "\u0002\u0002\u05d1\u05d2\u0005\u0090I\u0002\u05d2\u05d3\u0005\u010a", "\u0086\u0002\u05d3\u05d4\u0005\u0092J\u0002\u05d4\u05d6\u0003\u0002", "\u0002\u0002\u05d5\u05a1\u0003\u0002\u0002\u0002\u05d5\u05b0\u0003\u0002", "\u0002\u0002\u05d6{\u0003\u0002\u0002\u0002\u05d7\u05d9\u0007\u0093", "\u0002\u0002\u05d8\u05da\u0007_\u0002\u0002\u05d9\u05d8\u0003\u0002", "\u0002\u0002\u05d9\u05da\u0003\u0002\u0002\u0002\u05da\u05db\u0003\u0002", "\u0002\u0002\u05db\u05e1\u0005h5\u0002\u05dc\u05dd\u0007\u009f\u0002", "\u0002\u05dd\u05de\u0005h5\u0002\u05de\u05df\u0007M\u0002\u0002\u05df", "\u05e0\u0005\u0144\u00a3\u0002\u05e0\u05e2\u0003\u0002\u0002\u0002\u05e1", "\u05dc\u0003\u0002\u0002\u0002\u05e1\u05e2\u0003\u0002\u0002\u0002\u05e2", "}\u0003\u0002\u0002\u0002\u05e3\u05e4\u0006@)\u0003\u05e4\u05ea\u0005", "\\/\u0002\u05e5\u05e8\u0005\u0080A\u0002\u05e6\u05e7\u0007K\u0002\u0002", "\u05e7\u05e9\u0005\u0082B\u0002\u05e8\u05e6\u0003\u0002\u0002\u0002", "\u05e8\u05e9\u0003\u0002\u0002\u0002\u05e9\u05eb\u0003\u0002\u0002\u0002", "\u05ea\u05e5\u0003\u0002\u0002\u0002\u05ea\u05eb\u0003\u0002\u0002\u0002", "\u05eb\u05f2\u0003\u0002\u0002\u0002\u05ec\u05ef\u0005\u0080A\u0002", "\u05ed\u05ee\u0007K\u0002\u0002\u05ee\u05f0\u0005\u0082B\u0002\u05ef", "\u05ed\u0003\u0002\u0002\u0002\u05ef\u05f0\u0003\u0002\u0002\u0002\u05f0", "\u05f2\u0003\u0002\u0002\u0002\u05f1\u05e3\u0003\u0002\u0002\u0002\u05f1", "\u05ec\u0003\u0002\u0002\u0002\u05f2\u007f\u0003\u0002\u0002\u0002\u05f3", "\u05f4\bA\u0001\u0002\u05f4\u05f5\u0007\u009f\u0002\u0002\u05f5\u05f6", "\u0005\u0082B\u0002\u05f6\u05fc\u0003\u0002\u0002\u0002\u05f7\u05f8", "\f\u0003\u0002\u0002\u05f8\u05f9\u0007\u0013\u0002\u0002\u05f9\u05fb", "\u0005\u0082B\u0002\u05fa\u05f7\u0003\u0002\u0002\u0002\u05fb\u05fe", "\u0003\u0002\u0002\u0002\u05fc\u05fa\u0003\u0002\u0002\u0002\u05fc\u05fd", "\u0003\u0002\u0002\u0002\u05fd\u0081\u0003\u0002\u0002\u0002\u05fe\u05fc", "\u0003\u0002\u0002\u0002\u05ff\u0600\u0005\\/\u0002\u0600\u0601\u0007", "M\u0002\u0002\u0601\u0603\u0003\u0002\u0002\u0002\u0602\u05ff\u0003", "\u0002\u0002\u0002\u0602\u0603\u0003\u0002\u0002\u0002\u0603\u0604\u0003", "\u0002\u0002\u0002\u0604\u0605\u0005\u00d0i\u0002\u0605\u0083\u0003", "\u0002\u0002\u0002\u0606\u0607\u0005\u0132\u009a\u0002\u0607\u0608\u0005", "\u014c\u00a7\u0002\u0608\u0609\u0005\\/\u0002\u0609\u0085\u0003\u0002", "\u0002\u0002\u060a\u060b\u0006D+\u0003\u060b\u060c\u0007\u0015\u0002", "\u0002\u060c\u0613\u0005\u00d0i\u0002\u060d\u060e\u0006D,\u0003\u060e", "\u060f\u0007\u0018\u0002\u0002\u060f\u0610\u0005\\/\u0002\u0610\u0611", "\u0007\u0019\u0002\u0002\u0611\u0613\u0003\u0002\u0002\u0002\u0612\u060a", "\u0003\u0002\u0002\u0002\u0612\u060d\u0003\u0002\u0002\u0002\u0613\u0087", "\u0003\u0002\u0002\u0002\u0614\u0615\u0005\u00fa~\u0002\u0615\u0616", "\u0005\u014c\u00a7\u0002\u0616\u0617\u0005\\/\u0002\u0617\u0089\u0003", "\u0002\u0002\u0002\u0618\u061a\u0007\u0007\u0002\u0002\u0619\u0618\u0003", "\u0002\u0002\u0002\u061a\u061d\u0003\u0002\u0002\u0002\u061b\u0619\u0003", "\u0002\u0002\u0002\u061b\u061c\u0003\u0002\u0002\u0002\u061c\u008b\u0003", "\u0002\u0002\u0002\u061d\u061b\u0003\u0002\u0002\u0002\u061e\u0620\u0007", "\u0007\u0002\u0002\u061f\u061e\u0003\u0002\u0002\u0002\u0620\u0621\u0003", "\u0002\u0002\u0002\u0621\u061f\u0003\u0002\u0002\u0002\u0621\u0622\u0003", "\u0002\u0002\u0002\u0622\u008d\u0003\u0002\u0002\u0002\u0623\u0625\t", "\u0003\u0002\u0002\u0624\u0623\u0003\u0002\u0002\u0002\u0625\u0628\u0003", "\u0002\u0002\u0002\u0626\u0624\u0003\u0002\u0002\u0002\u0626\u0627\u0003", "\u0002\u0002\u0002\u0627\u008f\u0003\u0002\u0002\u0002\u0628\u0626\u0003", "\u0002\u0002\u0002\u0629\u062b\u0007\u0007\u0002\u0002\u062a\u0629\u0003", "\u0002\u0002\u0002\u062b\u062c\u0003\u0002\u0002\u0002\u062c\u062a\u0003", "\u0002\u0002\u0002\u062c\u062d\u0003\u0002\u0002\u0002\u062d\u062e\u0003", "\u0002\u0002\u0002\u062e\u062f\u0007\u0003\u0002\u0002\u062f\u0091\u0003", "\u0002\u0002\u0002\u0630\u0632\u0007\u0007\u0002\u0002\u0631\u0630\u0003", "\u0002\u0002\u0002\u0632\u0635\u0003\u0002\u0002\u0002\u0633\u0631\u0003", "\u0002\u0002\u0002\u0633\u0634\u0003\u0002\u0002\u0002\u0634\u0636\u0003", "\u0002\u0002\u0002\u0635\u0633\u0003\u0002\u0002\u0002\u0636\u0637\u0007", "\u0004\u0002\u0002\u0637\u0093\u0003\u0002\u0002\u0002\u0638\u0639\u0007", "\u007f\u0002\u0002\u0639\u0095\u0003\u0002\u0002\u0002\u063a\u063c\u0005", "\u0098M\u0002\u063b\u063a\u0003\u0002\u0002\u0002\u063b\u063c\u0003", "\u0002\u0002\u0002\u063c\u063d\u0003\u0002\u0002\u0002\u063d\u063e\u0005", "\u008aF\u0002\u063e\u063f\u0007\u0002\u0002\u0003\u063f\u0097\u0003", "\u0002\u0002\u0002\u0640\u0646\u0005\u009aN\u0002\u0641\u0642\u0005", "\u008cG\u0002\u0642\u0643\u0005\u009aN\u0002\u0643\u0645\u0003\u0002", "\u0002\u0002\u0644\u0641\u0003\u0002\u0002\u0002\u0645\u0648\u0003\u0002", "\u0002\u0002\u0646\u0644\u0003\u0002\u0002\u0002\u0646\u0647\u0003\u0002", "\u0002\u0002\u0647\u0099\u0003\u0002\u0002\u0002\u0648\u0646\u0003\u0002", "\u0002\u0002\u0649\u064a\u0005\u0100\u0081\u0002\u064a\u064b\u0005\u008c", "G\u0002\u064b\u064d\u0003\u0002\u0002\u0002\u064c\u0649\u0003\u0002", "\u0002\u0002\u064d\u0650\u0003\u0002\u0002\u0002\u064e\u064c\u0003\u0002", "\u0002\u0002\u064e\u064f\u0003\u0002\u0002\u0002\u064f\u0656\u0003\u0002", "\u0002\u0002\u0650\u064e\u0003\u0002\u0002\u0002\u0651\u0652\u0005\u009c", "O\u0002\u0652\u0653\u0005\u008cG\u0002\u0653\u0655\u0003\u0002\u0002", "\u0002\u0654\u0651\u0003\u0002\u0002\u0002\u0655\u0658\u0003\u0002\u0002", "\u0002\u0656\u0654\u0003\u0002\u0002\u0002\u0656\u0657\u0003\u0002\u0002", "\u0002\u0657\u065f\u0003\u0002\u0002\u0002\u0658\u0656\u0003\u0002\u0002", "\u0002\u0659\u0660\u0005\n\u0006\u0002\u065a\u0660\u0005\u00c0a\u0002", "\u065b\u0660\u0005\u00a0Q\u0002\u065c\u0660\u0005\u00a2R\u0002\u065d", "\u0660\u0005\u00c2b\u0002\u065e\u0660\u0005\u00fe\u0080\u0002\u065f", "\u0659\u0003\u0002\u0002\u0002\u065f\u065a\u0003\u0002\u0002\u0002\u065f", "\u065b\u0003\u0002\u0002\u0002\u065f\u065c\u0003\u0002\u0002\u0002\u065f", "\u065d\u0003\u0002\u0002\u0002\u065f\u065e\u0003\u0002\u0002\u0002\u0660", "\u009b\u0003\u0002\u0002\u0002\u0661\u0666\u0005\u009eP\u0002\u0662", "\u0663\u0007\u0016\u0002\u0002\u0663\u0664\u0005\u011c\u008f\u0002\u0664", "\u0665\u0007\u0017\u0002\u0002\u0665\u0667\u0003\u0002\u0002\u0002\u0666", "\u0662\u0003\u0002\u0002\u0002\u0666\u0667\u0003\u0002\u0002\u0002\u0667", "\u009d\u0003\u0002\u0002\u0002\u0668\u0669\u0007\u00ad\u0002\u0002\u0669", "\u009f\u0003\u0002\u0002\u0002\u066a\u066b\u0005\"\u0012\u0002\u066b", "\u00a1\u0003\u0002\u0002\u0002\u066c\u066f\u0005\u0002\u0002\u0002\u066d", "\u066f\u0005\u0004\u0003\u0002\u066e\u066c\u0003\u0002\u0002\u0002\u066e", "\u066d\u0003\u0002\u0002\u0002\u066f\u00a3\u0003\u0002\u0002\u0002\u0670", "\u0676\u0005\u0006\u0004\u0002\u0671\u0672\u0005\u008cG\u0002\u0672", "\u0673\u0005\u0006\u0004\u0002\u0673\u0675\u0003\u0002\u0002\u0002\u0674", "\u0671\u0003\u0002\u0002\u0002\u0675\u0678\u0003\u0002\u0002\u0002\u0676", "\u0674\u0003\u0002\u0002\u0002\u0676\u0677\u0003\u0002\u0002\u0002\u0677", "\u00a5\u0003\u0002\u0002\u0002\u0678\u0676\u0003\u0002\u0002\u0002\u0679", "\u067f\u0005\b\u0005\u0002\u067a\u067b\u0005\u008cG\u0002\u067b\u067c", "\u0005\b\u0005\u0002\u067c\u067e\u0003\u0002\u0002\u0002\u067d\u067a", "\u0003\u0002\u0002\u0002\u067e\u0681\u0003\u0002\u0002\u0002\u067f\u067d", "\u0003\u0002\u0002\u0002\u067f\u0680\u0003\u0002\u0002\u0002\u0680\u00a7", "\u0003\u0002\u0002\u0002\u0681\u067f\u0003\u0002\u0002\u0002\u0682\u0687", "\u0005\u00d6l\u0002\u0683\u0684\u0007\u0013\u0002\u0002\u0684\u0686", "\u0005\u00d6l\u0002\u0685\u0683\u0003\u0002\u0002\u0002\u0686\u0689", "\u0003\u0002\u0002\u0002\u0687\u0685\u0003\u0002\u0002\u0002\u0687\u0688", "\u0003\u0002\u0002\u0002\u0688\u00a9\u0003\u0002\u0002\u0002\u0689\u0687", "\u0003\u0002\u0002\u0002\u068a\u068b\u0007s\u0002\u0002\u068b\u0695", "\u0005\u00acW\u0002\u068c\u068d\u0007s\u0002\u0002\u068d\u0695\u0005", "\u00aeX\u0002\u068e\u068f\u0007s\u0002\u0002\u068f\u0695\u0005\u00b2", "Z\u0002\u0690\u0691\u0007w\u0002\u0002\u0691\u0695\u0007\u00ae\u0002", "\u0002\u0692\u0693\u0007w\u0002\u0002\u0693\u0695\u0005\\/\u0002\u0694", "\u068a\u0003\u0002\u0002\u0002\u0694\u068c\u0003\u0002\u0002\u0002\u0694", "\u068e\u0003\u0002\u0002\u0002\u0694\u0690\u0003\u0002\u0002\u0002\u0694", "\u0692\u0003\u0002\u0002\u0002\u0695\u00ab\u0003\u0002\u0002\u0002\u0696", "\u0698\u0007{\u0002\u0002\u0697\u0696\u0003\u0002\u0002\u0002\u0697", "\u0698\u0003\u0002\u0002\u0002\u0698\u0699\u0003\u0002\u0002\u0002\u0699", "\u069b\u0007\u0018\u0002\u0002\u069a\u069c\u0005\u00b0Y\u0002\u069b", "\u069a\u0003\u0002\u0002\u0002\u069b\u069c\u0003\u0002\u0002\u0002\u069c", "\u069d\u0003\u0002\u0002\u0002\u069d\u069e\u0007\u0019\u0002\u0002\u069e", "\u00ad\u0003\u0002\u0002\u0002\u069f\u06a1\u0007{\u0002\u0002\u06a0", "\u069f\u0003\u0002\u0002\u0002\u06a0\u06a1\u0003\u0002\u0002\u0002\u06a1", "\u06a2\u0003\u0002\u0002\u0002\u06a2\u06a4\u0007*\u0002\u0002\u06a3", "\u06a5\u0005\u00b0Y\u0002\u06a4\u06a3\u0003\u0002\u0002\u0002\u06a4", "\u06a5\u0003\u0002\u0002\u0002\u06a5\u06a6\u0003\u0002\u0002\u0002\u06a6", "\u06a7\u0007(\u0002\u0002\u06a7\u00af\u0003\u0002\u0002\u0002\u06a8", "\u06ad\u0005\\/\u0002\u06a9\u06aa\u0007\u0013\u0002\u0002\u06aa\u06ac", "\u0005\\/\u0002\u06ab\u06a9\u0003\u0002\u0002\u0002\u06ac\u06af\u0003", "\u0002\u0002\u0002\u06ad\u06ab\u0003\u0002\u0002\u0002\u06ad\u06ae\u0003", "\u0002\u0002\u0002\u06ae\u00b1\u0003\u0002\u0002\u0002\u06af\u06ad\u0003", "\u0002\u0002\u0002\u06b0\u06b1\u0007\u0018\u0002\u0002\u06b1\u06b2\u0005", "\\/\u0002\u06b2\u06b3\u0007\u0014\u0002\u0002\u06b3\u06b4\u0005\\/\u0002", "\u06b4\u06b5\u0007\u0019\u0002\u0002\u06b5\u00b3\u0003\u0002\u0002\u0002", "\u06b6\u06b7\b[\u0001\u0002\u06b7\u06c3\u0005\u00b6\\\u0002\u06b8\u06b9", "\u0007F\u0002\u0002\u06b9\u06ba\u0007*\u0002\u0002\u06ba\u06bb\u0005", "\u00b4[\u0002\u06bb\u06bc\u0007(\u0002\u0002\u06bc\u06c3\u0003\u0002", "\u0002\u0002\u06bd\u06be\u0007E\u0002\u0002\u06be\u06bf\u0007*\u0002", "\u0002\u06bf\u06c0\u0005\u00b4[\u0002\u06c0\u06c1\u0007(\u0002\u0002", "\u06c1\u06c3\u0003\u0002\u0002\u0002\u06c2\u06b6\u0003\u0002\u0002\u0002", "\u06c2\u06b8\u0003\u0002\u0002\u0002\u06c2\u06bd\u0003\u0002\u0002\u0002", "\u06c3\u06cd\u0003\u0002\u0002\u0002\u06c4\u06c5\f\u0007\u0002\u0002", "\u06c5\u06cc\u0007,\u0002\u0002\u06c6\u06c7\f\u0006\u0002\u0002\u06c7", "\u06c8\u0007\u0018\u0002\u0002\u06c8\u06cc\u0007\u0019\u0002\u0002\u06c9", "\u06ca\f\u0005\u0002\u0002\u06ca\u06cc\u0007-\u0002\u0002\u06cb\u06c4", "\u0003\u0002\u0002\u0002\u06cb\u06c6\u0003\u0002\u0002\u0002\u06cb\u06c9", "\u0003\u0002\u0002\u0002\u06cc\u06cf\u0003\u0002\u0002\u0002\u06cd\u06cb", "\u0003\u0002\u0002\u0002\u06cd\u06ce\u0003\u0002\u0002\u0002\u06ce\u00b5", "\u0003\u0002\u0002\u0002\u06cf\u06cd\u0003\u0002\u0002\u0002\u06d0\u06d3", "\u0005\u00b8]\u0002\u06d1\u06d3\u0005\u00ba^\u0002\u06d2\u06d0\u0003", "\u0002\u0002\u0002\u06d2\u06d1\u0003\u0002\u0002\u0002\u06d3\u00b7\u0003", "\u0002\u0002\u0002\u06d4\u06e5\u00075\u0002\u0002\u06d5\u06e5\u0007", "6\u0002\u0002\u06d6\u06e5\u00077\u0002\u0002\u06d7\u06e5\u0007C\u0002", "\u0002\u06d8\u06e5\u00078\u0002\u0002\u06d9\u06e5\u00079\u0002\u0002", "\u06da\u06e5\u0007A\u0002\u0002\u06db\u06e5\u0007:\u0002\u0002\u06dc", "\u06e5\u0007<\u0002\u0002\u06dd\u06e5\u0007;\u0002\u0002\u06de\u06e5", "\u0007=\u0002\u0002\u06df\u06e5\u0007>\u0002\u0002\u06e0\u06e5\u0007", "@\u0002\u0002\u06e1\u06e5\u0007B\u0002\u0002\u06e2\u06e5\u0007D\u0002", "\u0002\u06e3\u06e5\u0007G\u0002\u0002\u06e4\u06d4\u0003\u0002\u0002", "\u0002\u06e4\u06d5\u0003\u0002\u0002\u0002\u06e4\u06d6\u0003\u0002\u0002", "\u0002\u06e4\u06d7\u0003\u0002\u0002\u0002\u06e4\u06d8\u0003\u0002\u0002", "\u0002\u06e4\u06d9\u0003\u0002\u0002\u0002\u06e4\u06da\u0003\u0002\u0002", "\u0002\u06e4\u06db\u0003\u0002\u0002\u0002\u06e4\u06dc\u0003\u0002\u0002", "\u0002\u06e4\u06dd\u0003\u0002\u0002\u0002\u06e4\u06de\u0003\u0002\u0002", "\u0002\u06e4\u06df\u0003\u0002\u0002\u0002\u06e4\u06e0\u0003\u0002\u0002", "\u0002\u06e4\u06e1\u0003\u0002\u0002\u0002\u06e4\u06e2\u0003\u0002\u0002", "\u0002\u06e4\u06e3\u0003\u0002\u0002\u0002\u06e5\u00b9\u0003\u0002\u0002", "\u0002\u06e6\u06e7\u0007\u00a9\u0002\u0002\u06e7\u00bb\u0003\u0002\u0002", "\u0002\u06e8\u06ea\u0007{\u0002\u0002\u06e9\u06e8\u0003\u0002\u0002", "\u0002\u06e9\u06ea\u0003\u0002\u0002\u0002\u06ea\u06eb\u0003\u0002\u0002", "\u0002\u06eb\u06ec\u0005\u00ba^\u0002\u06ec\u00bd\u0003\u0002\u0002", "\u0002\u06ed\u06ee\u0007@\u0002\u0002\u06ee\u00bf\u0003\u0002\u0002", "\u0002\u06ef\u06f3\u0005\u0010\t\u0002\u06f0\u06f3\u0005 \u0011\u0002", "\u06f1\u06f3\u0005\u0012\n\u0002\u06f2\u06ef\u0003\u0002\u0002\u0002", "\u06f2\u06f0\u0003\u0002\u0002\u0002\u06f2\u06f1\u0003\u0002\u0002\u0002", "\u06f3\u00c1\u0003\u0002\u0002\u0002\u06f4\u06f7\u0005\f\u0007\u0002", "\u06f5\u06f7\u0005\u000e\b\u0002\u06f6\u06f4\u0003\u0002\u0002\u0002", "\u06f6\u06f5\u0003\u0002\u0002\u0002\u06f7\u00c3\u0003\u0002\u0002\u0002", "\u06f8\u06fd\u0005\u00d4k\u0002\u06f9\u06fa\u0007\u0013\u0002\u0002", "\u06fa\u06fc\u0005\u00d4k\u0002\u06fb\u06f9\u0003\u0002\u0002\u0002", "\u06fc\u06ff\u0003\u0002\u0002\u0002\u06fd\u06fb\u0003\u0002\u0002\u0002", "\u06fd\u06fe\u0003\u0002\u0002\u0002\u06fe\u00c5\u0003\u0002\u0002\u0002", "\u06ff\u06fd\u0003\u0002\u0002\u0002\u0700\u0703\u0005\u00d0i\u0002", "\u0701\u0703\u0005\u00d4k\u0002\u0702\u0700\u0003\u0002\u0002\u0002", "\u0702\u0701\u0003\u0002\u0002\u0002\u0703\u00c7\u0003\u0002\u0002\u0002", "\u0704\u0707\u0005\u00ceh\u0002\u0705\u0707\u0005\u0140\u00a1\u0002", "\u0706\u0704\u0003\u0002\u0002\u0002\u0706\u0705\u0003\u0002\u0002\u0002", "\u0707\u00c9\u0003\u0002\u0002\u0002\u0708\u0709\u0006f0\u0003\u0709", "\u070a\u0007#\u0002\u0002\u070a\u070b\u0005\u00ccg\u0002\u070b\u00cb", "\u0003\u0002\u0002\u0002\u070c\u070d\u0006g1\u0003\u070d\u070e\u0005", "\u00c8e\u0002\u070e\u00cd\u0003\u0002\u0002\u0002\u070f\u0713\u0005", "\u00d0i\u0002\u0710\u0713\u0005\u00d4k\u0002\u0711\u0713\u0005\u00d6", "l\u0002\u0712\u070f\u0003\u0002\u0002\u0002\u0712\u0710\u0003\u0002", "\u0002\u0002\u0712\u0711\u0003\u0002\u0002\u0002\u0713\u00cf\u0003\u0002", "\u0002\u0002\u0714\u0715\u0007\u00aa\u0002\u0002\u0715\u00d1\u0003\u0002", "\u0002\u0002\u0716\u0717\t\u0004\u0002\u0002\u0717\u00d3\u0003\u0002", "\u0002\u0002\u0718\u0719\u0007\u00a9\u0002\u0002\u0719\u00d5\u0003\u0002", "\u0002\u0002\u071a\u071b\u0007\u00a8\u0002\u0002\u071b\u00d7\u0003\u0002", "\u0002\u0002\u071c\u071d\t\u0005\u0002\u0002\u071d\u00d9\u0003\u0002", "\u0002\u0002\u071e\u0723\u0005\u00dco\u0002\u071f\u0720\u0007\u0013", "\u0002\u0002\u0720\u0722\u0005\u00dco\u0002\u0721\u071f\u0003\u0002", "\u0002\u0002\u0722\u0725\u0003\u0002\u0002\u0002\u0723\u0721\u0003\u0002", "\u0002\u0002\u0723\u0724\u0003\u0002\u0002\u0002\u0724\u00db\u0003\u0002", "\u0002\u0002\u0725\u0723\u0003\u0002\u0002\u0002\u0726\u072c\u0005\u00e2", "r\u0002\u0727\u0729\u0007{\u0002\u0002\u0728\u0727\u0003\u0002\u0002", "\u0002\u0728\u0729\u0003\u0002\u0002\u0002\u0729\u072a\u0003\u0002\u0002", "\u0002\u072a\u072c\u0005\u00dep\u0002\u072b\u0726\u0003\u0002\u0002", "\u0002\u072b\u0728\u0003\u0002\u0002\u0002\u072c\u00dd\u0003\u0002\u0002", "\u0002\u072d\u0730\u0005\u00e0q\u0002\u072e\u0730\u00056\u001c\u0002", "\u072f\u072d\u0003\u0002\u0002\u0002\u072f\u072e\u0003\u0002\u0002\u0002", "\u0730\u00df\u0003\u0002\u0002\u0002\u0731\u0734\u0005\u00d0i\u0002", "\u0732\u0733\u0007.\u0002\u0002\u0733\u0735\u0005\u011c\u008f\u0002", "\u0734\u0732\u0003\u0002\u0002\u0002\u0734\u0735\u0003\u0002\u0002\u0002", "\u0735\u00e1\u0003\u0002\u0002\u0002\u0736\u0737\u0005\u00be`\u0002", "\u0737\u0738\u0005\u00d0i\u0002\u0738\u00e3\u0003\u0002\u0002\u0002", "\u0739\u073c\u0005\u00b4[\u0002\u073a\u073c\u0005\u00e6t\u0002\u073b", "\u0739\u0003\u0002\u0002\u0002\u073b\u073a\u0003\u0002\u0002\u0002\u073c", "\u00e5\u0003\u0002\u0002\u0002\u073d\u073e\bt\u0001\u0002\u073e\u073f", "\u0007L\u0002\u0002\u073f\u0748\u0003\u0002\u0002\u0002\u0740\u0741", "\f\u0004\u0002\u0002\u0741\u0742\u0007\u0018\u0002\u0002\u0742\u0747", "\u0007\u0019\u0002\u0002\u0743\u0744\f\u0003\u0002\u0002\u0744\u0745", "\u0007\u001a\u0002\u0002\u0745\u0747\u0007\u001b\u0002\u0002\u0746\u0740", "\u0003\u0002\u0002\u0002\u0746\u0743\u0003\u0002\u0002\u0002\u0747\u074a", "\u0003\u0002\u0002\u0002\u0748\u0746\u0003\u0002\u0002\u0002\u0748\u0749", "\u0003\u0002\u0002\u0002\u0749\u00e7\u0003\u0002\u0002\u0002\u074a\u0748", "\u0003\u0002\u0002\u0002\u074b\u0751\u0005\u00eav\u0002\u074c\u074d", "\u0005\u008cG\u0002\u074d\u074e\u0005\u00eav\u0002\u074e\u0750\u0003", "\u0002\u0002\u0002\u074f\u074c\u0003\u0002\u0002\u0002\u0750\u0753\u0003", "\u0002\u0002\u0002\u0751\u074f\u0003\u0002\u0002\u0002\u0751\u0752\u0003", "\u0002\u0002\u0002\u0752\u00e9\u0003\u0002\u0002\u0002\u0753\u0751\u0003", "\u0002\u0002\u0002\u0754\u0755\u0005\u0100\u0081\u0002\u0755\u0756\u0005", "\u008cG\u0002\u0756\u0758\u0003\u0002\u0002\u0002\u0757\u0754\u0003", "\u0002\u0002\u0002\u0758\u075b\u0003\u0002\u0002\u0002\u0759\u0757\u0003", "\u0002\u0002\u0002\u0759\u075a\u0003\u0002\u0002\u0002\u075a\u0761\u0003", "\u0002\u0002\u0002\u075b\u0759\u0003\u0002\u0002\u0002\u075c\u075d\u0005", "\u009cO\u0002\u075d\u075e\u0005\u008cG\u0002\u075e\u0760\u0003\u0002", "\u0002\u0002\u075f\u075c\u0003\u0002\u0002\u0002\u0760\u0763\u0003\u0002", "\u0002\u0002\u0761\u075f\u0003\u0002\u0002\u0002\u0761\u0762\u0003\u0002", "\u0002\u0002\u0762\u0769\u0003\u0002\u0002\u0002\u0763\u0761\u0003\u0002", "\u0002\u0002\u0764\u076a\u0005\u0018\r\u0002\u0765\u076a\u0005\u001c", "\u000f\u0002\u0766\u076a\u0005,\u0017\u0002\u0767\u076a\u0005*\u0016", "\u0002\u0768\u076a\u0005\u0016\f\u0002\u0769\u0764\u0003\u0002\u0002", "\u0002\u0769\u0765\u0003\u0002\u0002\u0002\u0769\u0766\u0003\u0002\u0002", "\u0002\u0769\u0767\u0003\u0002\u0002\u0002\u0769\u0768\u0003\u0002\u0002", "\u0002\u076a\u00eb\u0003\u0002\u0002\u0002\u076b\u0771\u0005\u00eex", "\u0002\u076c\u076d\u0005\u008cG\u0002\u076d\u076e\u0005\u00eex\u0002", "\u076e\u0770\u0003\u0002\u0002\u0002\u076f\u076c\u0003\u0002\u0002\u0002", "\u0770\u0773\u0003\u0002\u0002\u0002\u0771\u076f\u0003\u0002\u0002\u0002", "\u0771\u0772\u0003\u0002\u0002\u0002\u0772\u00ed\u0003\u0002\u0002\u0002", "\u0773\u0771\u0003\u0002\u0002\u0002\u0774\u0778\u0005\u001e\u0010\u0002", "\u0775\u0778\u0005\u001a\u000e\u0002\u0776\u0778\u0005.\u0018\u0002", "\u0777\u0774\u0003\u0002\u0002\u0002\u0777\u0775\u0003\u0002\u0002\u0002", "\u0777\u0776\u0003\u0002\u0002\u0002\u0778\u00ef\u0003\u0002\u0002\u0002", "\u0779\u077a\u0007\u000b\u0002\u0002\u077a\u0784\u0005\u01a0\u00d1\u0002", "\u077b\u077c\u0007\f\u0002\u0002\u077c\u0784\u0005\u01ba\u00de\u0002", "\u077d\u077e\u0007\r\u0002\u0002\u077e\u0784\u0005\u00f2z\u0002\u077f", "\u0780\u0007\u000e\u0002\u0002\u0780\u0784\u0005\u00f2z\u0002\u0781", "\u0782\u0007\u000f\u0002\u0002\u0782\u0784\u0005\u00f6|\u0002\u0783", "\u0779\u0003\u0002\u0002\u0002\u0783\u077b\u0003\u0002\u0002\u0002\u0783", "\u077d\u0003\u0002\u0002\u0002\u0783\u077f\u0003\u0002\u0002\u0002\u0783", "\u0781\u0003\u0002\u0002\u0002\u0784\u00f1\u0003\u0002\u0002\u0002\u0785", "\u0787\u0005\u00ceh\u0002\u0786\u0788\u0005\u00f4{\u0002\u0787\u0786", "\u0003\u0002\u0002\u0002\u0787\u0788\u0003\u0002\u0002\u0002\u0788\u00f3", "\u0003\u0002\u0002\u0002\u0789\u078a\u0007o\u0002\u0002\u078a\u078b", "\u0005\u0146\u00a4\u0002\u078b\u078c\u0007\u0011\u0002\u0002\u078c\u0791", "\u0005\u0188\u00c5\u0002\u078d\u078e\u0007\u0015\u0002\u0002\u078e\u0790", "\u0005\u0188\u00c5\u0002\u078f\u078d\u0003\u0002\u0002\u0002\u0790\u0793", "\u0003\u0002\u0002\u0002\u0791\u078f\u0003\u0002\u0002\u0002\u0791\u0792", "\u0003\u0002\u0002\u0002\u0792\u00f5\u0003\u0002\u0002\u0002\u0793\u0791", "\u0003\u0002\u0002\u0002\u0794\u0799\u0005\u016e\u00b8\u0002\u0795\u0796", "\u0007\u0015\u0002\u0002\u0796\u0798\u0005\u016e\u00b8\u0002\u0797\u0795", "\u0003\u0002\u0002\u0002\u0798\u079b\u0003\u0002\u0002\u0002\u0799\u0797", "\u0003\u0002\u0002\u0002\u0799\u079a\u0003\u0002\u0002\u0002\u079a\u079d", "\u0003\u0002\u0002\u0002\u079b\u0799\u0003\u0002\u0002\u0002\u079c\u079e", "\u0005\u00f8}\u0002\u079d\u079c\u0003\u0002\u0002\u0002\u079d\u079e", "\u0003\u0002\u0002\u0002\u079e\u00f7\u0003\u0002\u0002\u0002\u079f\u07a0", "\u0007o\u0002\u0002\u07a0\u07a1\u0005\u0146\u00a4\u0002\u07a1\u07a3", "\u0007\u0011\u0002\u0002\u07a2\u07a4\u0007%\u0002\u0002\u07a3\u07a2", "\u0003\u0002\u0002\u0002\u07a3\u07a4\u0003\u0002\u0002\u0002\u07a4\u07a5", "\u0003\u0002\u0002\u0002\u07a5\u07aa\u0005\u016e\u00b8\u0002\u07a6\u07a7", "\u0007%\u0002\u0002\u07a7\u07a9\u0005\u016e\u00b8\u0002\u07a8\u07a6", "\u0003\u0002\u0002\u0002\u07a9\u07ac\u0003\u0002\u0002\u0002\u07aa\u07a8", "\u0003\u0002\u0002\u0002\u07aa\u07ab\u0003\u0002\u0002\u0002\u07ab\u07af", "\u0003\u0002\u0002\u0002\u07ac\u07aa\u0003\u0002\u0002\u0002\u07ad\u07ae", "\u0007\u0015\u0002\u0002\u07ae\u07b0\u0005\u016e\u00b8\u0002\u07af\u07ad", "\u0003\u0002\u0002\u0002\u07af\u07b0\u0003\u0002\u0002\u0002\u07b0\u00f9", "\u0003\u0002\u0002\u0002\u07b1\u07b6\u0005\u00d0i\u0002\u07b2\u07b3", "\u0007\u0013\u0002\u0002\u07b3\u07b5\u0005\u00d0i\u0002\u07b4\u07b2", "\u0003\u0002\u0002\u0002\u07b5\u07b8\u0003\u0002\u0002\u0002\u07b6\u07b4", "\u0003\u0002\u0002\u0002\u07b6\u07b7\u0003\u0002\u0002\u0002\u07b7\u00fb", "\u0003\u0002\u0002\u0002\u07b8\u07b6\u0003\u0002\u0002\u0002\u07b9\u07be", "\u0005\u00d2j\u0002\u07ba\u07bb\u0007\u0013\u0002\u0002\u07bb\u07bd", "\u0005\u00d2j\u0002\u07bc\u07ba\u0003\u0002\u0002\u0002\u07bd\u07c0", "\u0003\u0002\u0002\u0002\u07be\u07bc\u0003\u0002\u0002\u0002\u07be\u07bf", "\u0003\u0002\u0002\u0002\u07bf\u00fd\u0003\u0002\u0002\u0002\u07c0\u07be", "\u0003\u0002\u0002\u0002\u07c1\u07c6\u0005*\u0016\u0002\u07c2\u07c6", "\u0005,\u0017\u0002\u07c3\u07c6\u0005.\u0018\u0002\u07c4\u07c6\u0005", "0\u0019\u0002\u07c5\u07c1\u0003\u0002\u0002\u0002\u07c5\u07c2\u0003", "\u0002\u0002\u0002\u07c5\u07c3\u0003\u0002\u0002\u0002\u07c5\u07c4\u0003", "\u0002\u0002\u0002\u07c6\u00ff\u0003\u0002\u0002\u0002\u07c7\u07c8\u0007", "\n\u0002\u0002\u07c8\u0101\u0003\u0002\u0002\u0002\u07c9\u07cf\u0005", "\u0104\u0083\u0002\u07ca\u07cb\u0005\u008cG\u0002\u07cb\u07cc\u0005", "\u0104\u0083\u0002\u07cc\u07ce\u0003\u0002\u0002\u0002\u07cd\u07ca\u0003", "\u0002\u0002\u0002\u07ce\u07d1\u0003\u0002\u0002\u0002\u07cf\u07cd\u0003", "\u0002\u0002\u0002\u07cf\u07d0\u0003\u0002\u0002\u0002\u07d0\u0103\u0003", "\u0002\u0002\u0002\u07d1\u07cf\u0003\u0002\u0002\u0002\u07d2\u07d3\u0007", "\u000b\u0002\u0002\u07d3\u07dd\u0005\u018a\u00c6\u0002\u07d4\u07d5\u0007", "\f\u0002\u0002\u07d5\u07dd\u0005\u01a6\u00d4\u0002\u07d6\u07d7\u0007", "\r\u0002\u0002\u07d7\u07dd\u0005\u0106\u0084\u0002\u07d8\u07d9\u0007", "\u000e\u0002\u0002\u07d9\u07dd\u0005\u0106\u0084\u0002\u07da\u07db\u0007", "\u000f\u0002\u0002\u07db\u07dd\u0005\u0108\u0085\u0002\u07dc\u07d2\u0003", "\u0002\u0002\u0002\u07dc\u07d4\u0003\u0002\u0002\u0002\u07dc\u07d6\u0003", "\u0002\u0002\u0002\u07dc\u07d8\u0003\u0002\u0002\u0002\u07dc\u07da\u0003", "\u0002\u0002\u0002\u07dd\u0105\u0003\u0002\u0002\u0002\u07de\u07e0\u0005", "\u0170\u00b9\u0002\u07df\u07e1\u0007\u0012\u0002\u0002\u07e0\u07df\u0003", "\u0002\u0002\u0002\u07e0\u07e1\u0003\u0002\u0002\u0002\u07e1\u07e3\u0003", "\u0002\u0002\u0002\u07e2\u07e4\u0005\u00f4{\u0002\u07e3\u07e2\u0003", "\u0002\u0002\u0002\u07e3\u07e4\u0003\u0002\u0002\u0002\u07e4\u0107\u0003", "\u0002\u0002\u0002\u07e5\u07e7\u0005\u0156\u00ac\u0002\u07e6\u07e8\u0007", "\u0012\u0002\u0002\u07e7\u07e6\u0003\u0002\u0002\u0002\u07e7\u07e8\u0003", "\u0002\u0002\u0002\u07e8\u07ea\u0003\u0002\u0002\u0002\u07e9\u07eb\u0005", "\u00f8}\u0002\u07ea\u07e9\u0003\u0002\u0002\u0002\u07ea\u07eb\u0003", "\u0002\u0002\u0002\u07eb\u0109\u0003\u0002\u0002\u0002\u07ec\u07f2\u0005", "8\u001d\u0002\u07ed\u07ee\u0005\u008cG\u0002\u07ee\u07ef\u00058\u001d", "\u0002\u07ef\u07f1\u0003\u0002\u0002\u0002\u07f0\u07ed\u0003\u0002\u0002", "\u0002\u07f1\u07f4\u0003\u0002\u0002\u0002\u07f2\u07f0\u0003\u0002\u0002", "\u0002\u07f2\u07f3\u0003\u0002\u0002\u0002\u07f3\u010b\u0003\u0002\u0002", "\u0002\u07f4\u07f2\u0003\u0002\u0002\u0002\u07f5\u07fb\u00052\u001a", "\u0002\u07f6\u07f7\u0005\u008cG\u0002\u07f7\u07f8\u00052\u001a\u0002", "\u07f8\u07fa\u0003\u0002\u0002\u0002\u07f9\u07f6\u0003\u0002\u0002\u0002", "\u07fa\u07fd\u0003\u0002\u0002\u0002\u07fb\u07f9\u0003\u0002\u0002\u0002", "\u07fb\u07fc\u0003\u0002\u0002\u0002\u07fc\u010d\u0003\u0002\u0002\u0002", "\u07fd\u07fb\u0003\u0002\u0002\u0002\u07fe\u0804\u0005F$\u0002\u07ff", "\u0800\u0005\u008cG\u0002\u0800\u0801\u0005F$\u0002\u0801\u0803\u0003", "\u0002\u0002\u0002\u0802\u07ff\u0003\u0002\u0002\u0002\u0803\u0806\u0003", "\u0002\u0002\u0002\u0804\u0802\u0003\u0002\u0002\u0002\u0804\u0805\u0003", "\u0002\u0002\u0002\u0805\u010f\u0003\u0002\u0002\u0002\u0806\u0804\u0003", "\u0002\u0002\u0002\u0807\u080d\u0005V,\u0002\u0808\u0809\u0005\u008c", "G\u0002\u0809\u080a\u0005V,\u0002\u080a\u080c\u0003\u0002\u0002\u0002", "\u080b\u0808\u0003\u0002\u0002\u0002\u080c\u080f\u0003\u0002\u0002\u0002", "\u080d\u080b\u0003\u0002\u0002\u0002\u080d\u080e\u0003\u0002\u0002\u0002", "\u080e\u0111\u0003\u0002\u0002\u0002\u080f\u080d\u0003\u0002\u0002\u0002", "\u0810\u0811\u0007\u0018\u0002\u0002\u0811\u0812\u0005\u0114\u008b\u0002", "\u0812\u0813\u0007\u0014\u0002\u0002\u0813\u0814\u0005\u0114\u008b\u0002", "\u0814\u0815\u0007\u0019\u0002\u0002\u0815\u081f\u0003\u0002\u0002\u0002", "\u0816\u0817\u0007\u0018\u0002\u0002\u0817\u0818\u0005\u0116\u008c\u0002", "\u0818\u0819\u0007\u0019\u0002\u0002\u0819\u081f\u0003\u0002\u0002\u0002", "\u081a\u081b\u0007*\u0002\u0002\u081b\u081c\u0005\u0116\u008c\u0002", "\u081c\u081d\u0007(\u0002\u0002\u081d\u081f\u0003\u0002\u0002\u0002", "\u081e\u0810\u0003\u0002\u0002\u0002\u081e\u0816\u0003\u0002\u0002\u0002", "\u081e\u081a\u0003\u0002\u0002\u0002\u081f\u0113\u0003\u0002\u0002\u0002", "\u0820\u0830\u0007\u00a6\u0002\u0002\u0821\u0830\u0007\u00a7\u0002\u0002", "\u0822\u0830\u0007\u00b0\u0002\u0002\u0823\u0830\u0007\u00b1\u0002\u0002", "\u0824\u0830\u0007\u00a5\u0002\u0002\u0825\u0830\u0007\u00b5\u0002\u0002", "\u0826\u0830\u0007\u00b4\u0002\u0002\u0827\u0830\u0007\u00ae\u0002\u0002", "\u0828\u0830\u0007\u00b2\u0002\u0002\u0829\u0830\u0007\u00b3\u0002\u0002", "\u082a\u0830\u0007\u00a4\u0002\u0002\u082b\u0830\u0007\u00b6\u0002\u0002", "\u082c\u0830\u0007\u00b7\u0002\u0002\u082d\u0830\u0007\u00af\u0002\u0002", "\u082e\u0830\u0005\u0094K\u0002\u082f\u0820\u0003\u0002\u0002\u0002", "\u082f\u0821\u0003\u0002\u0002\u0002\u082f\u0822\u0003\u0002\u0002\u0002", "\u082f\u0823\u0003\u0002\u0002\u0002\u082f\u0824\u0003\u0002\u0002\u0002", "\u082f\u0825\u0003\u0002\u0002\u0002\u082f\u0826\u0003\u0002\u0002\u0002", "\u082f\u0827\u0003\u0002\u0002\u0002\u082f\u0828\u0003\u0002\u0002\u0002", "\u082f\u0829\u0003\u0002\u0002\u0002\u082f\u082a\u0003\u0002\u0002\u0002", "\u082f\u082b\u0003\u0002\u0002\u0002\u082f\u082c\u0003\u0002\u0002\u0002", "\u082f\u082d\u0003\u0002\u0002\u0002\u082f\u082e\u0003\u0002\u0002\u0002", "\u0830\u0115\u0003\u0002\u0002\u0002\u0831\u0836\u0005\u0114\u008b\u0002", "\u0832\u0833\u0007\u0013\u0002\u0002\u0833\u0835\u0005\u0114\u008b\u0002", "\u0834\u0832\u0003\u0002\u0002\u0002\u0835\u0838\u0003\u0002\u0002\u0002", "\u0836\u0834\u0003\u0002\u0002\u0002\u0836\u0837\u0003\u0002\u0002\u0002", "\u0837\u0117\u0003\u0002\u0002\u0002\u0838\u0836\u0003\u0002\u0002\u0002", "\u0839\u083a\t\u0006\u0002\u0002\u083a\u0119\u0003\u0002\u0002\u0002", "\u083b\u083c\u0007\u0016\u0002\u0002\u083c\u083d\u0005\\/\u0002\u083d", "\u083e\u0007\u0017\u0002\u0002\u083e\u011b\u0003\u0002\u0002\u0002\u083f", "\u0842\u0005\u0114\u008b\u0002\u0840\u0842\u0005\u011e\u0090\u0002\u0841", "\u083f\u0003\u0002\u0002\u0002\u0841\u0840\u0003\u0002\u0002\u0002\u0842", "\u011d\u0003\u0002\u0002\u0002\u0843\u084a\u0005\u00b2Z\u0002\u0844", "\u084a\u0005\u00acW\u0002\u0845\u084a\u0005\u00aeX\u0002\u0846\u084a", "\u0005\u0122\u0092\u0002\u0847\u084a\u0005\u0124\u0093\u0002\u0848\u084a", "\u0005\u0120\u0091\u0002\u0849\u0843\u0003\u0002\u0002\u0002\u0849\u0844", "\u0003\u0002\u0002\u0002\u0849\u0845\u0003\u0002\u0002\u0002\u0849\u0846", "\u0003\u0002\u0002\u0002\u0849\u0847\u0003\u0002\u0002\u0002\u0849\u0848", "\u0003\u0002\u0002\u0002\u084a\u011f\u0003\u0002\u0002\u0002\u084b\u084d", "\u0007{\u0002\u0002\u084c\u084b\u0003\u0002\u0002\u0002\u084c\u084d", "\u0003\u0002\u0002\u0002\u084d\u084e\u0003\u0002\u0002\u0002\u084e\u0850", "\u0007\u0016\u0002\u0002\u084f\u0851\u0005\u0126\u0094\u0002\u0850\u084f", "\u0003\u0002\u0002\u0002\u0850\u0851\u0003\u0002\u0002\u0002\u0851\u0852", "\u0003\u0002\u0002\u0002\u0852\u0853\u0007\u0017\u0002\u0002\u0853\u0121", "\u0003\u0002\u0002\u0002\u0854\u0856\u0007{\u0002\u0002\u0855\u0854", "\u0003\u0002\u0002\u0002\u0855\u0856\u0003\u0002\u0002\u0002\u0856\u085f", "\u0003\u0002\u0002\u0002\u0857\u0858\u0007*\u0002\u0002\u0858\u0859", "\u0005\u0128\u0095\u0002\u0859\u085a\u0007(\u0002\u0002\u085a\u0860", "\u0003\u0002\u0002\u0002\u085b\u0860\u0007-\u0002\u0002\u085c\u085d", "\u0007*\u0002\u0002\u085d\u085e\u0007\u0011\u0002\u0002\u085e\u0860", "\u0007(\u0002\u0002\u085f\u0857\u0003\u0002\u0002\u0002\u085f\u085b", "\u0003\u0002\u0002\u0002\u085f\u085c\u0003\u0002\u0002\u0002\u0860\u0123", "\u0003\u0002\u0002\u0002\u0861\u0863\u0007\u001a\u0002\u0002\u0862\u0864", "\u0005\u0128\u0095\u0002\u0863\u0862\u0003\u0002\u0002\u0002\u0863\u0864", "\u0003\u0002\u0002\u0002\u0864\u0865\u0003\u0002\u0002\u0002\u0865\u0866", "\u0007\u001b\u0002\u0002\u0866\u0125\u0003\u0002\u0002\u0002\u0867\u0868", "\u0005\\/\u0002\u0868\u0871\u0007\u0013\u0002\u0002\u0869\u086e\u0005", "\\/\u0002\u086a\u086b\u0007\u0013\u0002\u0002\u086b\u086d\u0005\\/\u0002", "\u086c\u086a\u0003\u0002\u0002\u0002\u086d\u0870\u0003\u0002\u0002\u0002", "\u086e\u086c\u0003\u0002\u0002\u0002\u086e\u086f\u0003\u0002\u0002\u0002", "\u086f\u0872\u0003\u0002\u0002\u0002\u0870\u086e\u0003\u0002\u0002\u0002", "\u0871\u0869\u0003\u0002\u0002\u0002\u0871\u0872\u0003\u0002\u0002\u0002", "\u0872\u0127\u0003\u0002\u0002\u0002\u0873\u0878\u0005\u012a\u0096\u0002", "\u0874\u0875\u0007\u0013\u0002\u0002\u0875\u0877\u0005\u012a\u0096\u0002", "\u0876\u0874\u0003\u0002\u0002\u0002\u0877\u087a\u0003\u0002\u0002\u0002", "\u0878\u0876\u0003\u0002\u0002\u0002\u0878\u0879\u0003\u0002\u0002\u0002", "\u0879\u0129\u0003\u0002\u0002\u0002\u087a\u0878\u0003\u0002\u0002\u0002", "\u087b\u087c\u0005\u012c\u0097\u0002\u087c\u087d\u0007\u0011\u0002\u0002", "\u087d\u087e\u0005\\/\u0002\u087e\u012b\u0003\u0002\u0002\u0002\u087f", "\u0882\u0005\u00d8m\u0002\u0880\u0882\u0007\u00ae\u0002\u0002\u0881", "\u087f\u0003\u0002\u0002\u0002\u0881\u0880\u0003\u0002\u0002\u0002\u0882", "\u012d\u0003\u0002\u0002\u0002\u0883\u0884\u0005\\/\u0002\u0884\u0885", "\u0007\u0011\u0002\u0002\u0885\u0886\u0005\\/\u0002\u0886\u088d\u0003", "\u0002\u0002\u0002\u0887\u0888\u0005\\/\u0002\u0888\u0889\u0007\u0011", "\u0002\u0002\u0889\u088d\u0003\u0002\u0002\u0002\u088a\u088b\u0007\u0011", "\u0002\u0002\u088b\u088d\u0005\\/\u0002\u088c\u0883\u0003\u0002\u0002", "\u0002\u088c\u0887\u0003\u0002\u0002\u0002\u088c\u088a\u0003\u0002\u0002", "\u0002\u088d\u012f\u0003\u0002\u0002\u0002\u088e\u088f\u0005\u00d0i", "\u0002\u088f\u0890\u0005\u014c\u00a7\u0002\u0890\u0891\u0005\\/\u0002", "\u0891\u0131\u0003\u0002\u0002\u0002\u0892\u0893\b\u009a\u0001\u0002", "\u0893\u0894\u0005\u00d0i\u0002\u0894\u0899\u0003\u0002\u0002\u0002", "\u0895\u0896\f\u0003\u0002\u0002\u0896\u0898\u0005\u0086D\u0002\u0897", "\u0895\u0003\u0002\u0002\u0002\u0898\u089b\u0003\u0002\u0002\u0002\u0899", "\u0897\u0003\u0002\u0002\u0002\u0899\u089a\u0003\u0002\u0002\u0002\u089a", "\u0133\u0003\u0002\u0002\u0002\u089b\u0899\u0003\u0002\u0002\u0002\u089c", "\u089d\u0006\u009b5\u0003\u089d\u089e\u0007\u00aa\u0002\u0002\u089e", "\u08a1\u0005\u00e4s\u0002\u089f\u08a1\u0005\\/\u0002\u08a0\u089c\u0003", "\u0002\u0002\u0002\u08a0\u089f\u0003\u0002\u0002\u0002\u08a1\u0135\u0003", "\u0002\u0002\u0002\u08a2\u08a3\u0007\u008a\u0002\u0002\u08a3\u08a4\u0007", "I\u0002\u0002\u08a4\u08a5\u0007o\u0002\u0002\u08a5\u08a6\u0005\\/\u0002", "\u08a6\u0137\u0003\u0002\u0002\u0002\u08a7\u08a8\u0007\u008a\u0002\u0002", "\u08a8\u08a9\u0007\u0082\u0002\u0002\u08a9\u08aa\u0007o\u0002\u0002", "\u08aa\u08ab\u0005\\/\u0002\u08ab\u0139\u0003\u0002\u0002\u0002\u08ac", "\u08b1\u0005\u013c\u009f\u0002\u08ad\u08ae\u0007\u0013\u0002\u0002\u08ae", "\u08b0\u0005\u013c\u009f\u0002\u08af\u08ad\u0003\u0002\u0002\u0002\u08b0", "\u08b3\u0003\u0002\u0002\u0002\u08b1\u08af\u0003\u0002\u0002\u0002\u08b1", "\u08b2\u0003\u0002\u0002\u0002\u08b2\u013b\u0003\u0002\u0002\u0002\u08b3", "\u08b1\u0003\u0002\u0002\u0002\u08b4\u08b9\u0005\u00d0i\u0002\u08b5", "\u08b6\u0007\u0015\u0002\u0002\u08b6\u08b8\u0005\u00d0i\u0002\u08b7", "\u08b5\u0003\u0002\u0002\u0002\u08b8\u08bb\u0003\u0002\u0002\u0002\u08b9", "\u08b7\u0003\u0002\u0002\u0002\u08b9\u08ba\u0003\u0002\u0002\u0002\u08ba", "\u08bd\u0003\u0002\u0002\u0002\u08bb\u08b9\u0003\u0002\u0002\u0002\u08bc", "\u08be\t\u0007\u0002\u0002\u08bd\u08bc\u0003\u0002\u0002\u0002\u08bd", "\u08be\u0003\u0002\u0002\u0002\u08be\u013d\u0003\u0002\u0002\u0002\u08bf", "\u08c6\u0007\"\u0002\u0002\u08c0\u08c6\u0007#\u0002\u0002\u08c1\u08c6", "\u0005\u014e\u00a8\u0002\u08c2\u08c6\u0005\u0150\u00a9\u0002\u08c3\u08c6", "\u0005\u0152\u00aa\u0002\u08c4\u08c6\u0005\u0154\u00ab\u0002\u08c5\u08bf", "\u0003\u0002\u0002\u0002\u08c5\u08c0\u0003\u0002\u0002\u0002\u08c5\u08c1", "\u0003\u0002\u0002\u0002\u08c5\u08c2\u0003\u0002\u0002\u0002\u08c5\u08c3", "\u0003\u0002\u0002\u0002\u08c5\u08c4\u0003\u0002\u0002\u0002\u08c6\u013f", "\u0003\u0002\u0002\u0002\u08c7\u08c8\t\b\u0002\u0002\u08c8\u0141\u0003", "\u0002\u0002\u0002\u08c9\u08ca\u0007\u00aa\u0002\u0002\u08ca\u08cb\u0006", "\u00a26\u0003\u08cb\u0143\u0003\u0002\u0002\u0002\u08cc\u08cd\u0007", "\u00aa\u0002\u0002\u08cd\u08ce\u0006\u00a37\u0003\u08ce\u0145\u0003", "\u0002\u0002\u0002\u08cf\u08d0\u0007\u00aa\u0002\u0002\u08d0\u08d1\u0006", "\u00a48\u0003\u08d1\u0147\u0003\u0002\u0002\u0002\u08d2\u08d3\u0007", "\u00aa\u0002\u0002\u08d3\u08d4\u0006\u00a59\u0003\u08d4\u0149\u0003", "\u0002\u0002\u0002\u08d5\u08d6\u0007\u00aa\u0002\u0002\u08d6\u08d7\u0006", "\u00a6:\u0003\u08d7\u014b\u0003\u0002\u0002\u0002\u08d8\u08d9\u0007", ".\u0002\u0002\u08d9\u014d\u0003\u0002\u0002\u0002\u08da\u08db\u0007", "$\u0002\u0002\u08db\u014f\u0003\u0002\u0002\u0002\u08dc\u08dd\u0007", "%\u0002\u0002\u08dd\u0151\u0003\u0002\u0002\u0002\u08de\u08df\u0007", "&\u0002\u0002\u08df\u0153\u0003\u0002\u0002\u0002\u08e0\u08e1\t\t\u0002", "\u0002\u08e1\u0155\u0003\u0002\u0002\u0002\u08e2\u08e3\u0007\u008d\u0002", "\u0002\u08e3\u08e4\u0005\u0158\u00ad\u0002\u08e4\u08e5\u0007\u0012\u0002", "\u0002\u08e5\u08ea\u0003\u0002\u0002\u0002\u08e6\u08e7\u0005\u0158\u00ad", "\u0002\u08e7\u08e8\u0007\u0012\u0002\u0002\u08e8\u08ea\u0003\u0002\u0002", "\u0002\u08e9\u08e2\u0003\u0002\u0002\u0002\u08e9\u08e6\u0003\u0002\u0002", "\u0002\u08ea\u0157\u0003\u0002\u0002\u0002\u08eb\u08ec\b\u00ad\u0001", "\u0002\u08ec\u08ed\u0005\u015a\u00ae\u0002\u08ed\u08f2\u0003\u0002\u0002", "\u0002\u08ee\u08ef\f\u0003\u0002\u0002\u08ef\u08f1\u0005\u0160\u00b1", "\u0002\u08f0\u08ee\u0003\u0002\u0002\u0002\u08f1\u08f4\u0003\u0002\u0002", "\u0002\u08f2\u08f0\u0003\u0002\u0002\u0002\u08f2\u08f3\u0003\u0002\u0002", "\u0002\u08f3\u0159\u0003\u0002\u0002\u0002\u08f4\u08f2\u0003\u0002\u0002", "\u0002\u08f5\u08fd\u0005\u015c\u00af\u0002\u08f6\u08fd\u0005\u015e\u00b0", "\u0002\u08f7\u08fd\u0005\u0168\u00b5\u0002\u08f8\u08fd\u0005\u016a\u00b6", "\u0002\u08f9\u08fd\u0005\u016c\u00b7\u0002\u08fa\u08fd\u0005\u0162\u00b2", "\u0002\u08fb\u08fd\u0005\u0166\u00b4\u0002\u08fc\u08f5\u0003\u0002\u0002", "\u0002\u08fc\u08f6\u0003\u0002\u0002\u0002\u08fc\u08f7\u0003\u0002\u0002", "\u0002\u08fc\u08f8\u0003\u0002\u0002\u0002\u08fc\u08f9\u0003\u0002\u0002", "\u0002\u08fc\u08fa\u0003\u0002\u0002\u0002\u08fc\u08fb\u0003\u0002\u0002", "\u0002\u08fd\u015b\u0003\u0002\u0002\u0002\u08fe\u08ff\u0005\u0118\u008d", "\u0002\u08ff\u015d\u0003\u0002\u0002\u0002\u0900\u0901\u0005\u0142\u00a2", "\u0002\u0901\u0902\u0005\u0162\u00b2\u0002\u0902\u015f\u0003\u0002\u0002", "\u0002\u0903\u0904\u0007\u0015\u0002\u0002\u0904\u0909\u0005\u0162\u00b2", "\u0002\u0905\u0906\u0007\u0015\u0002\u0002\u0906\u0909\u0005\u016e\u00b8", "\u0002\u0907\u0909\u0005\u0166\u00b4\u0002\u0908\u0903\u0003\u0002\u0002", "\u0002\u0908\u0905\u0003\u0002\u0002\u0002\u0908\u0907\u0003\u0002\u0002", "\u0002\u0909\u0161\u0003\u0002\u0002\u0002\u090a\u090b\u0005\u016e\u00b8", "\u0002\u090b\u090d\u0007\u0016\u0002\u0002\u090c\u090e\u0005\u0164\u00b3", "\u0002\u090d\u090c\u0003\u0002\u0002\u0002\u090d\u090e\u0003\u0002\u0002", "\u0002\u090e\u090f\u0003\u0002\u0002\u0002\u090f\u0910\u0007\u0017\u0002", "\u0002\u0910\u0163\u0003\u0002\u0002\u0002\u0911\u0912\b\u00b3\u0001", "\u0002\u0912\u0913\u0005\u0158\u00ad\u0002\u0913\u0919\u0003\u0002\u0002", "\u0002\u0914\u0915\f\u0003\u0002\u0002\u0915\u0916\u0007\u0013\u0002", "\u0002\u0916\u0918\u0005\u0158\u00ad\u0002\u0917\u0914\u0003\u0002\u0002", "\u0002\u0918\u091b\u0003\u0002\u0002\u0002\u0919\u0917\u0003\u0002\u0002", "\u0002\u0919\u091a\u0003\u0002\u0002\u0002\u091a\u0165\u0003\u0002\u0002", "\u0002\u091b\u0919\u0003\u0002\u0002\u0002\u091c\u091d\u0007\u0018\u0002", "\u0002\u091d\u091e\u0005\u0158\u00ad\u0002\u091e\u091f\u0007\u0019\u0002", "\u0002\u091f\u0167\u0003\u0002\u0002\u0002\u0920\u0921\u0007\u0016\u0002", "\u0002\u0921\u0922\u0005\u0158\u00ad\u0002\u0922\u0923\u0007\u0017\u0002", "\u0002\u0923\u0169\u0003\u0002\u0002\u0002\u0924\u0925\u0005\u016e\u00b8", "\u0002\u0925\u016b\u0003\u0002\u0002\u0002\u0926\u092c\u0007\u00b0\u0002", "\u0002\u0927\u092c\u0007\u00b2\u0002\u0002\u0928\u092c\u0007\u00ae\u0002", "\u0002\u0929\u092c\u0007\u00a4\u0002\u0002\u092a\u092c\u0007\u00a5\u0002", "\u0002\u092b\u0926\u0003\u0002\u0002\u0002\u092b\u0927\u0003\u0002\u0002", "\u0002\u092b\u0928\u0003\u0002\u0002\u0002\u092b\u0929\u0003\u0002\u0002", "\u0002\u092b\u092a\u0003\u0002\u0002\u0002\u092c\u016d\u0003\u0002\u0002", "\u0002\u092d\u092e\t\n\u0002\u0002\u092e\u016f\u0003\u0002\u0002\u0002", "\u092f\u0930\u0007\u008d\u0002\u0002\u0930\u0933\u0005\u0172\u00ba\u0002", "\u0931\u0933\u0005\u0172\u00ba\u0002\u0932\u092f\u0003\u0002\u0002\u0002", "\u0932\u0931\u0003\u0002\u0002\u0002\u0933\u0171\u0003\u0002\u0002\u0002", "\u0934\u0935\b\u00ba\u0001\u0002\u0935\u0936\u0005\u0174\u00bb\u0002", "\u0936\u093b\u0003\u0002\u0002\u0002\u0937\u0938\f\u0003\u0002\u0002", "\u0938\u093a\u0005\u0178\u00bd\u0002\u0939\u0937\u0003\u0002\u0002\u0002", "\u093a\u093d\u0003\u0002\u0002\u0002\u093b\u0939\u0003\u0002\u0002\u0002", "\u093b\u093c\u0003\u0002\u0002\u0002\u093c\u0173\u0003\u0002\u0002\u0002", "\u093d\u093b\u0003\u0002\u0002\u0002\u093e\u0944\u0005\u0176\u00bc\u0002", "\u093f\u0944\u0005\u0182\u00c2\u0002\u0940\u0944\u0005\u0184\u00c3\u0002", "\u0941\u0944\u0005\u0186\u00c4\u0002\u0942\u0944\u0005\u017a\u00be\u0002", "\u0943\u093e\u0003\u0002\u0002\u0002\u0943\u093f\u0003\u0002\u0002\u0002", "\u0943\u0940\u0003\u0002\u0002\u0002\u0943\u0941\u0003\u0002\u0002\u0002", "\u0943\u0942\u0003\u0002\u0002\u0002\u0944\u0175\u0003\u0002\u0002\u0002", "\u0945\u0946\u0005\u0118\u008d\u0002\u0946\u0177\u0003\u0002\u0002\u0002", "\u0947\u0948\u0007\u0015\u0002\u0002\u0948\u094e\u0005\u017a\u00be\u0002", "\u0949\u094a\u0007\u0018\u0002\u0002\u094a\u094b\u0005\u0172\u00ba\u0002", "\u094b\u094c\u0007\u0019\u0002\u0002\u094c\u094e\u0003\u0002\u0002\u0002", "\u094d\u0947\u0003\u0002\u0002\u0002\u094d\u0949\u0003\u0002\u0002\u0002", "\u094e\u0179\u0003\u0002\u0002\u0002\u094f\u0950\u0005\u0188\u00c5\u0002", "\u0950\u0952\u0007\u0016\u0002\u0002\u0951\u0953\u0005\u017c\u00bf\u0002", "\u0952\u0951\u0003\u0002\u0002\u0002\u0952\u0953\u0003\u0002\u0002\u0002", "\u0953\u0954\u0003\u0002\u0002\u0002\u0954\u0955\u0007\u0017\u0002\u0002", "\u0955\u017b\u0003\u0002\u0002\u0002\u0956\u095d\u0005\u017e\u00c0\u0002", "\u0957\u095d\u0005\u0180\u00c1\u0002\u0958\u0959\u0005\u017e\u00c0\u0002", "\u0959\u095a\u0007\u0013\u0002\u0002\u095a\u095b\u0005\u0180\u00c1\u0002", "\u095b\u095d\u0003\u0002\u0002\u0002\u095c\u0956\u0003\u0002\u0002\u0002", "\u095c\u0957\u0003\u0002\u0002\u0002\u095c\u0958\u0003\u0002\u0002\u0002", "\u095d\u017d\u0003\u0002\u0002\u0002\u095e\u095f\b\u00c0\u0001\u0002", "\u095f\u0960\u0005\u0172\u00ba\u0002\u0960\u0966\u0003\u0002\u0002\u0002", "\u0961\u0962\f\u0003\u0002\u0002\u0962\u0963\u0007\u0013\u0002\u0002", "\u0963\u0965\u0005\u0172\u00ba\u0002\u0964\u0961\u0003\u0002\u0002\u0002", "\u0965\u0968\u0003\u0002\u0002\u0002\u0966\u0964\u0003\u0002\u0002\u0002", "\u0966\u0967\u0003\u0002\u0002\u0002\u0967\u017f\u0003\u0002\u0002\u0002", "\u0968\u0966\u0003\u0002\u0002\u0002\u0969\u096a\b\u00c1\u0001\u0002", "\u096a\u096b\u0005\u0188\u00c5\u0002\u096b\u096c\u0007.\u0002\u0002", "\u096c\u096d\u0005\u0172\u00ba\u0002\u096d\u0976\u0003\u0002\u0002\u0002", "\u096e\u096f\f\u0003\u0002\u0002\u096f\u0970\u0007\u0013\u0002\u0002", "\u0970\u0971\u0005\u0188\u00c5\u0002\u0971\u0972\u0007.\u0002\u0002", "\u0972\u0973\u0005\u0172\u00ba\u0002\u0973\u0975\u0003\u0002\u0002\u0002", "\u0974\u096e\u0003\u0002\u0002\u0002\u0975\u0978\u0003\u0002\u0002\u0002", "\u0976\u0974\u0003\u0002\u0002\u0002\u0976\u0977\u0003\u0002\u0002\u0002", "\u0977\u0181\u0003\u0002\u0002\u0002\u0978\u0976\u0003\u0002\u0002\u0002", "\u0979\u097a\u0007\u0016\u0002\u0002\u097a\u097b\u0005\u0172\u00ba\u0002", "\u097b\u097c\u0007\u0017\u0002\u0002\u097c\u0183\u0003\u0002\u0002\u0002", "\u097d\u097e\b\u00c3\u0001\u0002\u097e\u0981\u0007\u00ac\u0002\u0002", "\u097f\u0981\u0005\u0188\u00c5\u0002\u0980\u097d\u0003\u0002\u0002\u0002", "\u0980\u097f\u0003\u0002\u0002\u0002\u0981\u0987\u0003\u0002\u0002\u0002", "\u0982\u0983\f\u0003\u0002\u0002\u0983\u0984\u0007\u0015\u0002\u0002", "\u0984\u0986\u0005\u0188\u00c5\u0002\u0985\u0982\u0003\u0002\u0002\u0002", "\u0986\u0989\u0003\u0002\u0002\u0002\u0987\u0985\u0003\u0002\u0002\u0002", "\u0987\u0988\u0003\u0002\u0002\u0002\u0988\u0185\u0003\u0002\u0002\u0002", "\u0989\u0987\u0003\u0002\u0002\u0002\u098a\u0990\u0007\u00b0\u0002\u0002", "\u098b\u0990\u0007\u00b2\u0002\u0002\u098c\u0990\u0007\u00ae\u0002\u0002", "\u098d\u0990\u0007\u00a4\u0002\u0002\u098e\u0990\u0007\u00a5\u0002\u0002", "\u098f\u098a\u0003\u0002\u0002\u0002\u098f\u098b\u0003\u0002\u0002\u0002", "\u098f\u098c\u0003\u0002\u0002\u0002\u098f\u098d\u0003\u0002\u0002\u0002", "\u098f\u098e\u0003\u0002\u0002\u0002\u0990\u0187\u0003\u0002\u0002\u0002", "\u0991\u0992\t\u000b\u0002\u0002\u0992\u0189\u0003\u0002\u0002\u0002", "\u0993\u0994\u0007\u008d\u0002\u0002\u0994\u0995\u0005\u018c\u00c7\u0002", "\u0995\u0996\u0007\u0012\u0002\u0002\u0996\u099b\u0003\u0002\u0002\u0002", "\u0997\u0998\u0005\u018c\u00c7\u0002\u0998\u0999\u0007\u0012\u0002\u0002", "\u0999\u099b\u0003\u0002\u0002\u0002\u099a\u0993\u0003\u0002\u0002\u0002", "\u099a\u0997\u0003\u0002\u0002\u0002\u099b\u018b\u0003\u0002\u0002\u0002", "\u099c\u099d\b\u00c7\u0001\u0002\u099d\u099e\u0005\u018e\u00c8\u0002", "\u099e\u09a3\u0003\u0002\u0002\u0002\u099f\u09a0\f\u0003\u0002\u0002", "\u09a0\u09a2\u0005\u0194\u00cb\u0002\u09a1\u099f\u0003\u0002\u0002\u0002", "\u09a2\u09a5\u0003\u0002\u0002\u0002\u09a3\u09a1\u0003\u0002\u0002\u0002", "\u09a3\u09a4\u0003\u0002\u0002\u0002\u09a4\u018d\u0003\u0002\u0002\u0002", "\u09a5\u09a3\u0003\u0002\u0002\u0002\u09a6\u09ac\u0005\u0190\u00c9\u0002", "\u09a7\u09ac\u0005\u0192\u00ca\u0002\u09a8\u09ac\u0005\u019c\u00cf\u0002", "\u09a9\u09ac\u0005\u019e\u00d0\u0002\u09aa\u09ac\u0005\u01a2\u00d2\u0002", "\u09ab\u09a6\u0003\u0002\u0002\u0002\u09ab\u09a7\u0003\u0002\u0002\u0002", "\u09ab\u09a8\u0003\u0002\u0002\u0002\u09ab\u09a9\u0003\u0002\u0002\u0002", "\u09ab\u09aa\u0003\u0002\u0002\u0002\u09ac\u018f\u0003\u0002\u0002\u0002", "\u09ad\u09ae\u0005\u0118\u008d\u0002\u09ae\u0191\u0003\u0002\u0002\u0002", "\u09af\u09b0\u0005\u0142\u00a2\u0002\u09b0\u09b1\u0005\u0196\u00cc\u0002", "\u09b1\u0193\u0003\u0002\u0002\u0002\u09b2\u09b3\u0007\u0015\u0002\u0002", "\u09b3\u09b6\u0005\u0196\u00cc\u0002\u09b4\u09b6\u0005\u019a\u00ce\u0002", "\u09b5\u09b2\u0003\u0002\u0002\u0002\u09b5\u09b4\u0003\u0002\u0002\u0002", "\u09b6\u0195\u0003\u0002\u0002\u0002\u09b7\u09b8\u0005\u01a4\u00d3\u0002", "\u09b8\u09ba\u0007\u0016\u0002\u0002\u09b9\u09bb\u0005\u0198\u00cd\u0002", "\u09ba\u09b9\u0003\u0002\u0002\u0002\u09ba\u09bb\u0003\u0002\u0002\u0002", "\u09bb\u09bc\u0003\u0002\u0002\u0002\u09bc\u09bd\u0007\u0017\u0002\u0002", "\u09bd\u0197\u0003\u0002\u0002\u0002\u09be\u09bf\b\u00cd\u0001\u0002", "\u09bf\u09c0\u0005\u018c\u00c7\u0002\u09c0\u09c6\u0003\u0002\u0002\u0002", "\u09c1\u09c2\f\u0003\u0002\u0002\u09c2\u09c3\u0007\u0013\u0002\u0002", "\u09c3\u09c5\u0005\u018c\u00c7\u0002\u09c4\u09c1\u0003\u0002\u0002\u0002", "\u09c5\u09c8\u0003\u0002\u0002\u0002\u09c6\u09c4\u0003\u0002\u0002\u0002", "\u09c6\u09c7\u0003\u0002\u0002\u0002\u09c7\u0199\u0003\u0002\u0002\u0002", "\u09c8\u09c6\u0003\u0002\u0002\u0002\u09c9\u09ca\u0007\u0018\u0002\u0002", "\u09ca\u09cb\u0005\u018c\u00c7\u0002\u09cb\u09cc\u0007\u0019\u0002\u0002", "\u09cc\u019b\u0003\u0002\u0002\u0002\u09cd\u09ce\u0007\u0016\u0002\u0002", "\u09ce\u09cf\u0005\u018c\u00c7\u0002\u09cf\u09d0\u0007\u0017\u0002\u0002", "\u09d0\u019d\u0003\u0002\u0002\u0002\u09d1\u09d2\b\u00d0\u0001\u0002", "\u09d2\u09d3\u0005\u01a4\u00d3\u0002\u09d3\u09d9\u0003\u0002\u0002\u0002", "\u09d4\u09d5\f\u0003\u0002\u0002\u09d5\u09d6\u0007\u0015\u0002\u0002", "\u09d6\u09d8\u0005\u01a4\u00d3\u0002\u09d7\u09d4\u0003\u0002\u0002\u0002", "\u09d8\u09db\u0003\u0002\u0002\u0002\u09d9\u09d7\u0003\u0002\u0002\u0002", "\u09d9\u09da\u0003\u0002\u0002\u0002\u09da\u019f\u0003\u0002\u0002\u0002", "\u09db\u09d9\u0003\u0002\u0002\u0002\u09dc\u09dd\b\u00d1\u0001\u0002", "\u09dd\u09de\u0005\u019e\u00d0\u0002\u09de\u09e3\u0003\u0002\u0002\u0002", "\u09df\u09e0\f\u0003\u0002\u0002\u09e0\u09e2\u0007\u00ac\u0002\u0002", "\u09e1\u09df\u0003\u0002\u0002\u0002\u09e2\u09e5\u0003\u0002\u0002\u0002", "\u09e3\u09e1\u0003\u0002\u0002\u0002\u09e3\u09e4\u0003\u0002\u0002\u0002", "\u09e4\u01a1\u0003\u0002\u0002\u0002\u09e5\u09e3\u0003\u0002\u0002\u0002", "\u09e6\u09ec\u0007\u00b0\u0002\u0002\u09e7\u09ec\u0007\u00b2\u0002\u0002", "\u09e8\u09ec\u0007\u00ae\u0002\u0002\u09e9\u09ec\u0007\u00a4\u0002\u0002", "\u09ea\u09ec\u0007\u00a5\u0002\u0002\u09eb\u09e6\u0003\u0002\u0002\u0002", "\u09eb\u09e7\u0003\u0002\u0002\u0002\u09eb\u09e8\u0003\u0002\u0002\u0002", "\u09eb\u09e9\u0003\u0002\u0002\u0002\u09eb\u09ea\u0003\u0002\u0002\u0002", "\u09ec\u01a3\u0003\u0002\u0002\u0002\u09ed\u09ee\t\f\u0002\u0002\u09ee", "\u01a5\u0003\u0002\u0002\u0002\u09ef\u09f0\u0007\u008d\u0002\u0002\u09f0", "\u09f1\u0005\u01a8\u00d5\u0002\u09f1\u09f2\u0007\u0012\u0002\u0002\u09f2", "\u09f7\u0003\u0002\u0002\u0002\u09f3\u09f4\u0005\u01a8\u00d5\u0002\u09f4", "\u09f5\u0007\u0012\u0002\u0002\u09f5\u09f7\u0003\u0002\u0002\u0002\u09f6", "\u09ef\u0003\u0002\u0002\u0002\u09f6\u09f3\u0003\u0002\u0002\u0002\u09f7", "\u01a7\u0003\u0002\u0002\u0002\u09f8\u09f9\b\u00d5\u0001\u0002\u09f9", "\u09fa\u0005\u01aa\u00d6\u0002\u09fa\u09ff\u0003\u0002\u0002\u0002\u09fb", "\u09fc\f\u0003\u0002\u0002\u09fc\u09fe\u0005\u01b0\u00d9\u0002\u09fd", "\u09fb\u0003\u0002\u0002\u0002\u09fe\u0a01\u0003\u0002\u0002\u0002\u09ff", "\u09fd\u0003\u0002\u0002\u0002\u09ff\u0a00\u0003\u0002\u0002\u0002\u0a00", "\u01a9\u0003\u0002\u0002\u0002\u0a01\u09ff\u0003\u0002\u0002\u0002\u0a02", "\u0a08\u0005\u01ac\u00d7\u0002\u0a03\u0a08\u0005\u01ae\u00d8\u0002\u0a04", "\u0a08\u0005\u01b8\u00dd\u0002\u0a05\u0a08\u0005\u01ba\u00de\u0002\u0a06", "\u0a08\u0005\u01bc\u00df\u0002\u0a07\u0a02\u0003\u0002\u0002\u0002\u0a07", "\u0a03\u0003\u0002\u0002\u0002\u0a07\u0a04\u0003\u0002\u0002\u0002\u0a07", "\u0a05\u0003\u0002\u0002\u0002\u0a07\u0a06\u0003\u0002\u0002\u0002\u0a08", "\u01ab\u0003\u0002\u0002\u0002\u0a09\u0a0a\u0005\u0118\u008d\u0002\u0a0a", "\u01ad\u0003\u0002\u0002\u0002\u0a0b\u0a0c\u0005\u0142\u00a2\u0002\u0a0c", "\u0a0d\u0005\u01b2\u00da\u0002\u0a0d\u01af\u0003\u0002\u0002\u0002\u0a0e", "\u0a0f\u0007\u0015\u0002\u0002\u0a0f\u0a12\u0005\u01b2\u00da\u0002\u0a10", "\u0a12\u0005\u01b6\u00dc\u0002\u0a11\u0a0e\u0003\u0002\u0002\u0002\u0a11", "\u0a10\u0003\u0002\u0002\u0002\u0a12\u01b1\u0003\u0002\u0002\u0002\u0a13", "\u0a14\u0005\u01be\u00e0\u0002\u0a14\u0a16\u0007\u0016\u0002\u0002\u0a15", "\u0a17\u0005\u01b4\u00db\u0002\u0a16\u0a15\u0003\u0002\u0002\u0002\u0a16", "\u0a17\u0003\u0002\u0002\u0002\u0a17\u0a18\u0003\u0002\u0002\u0002\u0a18", "\u0a19\u0007\u0017\u0002\u0002\u0a19\u01b3\u0003\u0002\u0002\u0002\u0a1a", "\u0a1b\b\u00db\u0001\u0002\u0a1b\u0a1c\u0005\u01a8\u00d5\u0002\u0a1c", "\u0a22\u0003\u0002\u0002\u0002\u0a1d\u0a1e\f\u0003\u0002\u0002\u0a1e", "\u0a1f\u0007\u0013\u0002\u0002\u0a1f\u0a21\u0005\u01a8\u00d5\u0002\u0a20", "\u0a1d\u0003\u0002\u0002\u0002\u0a21\u0a24\u0003\u0002\u0002\u0002\u0a22", "\u0a20\u0003\u0002\u0002\u0002\u0a22\u0a23\u0003\u0002\u0002\u0002\u0a23", "\u01b5\u0003\u0002\u0002\u0002\u0a24\u0a22\u0003\u0002\u0002\u0002\u0a25", "\u0a26\u0007\u0018\u0002\u0002\u0a26\u0a27\u0005\u01a8\u00d5\u0002\u0a27", "\u0a28\u0007\u0019\u0002\u0002\u0a28\u01b7\u0003\u0002\u0002\u0002\u0a29", "\u0a2a\u0007\u0016\u0002\u0002\u0a2a\u0a2b\u0005\u01a8\u00d5\u0002\u0a2b", "\u0a2c\u0007\u0017\u0002\u0002\u0a2c\u01b9\u0003\u0002\u0002\u0002\u0a2d", "\u0a2e\b\u00de\u0001\u0002\u0a2e\u0a31\u0007\u00ac\u0002\u0002\u0a2f", "\u0a31\u0005\u01be\u00e0\u0002\u0a30\u0a2d\u0003\u0002\u0002\u0002\u0a30", "\u0a2f\u0003\u0002\u0002\u0002\u0a31\u0a37\u0003\u0002\u0002\u0002\u0a32", "\u0a33\f\u0003\u0002\u0002\u0a33\u0a34\u0007\u0015\u0002\u0002\u0a34", "\u0a36\u0005\u01be\u00e0\u0002\u0a35\u0a32\u0003\u0002\u0002\u0002\u0a36", "\u0a39\u0003\u0002\u0002\u0002\u0a37\u0a35\u0003\u0002\u0002\u0002\u0a37", "\u0a38\u0003\u0002\u0002\u0002\u0a38\u01bb\u0003\u0002\u0002\u0002\u0a39", "\u0a37\u0003\u0002\u0002\u0002\u0a3a\u0a40\u0007\u00b0\u0002\u0002\u0a3b", "\u0a40\u0007\u00b2\u0002\u0002\u0a3c\u0a40\u0007\u00ae\u0002\u0002\u0a3d", "\u0a40\u0007\u00a4\u0002\u0002\u0a3e\u0a40\u0007\u00a5\u0002\u0002\u0a3f", "\u0a3a\u0003\u0002\u0002\u0002\u0a3f\u0a3b\u0003\u0002\u0002\u0002\u0a3f", "\u0a3c\u0003\u0002\u0002\u0002\u0a3f\u0a3d\u0003\u0002\u0002\u0002\u0a3f", "\u0a3e\u0003\u0002\u0002\u0002\u0a40\u01bd\u0003\u0002\u0002\u0002\u0a41", "\u0a42\t\r\u0002\u0002\u0a42\u01bf\u0003\u0002\u0002\u0002\u0a43\u0a46", "\u0005\u01c2\u00e2\u0002\u0a44\u0a46\u0005\u01c4\u00e3\u0002\u0a45\u0a43", "\u0003\u0002\u0002\u0002\u0a45\u0a44\u0003\u0002\u0002\u0002\u0a46\u01c1", "\u0003\u0002\u0002\u0002\u0a47\u0a4f\u0005\u01ca\u00e6\u0002\u0a48\u0a4a", "\u0005\u01cc\u00e7\u0002\u0a49\u0a4b\u0005\u01d8\u00ed\u0002\u0a4a\u0a49", "\u0003\u0002\u0002\u0002\u0a4a\u0a4b\u0003\u0002\u0002\u0002\u0a4b\u0a4c", "\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u0005\u01ce\u00e8\u0002\u0a4d\u0a4f", "\u0003\u0002\u0002\u0002\u0a4e\u0a47\u0003\u0002\u0002\u0002\u0a4e\u0a48", "\u0003\u0002\u0002\u0002\u0a4f\u01c3\u0003\u0002\u0002\u0002\u0a50\u0a52", "\u0005\u01c6\u00e4\u0002\u0a51\u0a53\u0005\u01d8\u00ed\u0002\u0a52\u0a51", "\u0003\u0002\u0002\u0002\u0a52\u0a53\u0003\u0002\u0002\u0002\u0a53\u0a54", "\u0003\u0002\u0002\u0002\u0a54\u0a55\u0005\u01c8\u00e5\u0002\u0a55\u01c5", "\u0003\u0002\u0002\u0002\u0a56\u0a57\u0007*\u0002\u0002\u0a57\u0a5a", "\u0007(\u0002\u0002\u0a58\u0a5a\u0007,\u0002\u0002\u0a59\u0a56\u0003", "\u0002\u0002\u0002\u0a59\u0a58\u0003\u0002\u0002\u0002\u0a5a\u01c7\u0003", "\u0002\u0002\u0002\u0a5b\u0a5c\u0007*\u0002\u0002\u0a5c\u0a5d\u0007", "%\u0002\u0002\u0a5d\u0a5e\u0007(\u0002\u0002\u0a5e\u01c9\u0003\u0002", "\u0002\u0002\u0a5f\u0a60\u0007*\u0002\u0002\u0a60\u0a61\u0005\u01d0", "\u00e9\u0002\u0a61\u0a65\u0005\u008eH\u0002\u0a62\u0a64\u0005\u01d4", "\u00eb\u0002\u0a63\u0a62\u0003\u0002\u0002\u0002\u0a64\u0a67\u0003\u0002", "\u0002\u0002\u0a65\u0a63\u0003\u0002\u0002\u0002\u0a65\u0a66\u0003\u0002", "\u0002\u0002\u0a66\u0a68\u0003\u0002\u0002\u0002\u0a67\u0a65\u0003\u0002", "\u0002\u0002\u0a68\u0a69\u0007%\u0002\u0002\u0a69\u0a6a\u0007(\u0002", "\u0002\u0a6a\u01cb\u0003\u0002\u0002\u0002\u0a6b\u0a6c\u0007*\u0002", "\u0002\u0a6c\u0a6d\u0005\u01d0\u00e9\u0002\u0a6d\u0a71\u0005\u008eH", "\u0002\u0a6e\u0a70\u0005\u01d4\u00eb\u0002\u0a6f\u0a6e\u0003\u0002\u0002", "\u0002\u0a70\u0a73\u0003\u0002\u0002\u0002\u0a71\u0a6f\u0003\u0002\u0002", "\u0002\u0a71\u0a72\u0003\u0002\u0002\u0002\u0a72\u0a74\u0003\u0002\u0002", "\u0002\u0a73\u0a71\u0003\u0002\u0002\u0002\u0a74\u0a75\u0007(\u0002", "\u0002\u0a75\u01cd\u0003\u0002\u0002\u0002\u0a76\u0a77\u0007*\u0002", "\u0002\u0a77\u0a78\u0007%\u0002\u0002\u0a78\u0a79\u0005\u01d0\u00e9", "\u0002\u0a79\u0a7a\u0007(\u0002\u0002\u0a7a\u01cf\u0003\u0002\u0002", "\u0002\u0a7b\u0a80\u0005\u01d2\u00ea\u0002\u0a7c\u0a7d\u0007\u0015\u0002", "\u0002\u0a7d\u0a7f\u0005\u01d2\u00ea\u0002\u0a7e\u0a7c\u0003\u0002\u0002", "\u0002\u0a7f\u0a82\u0003\u0002\u0002\u0002\u0a80\u0a7e\u0003\u0002\u0002", "\u0002\u0a80\u0a81\u0003\u0002\u0002\u0002\u0a81\u01d1\u0003\u0002\u0002", "\u0002\u0a82\u0a80\u0003\u0002\u0002\u0002\u0a83\u0a87\u0005\u00c8e", "\u0002\u0a84\u0a86\u0005\u00caf\u0002\u0a85\u0a84\u0003\u0002\u0002", "\u0002\u0a86\u0a89\u0003\u0002\u0002\u0002\u0a87\u0a85\u0003\u0002\u0002", "\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88\u01d3\u0003\u0002\u0002", "\u0002\u0a89\u0a87\u0003\u0002\u0002\u0002\u0a8a\u0a8d\u0005\u01d2\u00ea", "\u0002\u0a8b\u0a8c\u0007.\u0002\u0002\u0a8c\u0a8e\u0005\u01d6\u00ec", "\u0002\u0a8d\u0a8b\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u0003\u0002\u0002", "\u0002\u0a8e\u0a8f\u0003\u0002\u0002\u0002\u0a8f\u0a90\u0005\u008eH", "\u0002\u0a90\u01d5\u0003\u0002\u0002\u0002\u0a91\u0a97\u0007\u00ae\u0002", "\u0002\u0a92\u0a93\u0007\u001a\u0002\u0002\u0a93\u0a94\u0005\\/\u0002", "\u0a94\u0a95\u0007\u001b\u0002\u0002\u0a95\u0a97\u0003\u0002\u0002\u0002", "\u0a96\u0a91\u0003\u0002\u0002\u0002\u0a96\u0a92\u0003\u0002\u0002\u0002", "\u0a97\u01d7\u0003\u0002\u0002\u0002\u0a98\u0a9a\u0005\u01da\u00ee\u0002", "\u0a99\u0a98\u0003\u0002\u0002\u0002\u0a9a\u0a9b\u0003\u0002\u0002\u0002", "\u0a9b\u0a99\u0003\u0002\u0002\u0002\u0a9b\u0a9c\u0003\u0002\u0002\u0002", "\u0a9c\u01d9\u0003\u0002\u0002\u0002\u0a9d\u0aa5\u0005\u01dc\u00ef\u0002", "\u0a9e\u0aa5\u0005\u01c2\u00e2\u0002\u0a9f\u0aa1\u0007\u001a\u0002\u0002", "\u0aa0\u0aa2\u0005\\/\u0002\u0aa1\u0aa0\u0003\u0002\u0002\u0002\u0aa1", "\u0aa2\u0003\u0002\u0002\u0002\u0aa2\u0aa3\u0003\u0002\u0002\u0002\u0aa3", "\u0aa5\u0007\u001b\u0002\u0002\u0aa4\u0a9d\u0003\u0002\u0002\u0002\u0aa4", "\u0a9e\u0003\u0002\u0002\u0002\u0aa4\u0a9f\u0003\u0002\u0002\u0002\u0aa5", "\u01db\u0003\u0002\u0002\u0002\u0aa6\u0aa8\n\u000e\u0002\u0002\u0aa7", "\u0aa6\u0003\u0002\u0002\u0002\u0aa8\u0aa9\u0003\u0002\u0002\u0002\u0aa9", "\u0aa7\u0003\u0002\u0002\u0002\u0aa9\u0aaa\u0003\u0002\u0002\u0002\u0aaa", "\u01dd\u0003\u0002\u0002\u0002\u0aab\u0aad\u0007\u001a\u0002\u0002\u0aac", "\u0aae\u0005\u01e0\u00f1\u0002\u0aad\u0aac\u0003\u0002\u0002\u0002\u0aae", "\u0aaf\u0003\u0002\u0002\u0002\u0aaf\u0aad\u0003\u0002\u0002\u0002\u0aaf", "\u0ab0\u0003\u0002\u0002\u0002\u0ab0\u0ab1\u0003\u0002\u0002\u0002\u0ab1", "\u0ab2\u0007\u001b\u0002\u0002\u0ab2\u01df\u0003\u0002\u0002\u0002\u0ab3", "\u0ab4\u0005\u01e2\u00f2\u0002\u0ab4\u0ab5\u0007\u0011\u0002\u0002\u0ab5", "\u0ab6\u0005\u01e4\u00f3\u0002\u0ab6\u0ab7\u0007\u0012\u0002\u0002\u0ab7", "\u01e1\u0003\u0002\u0002\u0002\u0ab8\u0ab9\b\u00f2\u0001\u0002\u0ab9", "\u0abd\u0005\u00c8e\u0002\u0aba\u0abb\u0007#\u0002\u0002\u0abb\u0abd", "\u0005\u00ccg\u0002\u0abc\u0ab8\u0003\u0002\u0002\u0002\u0abc\u0aba", "\u0003\u0002\u0002\u0002\u0abd\u0ac6\u0003\u0002\u0002\u0002\u0abe\u0ac0", "\f\u0003\u0002\u0002\u0abf\u0ac1\u0005\u00caf\u0002\u0ac0\u0abf\u0003", "\u0002\u0002\u0002\u0ac1\u0ac2\u0003\u0002\u0002\u0002\u0ac2\u0ac0\u0003", "\u0002\u0002\u0002\u0ac2\u0ac3\u0003\u0002\u0002\u0002\u0ac3\u0ac5\u0003", "\u0002\u0002\u0002\u0ac4\u0abe\u0003\u0002\u0002\u0002\u0ac5\u0ac8\u0003", "\u0002\u0002\u0002\u0ac6\u0ac4\u0003\u0002\u0002\u0002\u0ac6\u0ac7\u0003", "\u0002\u0002\u0002\u0ac7\u01e3\u0003\u0002\u0002\u0002\u0ac8\u0ac6\u0003", "\u0002\u0002\u0002\u0ac9\u0aca\u0007\u001a\u0002\u0002\u0aca\u0acb\u0005", "\\/\u0002\u0acb\u0acc\u0007\u001b\u0002\u0002\u0acc\u0acf\u0003\u0002", "\u0002\u0002\u0acd\u0acf\u0005\u01e6\u00f4\u0002\u0ace\u0ac9\u0003\u0002", "\u0002\u0002\u0ace\u0acd\u0003\u0002\u0002\u0002\u0acf\u01e5\u0003\u0002", "\u0002\u0002\u0ad0\u0ad2\n\u000f\u0002\u0002\u0ad1\u0ad0\u0003\u0002", "\u0002\u0002\u0ad2\u0ad3\u0003\u0002\u0002\u0002\u0ad3\u0ad1\u0003\u0002", "\u0002\u0002\u0ad3\u0ad4\u0003\u0002\u0002\u0002\u0ad4\u01e7\u0003\u0002", "\u0002\u0002\u00f7\u01ee\u01f5\u0213\u0219\u021e\u0224\u0226\u0229\u0230", "\u0239\u0252\u0256\u0261\u026a\u0279\u0282\u0289\u0293\u02a9\u02c0\u02cd", "\u02d8\u02e6\u02ec\u02f7\u0305\u0319\u0324\u0326\u032f\u0333\u033b\u033f", "\u0346\u034e\u0353\u0357\u0372\u0379\u037e\u0382\u0398\u03a1\u03a5\u03ad", "\u03b1\u03b6\u03bd\u03c0\u03e1\u03f4\u03fb\u041d\u0426\u043d\u044d\u0452", "\u045a\u0463\u047a\u0480\u0489\u04a3\u0513\u0515\u051f\u0531\u053a\u054a", "\u054f\u0559\u055e\u0560\u0566\u0568\u056a\u057e\u0585\u0589\u0594\u0598", "\u059d\u059f\u05a4\u05b3\u05b7\u05c2\u05c6\u05cb\u05d5\u05d9\u05e1\u05e8", "\u05ea\u05ef\u05f1\u05fc\u0602\u0612\u061b\u0621\u0626\u062c\u0633\u063b", "\u0646\u064e\u0656\u065f\u0666\u066e\u0676\u067f\u0687\u0694\u0697\u069b", "\u06a0\u06a4\u06ad\u06c2\u06cb\u06cd\u06d2\u06e4\u06e9\u06f2\u06f6\u06fd", "\u0702\u0706\u0712\u0723\u0728\u072b\u072f\u0734\u073b\u0746\u0748\u0751", "\u0759\u0761\u0769\u0771\u0777\u0783\u0787\u0791\u0799\u079d\u07a3\u07aa", "\u07af\u07b6\u07be\u07c5\u07cf\u07dc\u07e0\u07e3\u07e7\u07ea\u07f2\u07fb", "\u0804\u080d\u081e\u082f\u0836\u0841\u0849\u084c\u0850\u0855\u085f\u0863", "\u086e\u0871\u0878\u0881\u088c\u0899\u08a0\u08b1\u08b9\u08bd\u08c5\u08e9", "\u08f2\u08fc\u0908\u090d\u0919\u092b\u0932\u093b\u0943\u094d\u0952\u095c", "\u0966\u0976\u0980\u0987\u098f\u099a\u09a3\u09ab\u09b5\u09ba\u09c6\u09d9", "\u09e3\u09eb\u09f6\u09ff\u0a07\u0a11\u0a16\u0a22\u0a30\u0a37\u0a3f\u0a45", "\u0a4a\u0a4e\u0a52\u0a59\u0a65\u0a71\u0a80\u0a87\u0a8d\u0a96\u0a9b\u0aa1", "\u0aa4\u0aa9\u0aaf\u0abc\u0ac2\u0ac6\u0ace\u0ad3"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); var sharedContextCache = new antlr4.PredictionContextCache(); var literalNames = [ null, null, null, null, null, null, "'\t'", "' '", null, "'Java:'", "'C#:'", "'Python2:'", "'Python3:'", "'JavaScript:'", "'Swift:'", "':'", "';'", null, "'..'", null, null, null, null, null, null, null, null, "'!'", "'&'", "'&&'", "'|'", "'||'", null, "'-'", "'*'", "'/'", "'\\'", "'%'", "'>'", "'>='", "'<'", "'<='", "'<>'", "'<:>'", "'='", "'!='", "'=='", "'~='", "'~'", "'<-'", "'->'", "'Boolean'", "'Character'", "'Text'", "'Integer'", "'Decimal'", "'Date'", "'Time'", "'DateTime'", "'Period'", "'Version'", "'Method'", "'Code'", "'Document'", "'Blob'", "'Image'", "'Uuid'", "'Iterator'", "'Cursor'", "'Html'", "'abstract'", "'all'", "'always'", "'and'", "'any'", "'as'", null, "'attr'", "'attribute'", "'attributes'", "'bindings'", "'break'", "'by'", "'case'", "'catch'", "'category'", "'class'", "'close'", "'contains'", "'def'", "'default'", "'define'", "'delete'", null, "'do'", "'doing'", "'each'", "'else'", "'enum'", "'enumerated'", "'except'", "'execute'", "'expecting'", "'extends'", "'fetch'", "'filtered'", "'finally'", "'flush'", "'for'", "'from'", "'getter'", "'has'", "'if'", "'in'", "'index'", "'invoke'", "'is'", "'matching'", "'method'", "'methods'", "'modulo'", "'mutable'", "'native'", "'None'", "'not'", null, "'null'", "'on'", "'one'", "'open'", "'operator'", "'or'", "'order'", "'otherwise'", "'pass'", "'raise'", "'read'", "'receiving'", "'resource'", "'return'", "'returning'", "'rows'", "'self'", "'setter'", "'singleton'", "'sorted'", "'storable'", "'store'", "'switch'", "'test'", "'then'", "'this'", "'throw'", "'to'", "'try'", "'verifying'", "'widget'", "'with'", "'when'", "'where'", "'while'", "'write'", null, null, "'MIN_INTEGER'", "'MAX_INTEGER'" ]; var symbolicNames = [ null, "INDENT", "DEDENT", "LF_TAB", "LF_MORE", "LF", "TAB", "WS", "COMMENT", "JAVA", "CSHARP", "PYTHON2", "PYTHON3", "JAVASCRIPT", "SWIFT", "COLON", "SEMI", "COMMA", "RANGE", "DOT", "LPAR", "RPAR", "LBRAK", "RBRAK", "LCURL", "RCURL", "QMARK", "XMARK", "AMP", "AMP2", "PIPE", "PIPE2", "PLUS", "MINUS", "STAR", "SLASH", "BSLASH", "PERCENT", "GT", "GTE", "LT", "LTE", "LTGT", "LTCOLONGT", "EQ", "XEQ", "EQ2", "TEQ", "TILDE", "LARROW", "RARROW", "BOOLEAN", "CHARACTER", "TEXT", "INTEGER", "DECIMAL", "DATE", "TIME", "DATETIME", "PERIOD", "VERSION", "METHOD_T", "CODE", "DOCUMENT", "BLOB", "IMAGE", "UUID", "ITERATOR", "CURSOR", "HTML", "ABSTRACT", "ALL", "ALWAYS", "AND", "ANY", "AS", "ASC", "ATTR", "ATTRIBUTE", "ATTRIBUTES", "BINDINGS", "BREAK", "BY", "CASE", "CATCH", "CATEGORY", "CLASS", "CLOSE", "CONTAINS", "DEF", "DEFAULT", "DEFINE", "DELETE", "DESC", "DO", "DOING", "EACH", "ELSE", "ENUM", "ENUMERATED", "EXCEPT", "EXECUTE", "EXPECTING", "EXTENDS", "FETCH", "FILTERED", "FINALLY", "FLUSH", "FOR", "FROM", "GETTER", "HAS", "IF", "IN", "INDEX", "INVOKE", "IS", "MATCHING", "METHOD", "METHODS", "MODULO", "MUTABLE", "NATIVE", "NONE", "NOT", "NOTHING", "NULL", "ON", "ONE", "OPEN", "OPERATOR", "OR", "ORDER", "OTHERWISE", "PASS", "RAISE", "READ", "RECEIVING", "RESOURCE", "RETURN", "RETURNING", "ROWS", "SELF", "SETTER", "SINGLETON", "SORTED", "STORABLE", "STORE", "SWITCH", "TEST", "THEN", "THIS", "THROW", "TO", "TRY", "VERIFYING", "WIDGET", "WITH", "WHEN", "WHERE", "WHILE", "WRITE", "BOOLEAN_LITERAL", "CHAR_LITERAL", "MIN_INTEGER", "MAX_INTEGER", "SYMBOL_IDENTIFIER", "TYPE_IDENTIFIER", "VARIABLE_IDENTIFIER", "NATIVE_IDENTIFIER", "DOLLAR_IDENTIFIER", "ARONDBASE_IDENTIFIER", "TEXT_LITERAL", "UUID_LITERAL", "INTEGER_LITERAL", "HEXA_LITERAL", "DECIMAL_LITERAL", "DATETIME_LITERAL", "TIME_LITERAL", "DATE_LITERAL", "PERIOD_LITERAL", "VERSION_LITERAL" ]; var ruleNames = [ "enum_category_declaration", "enum_native_declaration", "native_symbol", "category_symbol", "attribute_declaration", "concrete_widget_declaration", "native_widget_declaration", "concrete_category_declaration", "singleton_category_declaration", "derived_list", "operator_method_declaration", "setter_method_declaration", "native_setter_declaration", "getter_method_declaration", "native_getter_declaration", "native_category_declaration", "native_resource_declaration", "native_category_bindings", "native_category_binding_list", "attribute_list", "abstract_method_declaration", "concrete_method_declaration", "native_method_declaration", "test_method_declaration", "assertion", "full_argument_list", "typed_argument", "statement", "flush_statement", "store_statement", "method_call_statement", "with_resource_statement", "with_singleton_statement", "switch_statement", "switch_case_statement", "for_each_statement", "do_while_statement", "while_statement", "if_statement", "else_if_statement_list", "raise_statement", "try_statement", "catch_statement", "break_statement", "return_statement", "expression", "unresolved_expression", "unresolved_selector", "invocation_expression", "invocation_trailer", "selectable_expression", "instance_expression", "instance_selector", "document_expression", "blob_expression", "constructor_expression", "write_statement", "ambiguous_expression", "filtered_list_suffix", "fetch_expression", "fetch_statement", "sorted_expression", "argument_assignment_list", "with_argument_assignment_list", "argument_assignment", "assign_instance_statement", "child_instance", "assign_tuple_statement", "lfs", "lfp", "jsx_ws", "indent", "dedent", "null_literal", "declaration_list", "declarations", "declaration", "annotation_constructor", "annotation_identifier", "resource_declaration", "enum_declaration", "native_symbol_list", "category_symbol_list", "symbol_list", "attribute_constraint", "list_literal", "set_literal", "expression_list", "range_literal", "typedef", "primary_type", "native_type", "category_type", "mutable_category_type", "code_type", "category_declaration", "widget_declaration", "type_identifier_list", "method_identifier", "identifier_or_keyword", "nospace_hyphen_identifier_or_keyword", "nospace_identifier_or_keyword", "identifier", "variable_identifier", "attribute_identifier", "type_identifier", "symbol_identifier", "any_identifier", "argument_list", "argument", "operator_argument", "named_argument", "code_argument", "category_or_any_type", "any_type", "member_method_declaration_list", "member_method_declaration", "native_member_method_declaration_list", "native_member_method_declaration", "native_category_binding", "python_category_binding", "python_module", "javascript_category_binding", "javascript_module", "variable_identifier_list", "attribute_identifier_list", "method_declaration", "comment_statement", "native_statement_list", "native_statement", "python_native_statement", "javascript_native_statement", "statement_list", "assertion_list", "switch_case_statement_list", "catch_statement_list", "literal_collection", "atomic_literal", "literal_list_literal", "this_expression", "parenthesis_expression", "literal_expression", "collection_literal", "tuple_literal", "dict_literal", "document_literal", "expression_tuple", "dict_entry_list", "dict_entry", "dict_key", "slice_arguments", "assign_variable_statement", "assignable_instance", "is_expression", "read_all_expression", "read_one_expression", "order_by_list", "order_by", "operator", "keyword", "new_token", "key_token", "module_token", "value_token", "symbols_token", "assign", "multiply", "divide", "idivide", "modulo", "javascript_statement", "javascript_expression", "javascript_primary_expression", "javascript_this_expression", "javascript_new_expression", "javascript_selector_expression", "javascript_method_expression", "javascript_arguments", "javascript_item_expression", "javascript_parenthesis_expression", "javascript_identifier_expression", "javascript_literal_expression", "javascript_identifier", "python_statement", "python_expression", "python_primary_expression", "python_self_expression", "python_selector_expression", "python_method_expression", "python_argument_list", "python_ordinal_argument_list", "python_named_argument_list", "python_parenthesis_expression", "python_identifier_expression", "python_literal_expression", "python_identifier", "java_statement", "java_expression", "java_primary_expression", "java_this_expression", "java_new_expression", "java_selector_expression", "java_method_expression", "java_arguments", "java_item_expression", "java_parenthesis_expression", "java_identifier_expression", "java_class_identifier_expression", "java_literal_expression", "java_identifier", "csharp_statement", "csharp_expression", "csharp_primary_expression", "csharp_this_expression", "csharp_new_expression", "csharp_selector_expression", "csharp_method_expression", "csharp_arguments", "csharp_item_expression", "csharp_parenthesis_expression", "csharp_identifier_expression", "csharp_literal_expression", "csharp_identifier", "jsx_expression", "jsx_element", "jsx_fragment", "jsx_fragment_start", "jsx_fragment_end", "jsx_self_closing", "jsx_opening", "jsx_closing", "jsx_element_name", "jsx_identifier", "jsx_attribute", "jsx_attribute_value", "jsx_children", "jsx_child", "jsx_text", "css_expression", "css_field", "css_identifier", "css_value", "css_text" ]; function EParser (input) { AbstractParser.call(this, input); this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); this.ruleNames = ruleNames; this.literalNames = literalNames; this.symbolicNames = symbolicNames; return this; } EParser.prototype = Object.create(AbstractParser.prototype); EParser.prototype.constructor = EParser; Object.defineProperty(EParser.prototype, "atn", { get : function() { return atn; } }); EParser.EOF = antlr4.Token.EOF; EParser.INDENT = 1; EParser.DEDENT = 2; EParser.LF_TAB = 3; EParser.LF_MORE = 4; EParser.LF = 5; EParser.TAB = 6; EParser.WS = 7; EParser.COMMENT = 8; EParser.JAVA = 9; EParser.CSHARP = 10; EParser.PYTHON2 = 11; EParser.PYTHON3 = 12; EParser.JAVASCRIPT = 13; EParser.SWIFT = 14; EParser.COLON = 15; EParser.SEMI = 16; EParser.COMMA = 17; EParser.RANGE = 18; EParser.DOT = 19; EParser.LPAR = 20; EParser.RPAR = 21; EParser.LBRAK = 22; EParser.RBRAK = 23; EParser.LCURL = 24; EParser.RCURL = 25; EParser.QMARK = 26; EParser.XMARK = 27; EParser.AMP = 28; EParser.AMP2 = 29; EParser.PIPE = 30; EParser.PIPE2 = 31; EParser.PLUS = 32; EParser.MINUS = 33; EParser.STAR = 34; EParser.SLASH = 35; EParser.BSLASH = 36; EParser.PERCENT = 37; EParser.GT = 38; EParser.GTE = 39; EParser.LT = 40; EParser.LTE = 41; EParser.LTGT = 42; EParser.LTCOLONGT = 43; EParser.EQ = 44; EParser.XEQ = 45; EParser.EQ2 = 46; EParser.TEQ = 47; EParser.TILDE = 48; EParser.LARROW = 49; EParser.RARROW = 50; EParser.BOOLEAN = 51; EParser.CHARACTER = 52; EParser.TEXT = 53; EParser.INTEGER = 54; EParser.DECIMAL = 55; EParser.DATE = 56; EParser.TIME = 57; EParser.DATETIME = 58; EParser.PERIOD = 59; EParser.VERSION = 60; EParser.METHOD_T = 61; EParser.CODE = 62; EParser.DOCUMENT = 63; EParser.BLOB = 64; EParser.IMAGE = 65; EParser.UUID = 66; EParser.ITERATOR = 67; EParser.CURSOR = 68; EParser.HTML = 69; EParser.ABSTRACT = 70; EParser.ALL = 71; EParser.ALWAYS = 72; EParser.AND = 73; EParser.ANY = 74; EParser.AS = 75; EParser.ASC = 76; EParser.ATTR = 77; EParser.ATTRIBUTE = 78; EParser.ATTRIBUTES = 79; EParser.BINDINGS = 80; EParser.BREAK = 81; EParser.BY = 82; EParser.CASE = 83; EParser.CATCH = 84; EParser.CATEGORY = 85; EParser.CLASS = 86; EParser.CLOSE = 87; EParser.CONTAINS = 88; EParser.DEF = 89; EParser.DEFAULT = 90; EParser.DEFINE = 91; EParser.DELETE = 92; EParser.DESC = 93; EParser.DO = 94; EParser.DOING = 95; EParser.EACH = 96; EParser.ELSE = 97; EParser.ENUM = 98; EParser.ENUMERATED = 99; EParser.EXCEPT = 100; EParser.EXECUTE = 101; EParser.EXPECTING = 102; EParser.EXTENDS = 103; EParser.FETCH = 104; EParser.FILTERED = 105; EParser.FINALLY = 106; EParser.FLUSH = 107; EParser.FOR = 108; EParser.FROM = 109; EParser.GETTER = 110; EParser.HAS = 111; EParser.IF = 112; EParser.IN = 113; EParser.INDEX = 114; EParser.INVOKE = 115; EParser.IS = 116; EParser.MATCHING = 117; EParser.METHOD = 118; EParser.METHODS = 119; EParser.MODULO = 120; EParser.MUTABLE = 121; EParser.NATIVE = 122; EParser.NONE = 123; EParser.NOT = 124; EParser.NOTHING = 125; EParser.NULL = 126; EParser.ON = 127; EParser.ONE = 128; EParser.OPEN = 129; EParser.OPERATOR = 130; EParser.OR = 131; EParser.ORDER = 132; EParser.OTHERWISE = 133; EParser.PASS = 134; EParser.RAISE = 135; EParser.READ = 136; EParser.RECEIVING = 137; EParser.RESOURCE = 138; EParser.RETURN = 139; EParser.RETURNING = 140; EParser.ROWS = 141; EParser.SELF = 142; EParser.SETTER = 143; EParser.SINGLETON = 144; EParser.SORTED = 145; EParser.STORABLE = 146; EParser.STORE = 147; EParser.SWITCH = 148; EParser.TEST = 149; EParser.THEN = 150; EParser.THIS = 151; EParser.THROW = 152; EParser.TO = 153; EParser.TRY = 154; EParser.VERIFYING = 155; EParser.WIDGET = 156; EParser.WITH = 157; EParser.WHEN = 158; EParser.WHERE = 159; EParser.WHILE = 160; EParser.WRITE = 161; EParser.BOOLEAN_LITERAL = 162; EParser.CHAR_LITERAL = 163; EParser.MIN_INTEGER = 164; EParser.MAX_INTEGER = 165; EParser.SYMBOL_IDENTIFIER = 166; EParser.TYPE_IDENTIFIER = 167; EParser.VARIABLE_IDENTIFIER = 168; EParser.NATIVE_IDENTIFIER = 169; EParser.DOLLAR_IDENTIFIER = 170; EParser.ARONDBASE_IDENTIFIER = 171; EParser.TEXT_LITERAL = 172; EParser.UUID_LITERAL = 173; EParser.INTEGER_LITERAL = 174; EParser.HEXA_LITERAL = 175; EParser.DECIMAL_LITERAL = 176; EParser.DATETIME_LITERAL = 177; EParser.TIME_LITERAL = 178; EParser.DATE_LITERAL = 179; EParser.PERIOD_LITERAL = 180; EParser.VERSION_LITERAL = 181; EParser.RULE_enum_category_declaration = 0; EParser.RULE_enum_native_declaration = 1; EParser.RULE_native_symbol = 2; EParser.RULE_category_symbol = 3; EParser.RULE_attribute_declaration = 4; EParser.RULE_concrete_widget_declaration = 5; EParser.RULE_native_widget_declaration = 6; EParser.RULE_concrete_category_declaration = 7; EParser.RULE_singleton_category_declaration = 8; EParser.RULE_derived_list = 9; EParser.RULE_operator_method_declaration = 10; EParser.RULE_setter_method_declaration = 11; EParser.RULE_native_setter_declaration = 12; EParser.RULE_getter_method_declaration = 13; EParser.RULE_native_getter_declaration = 14; EParser.RULE_native_category_declaration = 15; EParser.RULE_native_resource_declaration = 16; EParser.RULE_native_category_bindings = 17; EParser.RULE_native_category_binding_list = 18; EParser.RULE_attribute_list = 19; EParser.RULE_abstract_method_declaration = 20; EParser.RULE_concrete_method_declaration = 21; EParser.RULE_native_method_declaration = 22; EParser.RULE_test_method_declaration = 23; EParser.RULE_assertion = 24; EParser.RULE_full_argument_list = 25; EParser.RULE_typed_argument = 26; EParser.RULE_statement = 27; EParser.RULE_flush_statement = 28; EParser.RULE_store_statement = 29; EParser.RULE_method_call_statement = 30; EParser.RULE_with_resource_statement = 31; EParser.RULE_with_singleton_statement = 32; EParser.RULE_switch_statement = 33; EParser.RULE_switch_case_statement = 34; EParser.RULE_for_each_statement = 35; EParser.RULE_do_while_statement = 36; EParser.RULE_while_statement = 37; EParser.RULE_if_statement = 38; EParser.RULE_else_if_statement_list = 39; EParser.RULE_raise_statement = 40; EParser.RULE_try_statement = 41; EParser.RULE_catch_statement = 42; EParser.RULE_break_statement = 43; EParser.RULE_return_statement = 44; EParser.RULE_expression = 45; EParser.RULE_unresolved_expression = 46; EParser.RULE_unresolved_selector = 47; EParser.RULE_invocation_expression = 48; EParser.RULE_invocation_trailer = 49; EParser.RULE_selectable_expression = 50; EParser.RULE_instance_expression = 51; EParser.RULE_instance_selector = 52; EParser.RULE_document_expression = 53; EParser.RULE_blob_expression = 54; EParser.RULE_constructor_expression = 55; EParser.RULE_write_statement = 56; EParser.RULE_ambiguous_expression = 57; EParser.RULE_filtered_list_suffix = 58; EParser.RULE_fetch_expression = 59; EParser.RULE_fetch_statement = 60; EParser.RULE_sorted_expression = 61; EParser.RULE_argument_assignment_list = 62; EParser.RULE_with_argument_assignment_list = 63; EParser.RULE_argument_assignment = 64; EParser.RULE_assign_instance_statement = 65; EParser.RULE_child_instance = 66; EParser.RULE_assign_tuple_statement = 67; EParser.RULE_lfs = 68; EParser.RULE_lfp = 69; EParser.RULE_jsx_ws = 70; EParser.RULE_indent = 71; EParser.RULE_dedent = 72; EParser.RULE_null_literal = 73; EParser.RULE_declaration_list = 74; EParser.RULE_declarations = 75; EParser.RULE_declaration = 76; EParser.RULE_annotation_constructor = 77; EParser.RULE_annotation_identifier = 78; EParser.RULE_resource_declaration = 79; EParser.RULE_enum_declaration = 80; EParser.RULE_native_symbol_list = 81; EParser.RULE_category_symbol_list = 82; EParser.RULE_symbol_list = 83; EParser.RULE_attribute_constraint = 84; EParser.RULE_list_literal = 85; EParser.RULE_set_literal = 86; EParser.RULE_expression_list = 87; EParser.RULE_range_literal = 88; EParser.RULE_typedef = 89; EParser.RULE_primary_type = 90; EParser.RULE_native_type = 91; EParser.RULE_category_type = 92; EParser.RULE_mutable_category_type = 93; EParser.RULE_code_type = 94; EParser.RULE_category_declaration = 95; EParser.RULE_widget_declaration = 96; EParser.RULE_type_identifier_list = 97; EParser.RULE_method_identifier = 98; EParser.RULE_identifier_or_keyword = 99; EParser.RULE_nospace_hyphen_identifier_or_keyword = 100; EParser.RULE_nospace_identifier_or_keyword = 101; EParser.RULE_identifier = 102; EParser.RULE_variable_identifier = 103; EParser.RULE_attribute_identifier = 104; EParser.RULE_type_identifier = 105; EParser.RULE_symbol_identifier = 106; EParser.RULE_any_identifier = 107; EParser.RULE_argument_list = 108; EParser.RULE_argument = 109; EParser.RULE_operator_argument = 110; EParser.RULE_named_argument = 111; EParser.RULE_code_argument = 112; EParser.RULE_category_or_any_type = 113; EParser.RULE_any_type = 114; EParser.RULE_member_method_declaration_list = 115; EParser.RULE_member_method_declaration = 116; EParser.RULE_native_member_method_declaration_list = 117; EParser.RULE_native_member_method_declaration = 118; EParser.RULE_native_category_binding = 119; EParser.RULE_python_category_binding = 120; EParser.RULE_python_module = 121; EParser.RULE_javascript_category_binding = 122; EParser.RULE_javascript_module = 123; EParser.RULE_variable_identifier_list = 124; EParser.RULE_attribute_identifier_list = 125; EParser.RULE_method_declaration = 126; EParser.RULE_comment_statement = 127; EParser.RULE_native_statement_list = 128; EParser.RULE_native_statement = 129; EParser.RULE_python_native_statement = 130; EParser.RULE_javascript_native_statement = 131; EParser.RULE_statement_list = 132; EParser.RULE_assertion_list = 133; EParser.RULE_switch_case_statement_list = 134; EParser.RULE_catch_statement_list = 135; EParser.RULE_literal_collection = 136; EParser.RULE_atomic_literal = 137; EParser.RULE_literal_list_literal = 138; EParser.RULE_this_expression = 139; EParser.RULE_parenthesis_expression = 140; EParser.RULE_literal_expression = 141; EParser.RULE_collection_literal = 142; EParser.RULE_tuple_literal = 143; EParser.RULE_dict_literal = 144; EParser.RULE_document_literal = 145; EParser.RULE_expression_tuple = 146; EParser.RULE_dict_entry_list = 147; EParser.RULE_dict_entry = 148; EParser.RULE_dict_key = 149; EParser.RULE_slice_arguments = 150; EParser.RULE_assign_variable_statement = 151; EParser.RULE_assignable_instance = 152; EParser.RULE_is_expression = 153; EParser.RULE_read_all_expression = 154; EParser.RULE_read_one_expression = 155; EParser.RULE_order_by_list = 156; EParser.RULE_order_by = 157; EParser.RULE_operator = 158; EParser.RULE_keyword = 159; EParser.RULE_new_token = 160; EParser.RULE_key_token = 161; EParser.RULE_module_token = 162; EParser.RULE_value_token = 163; EParser.RULE_symbols_token = 164; EParser.RULE_assign = 165; EParser.RULE_multiply = 166; EParser.RULE_divide = 167; EParser.RULE_idivide = 168; EParser.RULE_modulo = 169; EParser.RULE_javascript_statement = 170; EParser.RULE_javascript_expression = 171; EParser.RULE_javascript_primary_expression = 172; EParser.RULE_javascript_this_expression = 173; EParser.RULE_javascript_new_expression = 174; EParser.RULE_javascript_selector_expression = 175; EParser.RULE_javascript_method_expression = 176; EParser.RULE_javascript_arguments = 177; EParser.RULE_javascript_item_expression = 178; EParser.RULE_javascript_parenthesis_expression = 179; EParser.RULE_javascript_identifier_expression = 180; EParser.RULE_javascript_literal_expression = 181; EParser.RULE_javascript_identifier = 182; EParser.RULE_python_statement = 183; EParser.RULE_python_expression = 184; EParser.RULE_python_primary_expression = 185; EParser.RULE_python_self_expression = 186; EParser.RULE_python_selector_expression = 187; EParser.RULE_python_method_expression = 188; EParser.RULE_python_argument_list = 189; EParser.RULE_python_ordinal_argument_list = 190; EParser.RULE_python_named_argument_list = 191; EParser.RULE_python_parenthesis_expression = 192; EParser.RULE_python_identifier_expression = 193; EParser.RULE_python_literal_expression = 194; EParser.RULE_python_identifier = 195; EParser.RULE_java_statement = 196; EParser.RULE_java_expression = 197; EParser.RULE_java_primary_expression = 198; EParser.RULE_java_this_expression = 199; EParser.RULE_java_new_expression = 200; EParser.RULE_java_selector_expression = 201; EParser.RULE_java_method_expression = 202; EParser.RULE_java_arguments = 203; EParser.RULE_java_item_expression = 204; EParser.RULE_java_parenthesis_expression = 205; EParser.RULE_java_identifier_expression = 206; EParser.RULE_java_class_identifier_expression = 207; EParser.RULE_java_literal_expression = 208; EParser.RULE_java_identifier = 209; EParser.RULE_csharp_statement = 210; EParser.RULE_csharp_expression = 211; EParser.RULE_csharp_primary_expression = 212; EParser.RULE_csharp_this_expression = 213; EParser.RULE_csharp_new_expression = 214; EParser.RULE_csharp_selector_expression = 215; EParser.RULE_csharp_method_expression = 216; EParser.RULE_csharp_arguments = 217; EParser.RULE_csharp_item_expression = 218; EParser.RULE_csharp_parenthesis_expression = 219; EParser.RULE_csharp_identifier_expression = 220; EParser.RULE_csharp_literal_expression = 221; EParser.RULE_csharp_identifier = 222; EParser.RULE_jsx_expression = 223; EParser.RULE_jsx_element = 224; EParser.RULE_jsx_fragment = 225; EParser.RULE_jsx_fragment_start = 226; EParser.RULE_jsx_fragment_end = 227; EParser.RULE_jsx_self_closing = 228; EParser.RULE_jsx_opening = 229; EParser.RULE_jsx_closing = 230; EParser.RULE_jsx_element_name = 231; EParser.RULE_jsx_identifier = 232; EParser.RULE_jsx_attribute = 233; EParser.RULE_jsx_attribute_value = 234; EParser.RULE_jsx_children = 235; EParser.RULE_jsx_child = 236; EParser.RULE_jsx_text = 237; EParser.RULE_css_expression = 238; EParser.RULE_css_field = 239; EParser.RULE_css_identifier = 240; EParser.RULE_css_value = 241; EParser.RULE_css_text = 242; function Enum_category_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_enum_category_declaration; this.name = null; // Type_identifierContext this.derived = null; // Type_identifierContext this.attrs = null; // Attribute_listContext this.symbols = null; // Category_symbol_listContext return this; } Enum_category_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Enum_category_declarationContext.prototype.constructor = Enum_category_declarationContext; Enum_category_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Enum_category_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Enum_category_declarationContext.prototype.ENUMERATED = function() { return this.getToken(EParser.ENUMERATED, 0); }; Enum_category_declarationContext.prototype.symbols_token = function() { return this.getTypedRuleContext(Symbols_tokenContext,0); }; Enum_category_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Enum_category_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Enum_category_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Enum_category_declarationContext.prototype.type_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Type_identifierContext); } else { return this.getTypedRuleContext(Type_identifierContext,i); } }; Enum_category_declarationContext.prototype.category_symbol_list = function() { return this.getTypedRuleContext(Category_symbol_listContext,0); }; Enum_category_declarationContext.prototype.CATEGORY = function() { return this.getToken(EParser.CATEGORY, 0); }; Enum_category_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Enum_category_declarationContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; Enum_category_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Enum_category_declarationContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Enum_category_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterEnum_category_declaration(this); } }; Enum_category_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitEnum_category_declaration(this); } }; EParser.Enum_category_declarationContext = Enum_category_declarationContext; EParser.prototype.enum_category_declaration = function() { var localctx = new Enum_category_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 0, EParser.RULE_enum_category_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 486; this.match(EParser.DEFINE); this.state = 487; localctx.name = this.type_identifier(); this.state = 488; this.match(EParser.AS); this.state = 489; this.match(EParser.ENUMERATED); this.state = 492; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.CATEGORY: this.state = 490; this.match(EParser.CATEGORY); break; case EParser.TYPE_IDENTIFIER: this.state = 491; localctx.derived = this.type_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 499; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,1,this._ctx); switch(la_) { case 1: this.state = 494; localctx.attrs = this.attribute_list(); this.state = 495; this.match(EParser.COMMA); this.state = 496; this.match(EParser.AND); break; case 2: this.state = 498; this.match(EParser.WITH); break; } this.state = 501; this.symbols_token(); this.state = 502; this.match(EParser.COLON); this.state = 503; this.indent(); this.state = 504; localctx.symbols = this.category_symbol_list(); this.state = 505; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Enum_native_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_enum_native_declaration; this.name = null; // Type_identifierContext this.typ = null; // Native_typeContext this.symbols = null; // Native_symbol_listContext return this; } Enum_native_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Enum_native_declarationContext.prototype.constructor = Enum_native_declarationContext; Enum_native_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Enum_native_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Enum_native_declarationContext.prototype.ENUMERATED = function() { return this.getToken(EParser.ENUMERATED, 0); }; Enum_native_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Enum_native_declarationContext.prototype.symbols_token = function() { return this.getTypedRuleContext(Symbols_tokenContext,0); }; Enum_native_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Enum_native_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Enum_native_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Enum_native_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Enum_native_declarationContext.prototype.native_type = function() { return this.getTypedRuleContext(Native_typeContext,0); }; Enum_native_declarationContext.prototype.native_symbol_list = function() { return this.getTypedRuleContext(Native_symbol_listContext,0); }; Enum_native_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterEnum_native_declaration(this); } }; Enum_native_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitEnum_native_declaration(this); } }; EParser.Enum_native_declarationContext = Enum_native_declarationContext; EParser.prototype.enum_native_declaration = function() { var localctx = new Enum_native_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 2, EParser.RULE_enum_native_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 507; this.match(EParser.DEFINE); this.state = 508; localctx.name = this.type_identifier(); this.state = 509; this.match(EParser.AS); this.state = 510; this.match(EParser.ENUMERATED); this.state = 511; localctx.typ = this.native_type(); this.state = 512; this.match(EParser.WITH); this.state = 513; this.symbols_token(); this.state = 514; this.match(EParser.COLON); this.state = 515; this.indent(); this.state = 516; localctx.symbols = this.native_symbol_list(); this.state = 517; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_symbolContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_symbol; this.name = null; // Symbol_identifierContext this.exp = null; // ExpressionContext return this; } Native_symbolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_symbolContext.prototype.constructor = Native_symbolContext; Native_symbolContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Native_symbolContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_symbolContext.prototype.value_token = function() { return this.getTypedRuleContext(Value_tokenContext,0); }; Native_symbolContext.prototype.symbol_identifier = function() { return this.getTypedRuleContext(Symbol_identifierContext,0); }; Native_symbolContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Native_symbolContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_symbol(this); } }; Native_symbolContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_symbol(this); } }; EParser.Native_symbolContext = Native_symbolContext; EParser.prototype.native_symbol = function() { var localctx = new Native_symbolContext(this, this._ctx, this.state); this.enterRule(localctx, 4, EParser.RULE_native_symbol); try { this.enterOuterAlt(localctx, 1); this.state = 519; localctx.name = this.symbol_identifier(); this.state = 520; this.match(EParser.WITH); this.state = 521; localctx.exp = this.expression(0); this.state = 522; this.match(EParser.AS); this.state = 523; this.value_token(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Category_symbolContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_category_symbol; this.name = null; // Symbol_identifierContext this.args = null; // With_argument_assignment_listContext this.arg = null; // Argument_assignmentContext return this; } Category_symbolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Category_symbolContext.prototype.constructor = Category_symbolContext; Category_symbolContext.prototype.symbol_identifier = function() { return this.getTypedRuleContext(Symbol_identifierContext,0); }; Category_symbolContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; Category_symbolContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Category_symbolContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; Category_symbolContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCategory_symbol(this); } }; Category_symbolContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCategory_symbol(this); } }; EParser.Category_symbolContext = Category_symbolContext; EParser.prototype.category_symbol = function() { var localctx = new Category_symbolContext(this, this._ctx, this.state); this.enterRule(localctx, 6, EParser.RULE_category_symbol); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 525; localctx.name = this.symbol_identifier(); this.state = 526; localctx.args = this.with_argument_assignment_list(0); this.state = 529; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.AND) { this.state = 527; this.match(EParser.AND); this.state = 528; localctx.arg = this.argument_assignment(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Attribute_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_attribute_declaration; this.name = null; // Attribute_identifierContext this.typ = null; // TypedefContext this.match = null; // Attribute_constraintContext this.indices = null; // Variable_identifier_listContext this.index = null; // Variable_identifierContext return this; } Attribute_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Attribute_declarationContext.prototype.constructor = Attribute_declarationContext; Attribute_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Attribute_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Attribute_declarationContext.prototype.ATTRIBUTE = function() { return this.getToken(EParser.ATTRIBUTE, 0); }; Attribute_declarationContext.prototype.attribute_identifier = function() { return this.getTypedRuleContext(Attribute_identifierContext,0); }; Attribute_declarationContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; Attribute_declarationContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; Attribute_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Attribute_declarationContext.prototype.INDEX = function() { return this.getToken(EParser.INDEX, 0); }; Attribute_declarationContext.prototype.attribute_constraint = function() { return this.getTypedRuleContext(Attribute_constraintContext,0); }; Attribute_declarationContext.prototype.variable_identifier_list = function() { return this.getTypedRuleContext(Variable_identifier_listContext,0); }; Attribute_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Attribute_declarationContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Attribute_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAttribute_declaration(this); } }; Attribute_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAttribute_declaration(this); } }; EParser.Attribute_declarationContext = Attribute_declarationContext; EParser.prototype.attribute_declaration = function() { var localctx = new Attribute_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 8, EParser.RULE_attribute_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 531; this.match(EParser.DEFINE); this.state = 532; localctx.name = this.attribute_identifier(); this.state = 533; this.match(EParser.AS); this.state = 535; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.STORABLE) { this.state = 534; this.match(EParser.STORABLE); } this.state = 537; localctx.typ = this.typedef(0); this.state = 538; this.match(EParser.ATTRIBUTE); this.state = 540; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.IN || _la===EParser.MATCHING) { this.state = 539; localctx.match = this.attribute_constraint(); } this.state = 551; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.WITH) { this.state = 542; this.match(EParser.WITH); this.state = 548; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.VARIABLE_IDENTIFIER) { this.state = 543; localctx.indices = this.variable_identifier_list(); this.state = 546; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.AND) { this.state = 544; this.match(EParser.AND); this.state = 545; localctx.index = this.variable_identifier(); } } this.state = 550; this.match(EParser.INDEX); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Concrete_widget_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_concrete_widget_declaration; this.name = null; // Type_identifierContext this.derived = null; // Type_identifierContext this.methods = null; // Member_method_declaration_listContext return this; } Concrete_widget_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Concrete_widget_declarationContext.prototype.constructor = Concrete_widget_declarationContext; Concrete_widget_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Concrete_widget_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Concrete_widget_declarationContext.prototype.type_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Type_identifierContext); } else { return this.getTypedRuleContext(Type_identifierContext,i); } }; Concrete_widget_declarationContext.prototype.WIDGET = function() { return this.getToken(EParser.WIDGET, 0); }; Concrete_widget_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Concrete_widget_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Concrete_widget_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Concrete_widget_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Concrete_widget_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Concrete_widget_declarationContext.prototype.member_method_declaration_list = function() { return this.getTypedRuleContext(Member_method_declaration_listContext,0); }; Concrete_widget_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConcrete_widget_declaration(this); } }; Concrete_widget_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConcrete_widget_declaration(this); } }; EParser.Concrete_widget_declarationContext = Concrete_widget_declarationContext; EParser.prototype.concrete_widget_declaration = function() { var localctx = new Concrete_widget_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 10, EParser.RULE_concrete_widget_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 553; this.match(EParser.DEFINE); this.state = 554; localctx.name = this.type_identifier(); this.state = 555; this.match(EParser.AS); this.state = 558; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.WIDGET: this.state = 556; this.match(EParser.WIDGET); break; case EParser.TYPE_IDENTIFIER: this.state = 557; localctx.derived = this.type_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 567; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.WITH) { this.state = 560; this.match(EParser.WITH); this.state = 561; this.match(EParser.METHODS); this.state = 562; this.match(EParser.COLON); this.state = 563; this.indent(); this.state = 564; localctx.methods = this.member_method_declaration_list(); this.state = 565; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_widget_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_widget_declaration; this.name = null; // Type_identifierContext this.bindings = null; // Native_category_bindingsContext this.methods = null; // Native_member_method_declaration_listContext return this; } Native_widget_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_widget_declarationContext.prototype.constructor = Native_widget_declarationContext; Native_widget_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_widget_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_widget_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_widget_declarationContext.prototype.WIDGET = function() { return this.getToken(EParser.WIDGET, 0); }; Native_widget_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Native_widget_declarationContext.prototype.BINDINGS = function() { return this.getToken(EParser.BINDINGS, 0); }; Native_widget_declarationContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Native_widget_declarationContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Native_widget_declarationContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Native_widget_declarationContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Native_widget_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Native_widget_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Native_widget_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Native_widget_declarationContext.prototype.native_category_bindings = function() { return this.getTypedRuleContext(Native_category_bindingsContext,0); }; Native_widget_declarationContext.prototype.native_member_method_declaration_list = function() { return this.getTypedRuleContext(Native_member_method_declaration_listContext,0); }; Native_widget_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_widget_declaration(this); } }; Native_widget_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_widget_declaration(this); } }; EParser.Native_widget_declarationContext = Native_widget_declarationContext; EParser.prototype.native_widget_declaration = function() { var localctx = new Native_widget_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 12, EParser.RULE_native_widget_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 569; this.match(EParser.DEFINE); this.state = 570; localctx.name = this.type_identifier(); this.state = 571; this.match(EParser.AS); this.state = 572; this.match(EParser.NATIVE); this.state = 573; this.match(EParser.WIDGET); this.state = 574; this.match(EParser.WITH); this.state = 575; this.match(EParser.BINDINGS); this.state = 576; this.match(EParser.COLON); this.state = 577; this.indent(); this.state = 578; localctx.bindings = this.native_category_bindings(); this.state = 579; this.dedent(); this.state = 580; this.lfp(); this.state = 581; this.match(EParser.AND); this.state = 582; this.match(EParser.METHODS); this.state = 583; this.match(EParser.COLON); this.state = 584; this.indent(); this.state = 585; localctx.methods = this.native_member_method_declaration_list(); this.state = 586; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Concrete_category_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_concrete_category_declaration; this.name = null; // Type_identifierContext this.derived = null; // Derived_listContext this.attrs = null; // Attribute_listContext this.methods = null; // Member_method_declaration_listContext return this; } Concrete_category_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Concrete_category_declarationContext.prototype.constructor = Concrete_category_declarationContext; Concrete_category_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Concrete_category_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Concrete_category_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Concrete_category_declarationContext.prototype.CATEGORY = function() { return this.getToken(EParser.CATEGORY, 0); }; Concrete_category_declarationContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; Concrete_category_declarationContext.prototype.derived_list = function() { return this.getTypedRuleContext(Derived_listContext,0); }; Concrete_category_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Concrete_category_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Concrete_category_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Concrete_category_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Concrete_category_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Concrete_category_declarationContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Concrete_category_declarationContext.prototype.member_method_declaration_list = function() { return this.getTypedRuleContext(Member_method_declaration_listContext,0); }; Concrete_category_declarationContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; Concrete_category_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Concrete_category_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConcrete_category_declaration(this); } }; Concrete_category_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConcrete_category_declaration(this); } }; EParser.Concrete_category_declarationContext = Concrete_category_declarationContext; EParser.prototype.concrete_category_declaration = function() { var localctx = new Concrete_category_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 14, EParser.RULE_concrete_category_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 588; this.match(EParser.DEFINE); this.state = 589; localctx.name = this.type_identifier(); this.state = 590; this.match(EParser.AS); this.state = 592; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.STORABLE) { this.state = 591; this.match(EParser.STORABLE); } this.state = 596; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.CATEGORY: this.state = 594; this.match(EParser.CATEGORY); break; case EParser.TYPE_IDENTIFIER: this.state = 595; localctx.derived = this.derived_list(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 616; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); if(la_===1) { this.state = 598; localctx.attrs = this.attribute_list(); this.state = 607; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.COMMA) { this.state = 599; this.match(EParser.COMMA); this.state = 600; this.match(EParser.AND); this.state = 601; this.match(EParser.METHODS); this.state = 602; this.match(EParser.COLON); this.state = 603; this.indent(); this.state = 604; localctx.methods = this.member_method_declaration_list(); this.state = 605; this.dedent(); } } else if(la_===2) { this.state = 609; this.match(EParser.WITH); this.state = 610; this.match(EParser.METHODS); this.state = 611; this.match(EParser.COLON); this.state = 612; this.indent(); this.state = 613; localctx.methods = this.member_method_declaration_list(); this.state = 614; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Singleton_category_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_singleton_category_declaration; this.name = null; // Type_identifierContext this.attrs = null; // Attribute_listContext this.methods = null; // Member_method_declaration_listContext return this; } Singleton_category_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Singleton_category_declarationContext.prototype.constructor = Singleton_category_declarationContext; Singleton_category_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Singleton_category_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Singleton_category_declarationContext.prototype.SINGLETON = function() { return this.getToken(EParser.SINGLETON, 0); }; Singleton_category_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Singleton_category_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Singleton_category_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Singleton_category_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Singleton_category_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Singleton_category_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Singleton_category_declarationContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Singleton_category_declarationContext.prototype.member_method_declaration_list = function() { return this.getTypedRuleContext(Member_method_declaration_listContext,0); }; Singleton_category_declarationContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; Singleton_category_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Singleton_category_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSingleton_category_declaration(this); } }; Singleton_category_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSingleton_category_declaration(this); } }; EParser.Singleton_category_declarationContext = Singleton_category_declarationContext; EParser.prototype.singleton_category_declaration = function() { var localctx = new Singleton_category_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 16, EParser.RULE_singleton_category_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 618; this.match(EParser.DEFINE); this.state = 619; localctx.name = this.type_identifier(); this.state = 620; this.match(EParser.AS); this.state = 621; this.match(EParser.SINGLETON); this.state = 640; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); if(la_===1) { this.state = 622; localctx.attrs = this.attribute_list(); this.state = 631; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.COMMA) { this.state = 623; this.match(EParser.COMMA); this.state = 624; this.match(EParser.AND); this.state = 625; this.match(EParser.METHODS); this.state = 626; this.match(EParser.COLON); this.state = 627; this.indent(); this.state = 628; localctx.methods = this.member_method_declaration_list(); this.state = 629; this.dedent(); } } else if(la_===2) { this.state = 633; this.match(EParser.WITH); this.state = 634; this.match(EParser.METHODS); this.state = 635; this.match(EParser.COLON); this.state = 636; this.indent(); this.state = 637; localctx.methods = this.member_method_declaration_list(); this.state = 638; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Derived_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_derived_list; return this; } Derived_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Derived_listContext.prototype.constructor = Derived_listContext; Derived_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function DerivedListItemContext(parser, ctx) { Derived_listContext.call(this, parser); this.items = null; // Type_identifier_listContext; this.item = null; // Type_identifierContext; Derived_listContext.prototype.copyFrom.call(this, ctx); return this; } DerivedListItemContext.prototype = Object.create(Derived_listContext.prototype); DerivedListItemContext.prototype.constructor = DerivedListItemContext; EParser.DerivedListItemContext = DerivedListItemContext; DerivedListItemContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; DerivedListItemContext.prototype.type_identifier_list = function() { return this.getTypedRuleContext(Type_identifier_listContext,0); }; DerivedListItemContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; DerivedListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDerivedListItem(this); } }; DerivedListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDerivedListItem(this); } }; function DerivedListContext(parser, ctx) { Derived_listContext.call(this, parser); this.items = null; // Type_identifier_listContext; Derived_listContext.prototype.copyFrom.call(this, ctx); return this; } DerivedListContext.prototype = Object.create(Derived_listContext.prototype); DerivedListContext.prototype.constructor = DerivedListContext; EParser.DerivedListContext = DerivedListContext; DerivedListContext.prototype.type_identifier_list = function() { return this.getTypedRuleContext(Type_identifier_listContext,0); }; DerivedListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDerivedList(this); } }; DerivedListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDerivedList(this); } }; EParser.Derived_listContext = Derived_listContext; EParser.prototype.derived_list = function() { var localctx = new Derived_listContext(this, this._ctx, this.state); this.enterRule(localctx, 18, EParser.RULE_derived_list); try { this.state = 647; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); switch(la_) { case 1: localctx = new DerivedListContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 642; localctx.items = this.type_identifier_list(); break; case 2: localctx = new DerivedListItemContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 643; localctx.items = this.type_identifier_list(); this.state = 644; this.match(EParser.AND); this.state = 645; localctx.item = this.type_identifier(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Operator_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_operator_method_declaration; this.op = null; // OperatorContext this.arg = null; // Operator_argumentContext this.typ = null; // TypedefContext this.stmts = null; // Statement_listContext return this; } Operator_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Operator_method_declarationContext.prototype.constructor = Operator_method_declarationContext; Operator_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Operator_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Operator_method_declarationContext.prototype.OPERATOR = function() { return this.getToken(EParser.OPERATOR, 0); }; Operator_method_declarationContext.prototype.RECEIVING = function() { return this.getToken(EParser.RECEIVING, 0); }; Operator_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Operator_method_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Operator_method_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Operator_method_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Operator_method_declarationContext.prototype.operator = function() { return this.getTypedRuleContext(OperatorContext,0); }; Operator_method_declarationContext.prototype.operator_argument = function() { return this.getTypedRuleContext(Operator_argumentContext,0); }; Operator_method_declarationContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Operator_method_declarationContext.prototype.RETURNING = function() { return this.getToken(EParser.RETURNING, 0); }; Operator_method_declarationContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; Operator_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperator_method_declaration(this); } }; Operator_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperator_method_declaration(this); } }; EParser.Operator_method_declarationContext = Operator_method_declarationContext; EParser.prototype.operator_method_declaration = function() { var localctx = new Operator_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 20, EParser.RULE_operator_method_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 649; this.match(EParser.DEFINE); this.state = 650; localctx.op = this.operator(); this.state = 651; this.match(EParser.AS); this.state = 652; this.match(EParser.OPERATOR); this.state = 653; this.match(EParser.RECEIVING); this.state = 654; localctx.arg = this.operator_argument(); this.state = 657; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RETURNING) { this.state = 655; this.match(EParser.RETURNING); this.state = 656; localctx.typ = this.typedef(0); } this.state = 659; this.match(EParser.DOING); this.state = 660; this.match(EParser.COLON); this.state = 661; this.indent(); this.state = 662; localctx.stmts = this.statement_list(); this.state = 663; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Setter_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_setter_method_declaration; this.name = null; // Variable_identifierContext this.stmts = null; // Statement_listContext return this; } Setter_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Setter_method_declarationContext.prototype.constructor = Setter_method_declarationContext; Setter_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Setter_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Setter_method_declarationContext.prototype.SETTER = function() { return this.getToken(EParser.SETTER, 0); }; Setter_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Setter_method_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Setter_method_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Setter_method_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Setter_method_declarationContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Setter_method_declarationContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Setter_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSetter_method_declaration(this); } }; Setter_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSetter_method_declaration(this); } }; EParser.Setter_method_declarationContext = Setter_method_declarationContext; EParser.prototype.setter_method_declaration = function() { var localctx = new Setter_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 22, EParser.RULE_setter_method_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 665; this.match(EParser.DEFINE); this.state = 666; localctx.name = this.variable_identifier(); this.state = 667; this.match(EParser.AS); this.state = 668; this.match(EParser.SETTER); this.state = 669; this.match(EParser.DOING); this.state = 670; this.match(EParser.COLON); this.state = 671; this.indent(); this.state = 672; localctx.stmts = this.statement_list(); this.state = 673; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_setter_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_setter_declaration; this.name = null; // Variable_identifierContext this.stmts = null; // Native_statement_listContext return this; } Native_setter_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_setter_declarationContext.prototype.constructor = Native_setter_declarationContext; Native_setter_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_setter_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_setter_declarationContext.prototype.SETTER = function() { return this.getToken(EParser.SETTER, 0); }; Native_setter_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Native_setter_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Native_setter_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Native_setter_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Native_setter_declarationContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Native_setter_declarationContext.prototype.native_statement_list = function() { return this.getTypedRuleContext(Native_statement_listContext,0); }; Native_setter_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_setter_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_setter_declaration(this); } }; Native_setter_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_setter_declaration(this); } }; EParser.Native_setter_declarationContext = Native_setter_declarationContext; EParser.prototype.native_setter_declaration = function() { var localctx = new Native_setter_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 24, EParser.RULE_native_setter_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 675; this.match(EParser.DEFINE); this.state = 676; localctx.name = this.variable_identifier(); this.state = 677; this.match(EParser.AS); this.state = 679; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.NATIVE) { this.state = 678; this.match(EParser.NATIVE); } this.state = 681; this.match(EParser.SETTER); this.state = 682; this.match(EParser.DOING); this.state = 683; this.match(EParser.COLON); this.state = 684; this.indent(); this.state = 685; localctx.stmts = this.native_statement_list(); this.state = 686; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Getter_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_getter_method_declaration; this.name = null; // Variable_identifierContext this.stmts = null; // Statement_listContext return this; } Getter_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Getter_method_declarationContext.prototype.constructor = Getter_method_declarationContext; Getter_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Getter_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Getter_method_declarationContext.prototype.GETTER = function() { return this.getToken(EParser.GETTER, 0); }; Getter_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Getter_method_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Getter_method_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Getter_method_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Getter_method_declarationContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Getter_method_declarationContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Getter_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterGetter_method_declaration(this); } }; Getter_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitGetter_method_declaration(this); } }; EParser.Getter_method_declarationContext = Getter_method_declarationContext; EParser.prototype.getter_method_declaration = function() { var localctx = new Getter_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 26, EParser.RULE_getter_method_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 688; this.match(EParser.DEFINE); this.state = 689; localctx.name = this.variable_identifier(); this.state = 690; this.match(EParser.AS); this.state = 691; this.match(EParser.GETTER); this.state = 692; this.match(EParser.DOING); this.state = 693; this.match(EParser.COLON); this.state = 694; this.indent(); this.state = 695; localctx.stmts = this.statement_list(); this.state = 696; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_getter_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_getter_declaration; this.name = null; // Variable_identifierContext this.stmts = null; // Native_statement_listContext return this; } Native_getter_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_getter_declarationContext.prototype.constructor = Native_getter_declarationContext; Native_getter_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_getter_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_getter_declarationContext.prototype.GETTER = function() { return this.getToken(EParser.GETTER, 0); }; Native_getter_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Native_getter_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Native_getter_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Native_getter_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Native_getter_declarationContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Native_getter_declarationContext.prototype.native_statement_list = function() { return this.getTypedRuleContext(Native_statement_listContext,0); }; Native_getter_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_getter_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_getter_declaration(this); } }; Native_getter_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_getter_declaration(this); } }; EParser.Native_getter_declarationContext = Native_getter_declarationContext; EParser.prototype.native_getter_declaration = function() { var localctx = new Native_getter_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 28, EParser.RULE_native_getter_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 698; this.match(EParser.DEFINE); this.state = 699; localctx.name = this.variable_identifier(); this.state = 700; this.match(EParser.AS); this.state = 702; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.NATIVE) { this.state = 701; this.match(EParser.NATIVE); } this.state = 704; this.match(EParser.GETTER); this.state = 705; this.match(EParser.DOING); this.state = 706; this.match(EParser.COLON); this.state = 707; this.indent(); this.state = 708; localctx.stmts = this.native_statement_list(); this.state = 709; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_category_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_category_declaration; this.name = null; // Type_identifierContext this.attrs = null; // Attribute_listContext this.bindings = null; // Native_category_bindingsContext this.methods = null; // Native_member_method_declaration_listContext return this; } Native_category_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_category_declarationContext.prototype.constructor = Native_category_declarationContext; Native_category_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_category_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_category_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_category_declarationContext.prototype.CATEGORY = function() { return this.getToken(EParser.CATEGORY, 0); }; Native_category_declarationContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Native_category_declarationContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Native_category_declarationContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Native_category_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Native_category_declarationContext.prototype.native_category_bindings = function() { return this.getTypedRuleContext(Native_category_bindingsContext,0); }; Native_category_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Native_category_declarationContext.prototype.BINDINGS = function() { return this.getToken(EParser.BINDINGS, 0); }; Native_category_declarationContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; Native_category_declarationContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Native_category_declarationContext.prototype.AND = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.AND); } else { return this.getToken(EParser.AND, i); } }; Native_category_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Native_category_declarationContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; Native_category_declarationContext.prototype.native_member_method_declaration_list = function() { return this.getTypedRuleContext(Native_member_method_declaration_listContext,0); }; Native_category_declarationContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Native_category_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_category_declaration(this); } }; Native_category_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_category_declaration(this); } }; EParser.Native_category_declarationContext = Native_category_declarationContext; EParser.prototype.native_category_declaration = function() { var localctx = new Native_category_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 30, EParser.RULE_native_category_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 711; this.match(EParser.DEFINE); this.state = 712; localctx.name = this.type_identifier(); this.state = 713; this.match(EParser.AS); this.state = 715; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.STORABLE) { this.state = 714; this.match(EParser.STORABLE); } this.state = 717; this.match(EParser.NATIVE); this.state = 718; this.match(EParser.CATEGORY); this.state = 726; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); switch(la_) { case 1: this.state = 719; localctx.attrs = this.attribute_list(); this.state = 720; this.match(EParser.COMMA); this.state = 721; this.match(EParser.AND); this.state = 722; this.match(EParser.BINDINGS); break; case 2: this.state = 724; this.match(EParser.WITH); this.state = 725; this.match(EParser.BINDINGS); break; } this.state = 728; this.match(EParser.COLON); this.state = 729; this.indent(); this.state = 730; localctx.bindings = this.native_category_bindings(); this.state = 731; this.dedent(); this.state = 740; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,22,this._ctx); if(la_===1) { this.state = 732; this.lfp(); this.state = 733; this.match(EParser.AND); this.state = 734; this.match(EParser.METHODS); this.state = 735; this.match(EParser.COLON); this.state = 736; this.indent(); this.state = 737; localctx.methods = this.native_member_method_declaration_list(); this.state = 738; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_resource_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_resource_declaration; this.name = null; // Type_identifierContext this.attrs = null; // Attribute_listContext this.bindings = null; // Native_category_bindingsContext this.methods = null; // Native_member_method_declaration_listContext return this; } Native_resource_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_resource_declarationContext.prototype.constructor = Native_resource_declarationContext; Native_resource_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_resource_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_resource_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_resource_declarationContext.prototype.RESOURCE = function() { return this.getToken(EParser.RESOURCE, 0); }; Native_resource_declarationContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Native_resource_declarationContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Native_resource_declarationContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Native_resource_declarationContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Native_resource_declarationContext.prototype.native_category_bindings = function() { return this.getTypedRuleContext(Native_category_bindingsContext,0); }; Native_resource_declarationContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Native_resource_declarationContext.prototype.BINDINGS = function() { return this.getToken(EParser.BINDINGS, 0); }; Native_resource_declarationContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; Native_resource_declarationContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Native_resource_declarationContext.prototype.AND = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.AND); } else { return this.getToken(EParser.AND, i); } }; Native_resource_declarationContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; Native_resource_declarationContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; Native_resource_declarationContext.prototype.native_member_method_declaration_list = function() { return this.getTypedRuleContext(Native_member_method_declaration_listContext,0); }; Native_resource_declarationContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Native_resource_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_resource_declaration(this); } }; Native_resource_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_resource_declaration(this); } }; EParser.Native_resource_declarationContext = Native_resource_declarationContext; EParser.prototype.native_resource_declaration = function() { var localctx = new Native_resource_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 32, EParser.RULE_native_resource_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 742; this.match(EParser.DEFINE); this.state = 743; localctx.name = this.type_identifier(); this.state = 744; this.match(EParser.AS); this.state = 746; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.STORABLE) { this.state = 745; this.match(EParser.STORABLE); } this.state = 748; this.match(EParser.NATIVE); this.state = 749; this.match(EParser.RESOURCE); this.state = 757; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,24,this._ctx); switch(la_) { case 1: this.state = 750; localctx.attrs = this.attribute_list(); this.state = 751; this.match(EParser.COMMA); this.state = 752; this.match(EParser.AND); this.state = 753; this.match(EParser.BINDINGS); break; case 2: this.state = 755; this.match(EParser.WITH); this.state = 756; this.match(EParser.BINDINGS); break; } this.state = 759; this.match(EParser.COLON); this.state = 760; this.indent(); this.state = 761; localctx.bindings = this.native_category_bindings(); this.state = 762; this.dedent(); this.state = 771; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,25,this._ctx); if(la_===1) { this.state = 763; this.lfp(); this.state = 764; this.match(EParser.AND); this.state = 765; this.match(EParser.METHODS); this.state = 766; this.match(EParser.COLON); this.state = 767; this.indent(); this.state = 768; localctx.methods = this.native_member_method_declaration_list(); this.state = 769; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_category_bindingsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_category_bindings; this.items = null; // Native_category_binding_listContext return this; } Native_category_bindingsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_category_bindingsContext.prototype.constructor = Native_category_bindingsContext; Native_category_bindingsContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_category_bindingsContext.prototype.CATEGORY = function() { return this.getToken(EParser.CATEGORY, 0); }; Native_category_bindingsContext.prototype.BINDINGS = function() { return this.getToken(EParser.BINDINGS, 0); }; Native_category_bindingsContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_category_bindingsContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Native_category_bindingsContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Native_category_bindingsContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Native_category_bindingsContext.prototype.native_category_binding_list = function() { return this.getTypedRuleContext(Native_category_binding_listContext,0); }; Native_category_bindingsContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_category_bindings(this); } }; Native_category_bindingsContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_category_bindings(this); } }; EParser.Native_category_bindingsContext = Native_category_bindingsContext; EParser.prototype.native_category_bindings = function() { var localctx = new Native_category_bindingsContext(this, this._ctx, this.state); this.enterRule(localctx, 34, EParser.RULE_native_category_bindings); try { this.enterOuterAlt(localctx, 1); this.state = 773; this.match(EParser.DEFINE); this.state = 774; this.match(EParser.CATEGORY); this.state = 775; this.match(EParser.BINDINGS); this.state = 776; this.match(EParser.AS); this.state = 777; this.match(EParser.COLON); this.state = 778; this.indent(); this.state = 779; localctx.items = this.native_category_binding_list(0); this.state = 780; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_category_binding_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_category_binding_list; return this; } Native_category_binding_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_category_binding_listContext.prototype.constructor = Native_category_binding_listContext; Native_category_binding_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function NativeCategoryBindingListItemContext(parser, ctx) { Native_category_binding_listContext.call(this, parser); this.items = null; // Native_category_binding_listContext; this.item = null; // Native_category_bindingContext; Native_category_binding_listContext.prototype.copyFrom.call(this, ctx); return this; } NativeCategoryBindingListItemContext.prototype = Object.create(Native_category_binding_listContext.prototype); NativeCategoryBindingListItemContext.prototype.constructor = NativeCategoryBindingListItemContext; EParser.NativeCategoryBindingListItemContext = NativeCategoryBindingListItemContext; NativeCategoryBindingListItemContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; NativeCategoryBindingListItemContext.prototype.native_category_binding_list = function() { return this.getTypedRuleContext(Native_category_binding_listContext,0); }; NativeCategoryBindingListItemContext.prototype.native_category_binding = function() { return this.getTypedRuleContext(Native_category_bindingContext,0); }; NativeCategoryBindingListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNativeCategoryBindingListItem(this); } }; NativeCategoryBindingListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNativeCategoryBindingListItem(this); } }; function NativeCategoryBindingListContext(parser, ctx) { Native_category_binding_listContext.call(this, parser); this.item = null; // Native_category_bindingContext; Native_category_binding_listContext.prototype.copyFrom.call(this, ctx); return this; } NativeCategoryBindingListContext.prototype = Object.create(Native_category_binding_listContext.prototype); NativeCategoryBindingListContext.prototype.constructor = NativeCategoryBindingListContext; EParser.NativeCategoryBindingListContext = NativeCategoryBindingListContext; NativeCategoryBindingListContext.prototype.native_category_binding = function() { return this.getTypedRuleContext(Native_category_bindingContext,0); }; NativeCategoryBindingListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNativeCategoryBindingList(this); } }; NativeCategoryBindingListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNativeCategoryBindingList(this); } }; EParser.prototype.native_category_binding_list = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Native_category_binding_listContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 36; this.enterRecursionRule(localctx, 36, EParser.RULE_native_category_binding_list, _p); try { this.enterOuterAlt(localctx, 1); localctx = new NativeCategoryBindingListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 783; localctx.item = this.native_category_binding(); this._ctx.stop = this._input.LT(-1); this.state = 791; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,26,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new NativeCategoryBindingListItemContext(this, new Native_category_binding_listContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_native_category_binding_list); this.state = 785; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 786; this.lfp(); this.state = 787; localctx.item = this.native_category_binding(); } this.state = 793; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,26,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Attribute_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_attribute_list; return this; } Attribute_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Attribute_listContext.prototype.constructor = Attribute_listContext; Attribute_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function AttributeListContext(parser, ctx) { Attribute_listContext.call(this, parser); this.item = null; // Attribute_identifierContext; Attribute_listContext.prototype.copyFrom.call(this, ctx); return this; } AttributeListContext.prototype = Object.create(Attribute_listContext.prototype); AttributeListContext.prototype.constructor = AttributeListContext; EParser.AttributeListContext = AttributeListContext; AttributeListContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; AttributeListContext.prototype.ATTRIBUTE = function() { return this.getToken(EParser.ATTRIBUTE, 0); }; AttributeListContext.prototype.attribute_identifier = function() { return this.getTypedRuleContext(Attribute_identifierContext,0); }; AttributeListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAttributeList(this); } }; AttributeListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAttributeList(this); } }; function AttributeListItemContext(parser, ctx) { Attribute_listContext.call(this, parser); this.items = null; // Attribute_identifier_listContext; this.item = null; // Attribute_identifierContext; Attribute_listContext.prototype.copyFrom.call(this, ctx); return this; } AttributeListItemContext.prototype = Object.create(Attribute_listContext.prototype); AttributeListItemContext.prototype.constructor = AttributeListItemContext; EParser.AttributeListItemContext = AttributeListItemContext; AttributeListItemContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; AttributeListItemContext.prototype.ATTRIBUTES = function() { return this.getToken(EParser.ATTRIBUTES, 0); }; AttributeListItemContext.prototype.attribute_identifier_list = function() { return this.getTypedRuleContext(Attribute_identifier_listContext,0); }; AttributeListItemContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; AttributeListItemContext.prototype.attribute_identifier = function() { return this.getTypedRuleContext(Attribute_identifierContext,0); }; AttributeListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAttributeListItem(this); } }; AttributeListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAttributeListItem(this); } }; EParser.Attribute_listContext = Attribute_listContext; EParser.prototype.attribute_list = function() { var localctx = new Attribute_listContext(this, this._ctx, this.state); this.enterRule(localctx, 38, EParser.RULE_attribute_list); try { this.state = 804; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,28,this._ctx); switch(la_) { case 1: localctx = new AttributeListContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 794; this.match(EParser.WITH); this.state = 795; this.match(EParser.ATTRIBUTE); this.state = 796; localctx.item = this.attribute_identifier(); break; case 2: localctx = new AttributeListItemContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 797; this.match(EParser.WITH); this.state = 798; this.match(EParser.ATTRIBUTES); this.state = 799; localctx.items = this.attribute_identifier_list(); this.state = 802; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,27,this._ctx); if(la_===1) { this.state = 800; this.match(EParser.AND); this.state = 801; localctx.item = this.attribute_identifier(); } break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Abstract_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_abstract_method_declaration; this.name = null; // Method_identifierContext this.args = null; // Full_argument_listContext this.typ = null; // TypedefContext return this; } Abstract_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Abstract_method_declarationContext.prototype.constructor = Abstract_method_declarationContext; Abstract_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Abstract_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Abstract_method_declarationContext.prototype.ABSTRACT = function() { return this.getToken(EParser.ABSTRACT, 0); }; Abstract_method_declarationContext.prototype.METHOD = function() { return this.getToken(EParser.METHOD, 0); }; Abstract_method_declarationContext.prototype.method_identifier = function() { return this.getTypedRuleContext(Method_identifierContext,0); }; Abstract_method_declarationContext.prototype.RECEIVING = function() { return this.getToken(EParser.RECEIVING, 0); }; Abstract_method_declarationContext.prototype.RETURNING = function() { return this.getToken(EParser.RETURNING, 0); }; Abstract_method_declarationContext.prototype.full_argument_list = function() { return this.getTypedRuleContext(Full_argument_listContext,0); }; Abstract_method_declarationContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; Abstract_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAbstract_method_declaration(this); } }; Abstract_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAbstract_method_declaration(this); } }; EParser.Abstract_method_declarationContext = Abstract_method_declarationContext; EParser.prototype.abstract_method_declaration = function() { var localctx = new Abstract_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 40, EParser.RULE_abstract_method_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 806; this.match(EParser.DEFINE); this.state = 807; localctx.name = this.method_identifier(); this.state = 808; this.match(EParser.AS); this.state = 809; this.match(EParser.ABSTRACT); this.state = 810; this.match(EParser.METHOD); this.state = 813; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RECEIVING) { this.state = 811; this.match(EParser.RECEIVING); this.state = 812; localctx.args = this.full_argument_list(); } this.state = 817; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RETURNING) { this.state = 815; this.match(EParser.RETURNING); this.state = 816; localctx.typ = this.typedef(0); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Concrete_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_concrete_method_declaration; this.name = null; // Method_identifierContext this.args = null; // Full_argument_listContext this.typ = null; // TypedefContext this.stmts = null; // Statement_listContext return this; } Concrete_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Concrete_method_declarationContext.prototype.constructor = Concrete_method_declarationContext; Concrete_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Concrete_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Concrete_method_declarationContext.prototype.METHOD = function() { return this.getToken(EParser.METHOD, 0); }; Concrete_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Concrete_method_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Concrete_method_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Concrete_method_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Concrete_method_declarationContext.prototype.method_identifier = function() { return this.getTypedRuleContext(Method_identifierContext,0); }; Concrete_method_declarationContext.prototype.PASS = function() { return this.getToken(EParser.PASS, 0); }; Concrete_method_declarationContext.prototype.RECEIVING = function() { return this.getToken(EParser.RECEIVING, 0); }; Concrete_method_declarationContext.prototype.RETURNING = function() { return this.getToken(EParser.RETURNING, 0); }; Concrete_method_declarationContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Concrete_method_declarationContext.prototype.full_argument_list = function() { return this.getTypedRuleContext(Full_argument_listContext,0); }; Concrete_method_declarationContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; Concrete_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConcrete_method_declaration(this); } }; Concrete_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConcrete_method_declaration(this); } }; EParser.Concrete_method_declarationContext = Concrete_method_declarationContext; EParser.prototype.concrete_method_declaration = function() { var localctx = new Concrete_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 42, EParser.RULE_concrete_method_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 819; this.match(EParser.DEFINE); this.state = 820; localctx.name = this.method_identifier(); this.state = 821; this.match(EParser.AS); this.state = 822; this.match(EParser.METHOD); this.state = 825; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RECEIVING) { this.state = 823; this.match(EParser.RECEIVING); this.state = 824; localctx.args = this.full_argument_list(); } this.state = 829; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RETURNING) { this.state = 827; this.match(EParser.RETURNING); this.state = 828; localctx.typ = this.typedef(0); } this.state = 831; this.match(EParser.DOING); this.state = 832; this.match(EParser.COLON); this.state = 833; this.indent(); this.state = 836; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.COMMENT: case EParser.BREAK: case EParser.DEFINE: case EParser.DELETE: case EParser.DO: case EParser.FETCH: case EParser.FLUSH: case EParser.FOR: case EParser.IF: case EParser.INVOKE: case EParser.RAISE: case EParser.RETURN: case EParser.STORE: case EParser.SWITCH: case EParser.WITH: case EParser.WHILE: case EParser.WRITE: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: this.state = 834; localctx.stmts = this.statement_list(); break; case EParser.PASS: this.state = 835; this.match(EParser.PASS); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 838; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_method_declaration; this.name = null; // Method_identifierContext this.args = null; // Full_argument_listContext this.typ = null; // Category_or_any_typeContext this.stmts = null; // Native_statement_listContext return this; } Native_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_method_declarationContext.prototype.constructor = Native_method_declarationContext; Native_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Native_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Native_method_declarationContext.prototype.METHOD = function() { return this.getToken(EParser.METHOD, 0); }; Native_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Native_method_declarationContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Native_method_declarationContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Native_method_declarationContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Native_method_declarationContext.prototype.method_identifier = function() { return this.getTypedRuleContext(Method_identifierContext,0); }; Native_method_declarationContext.prototype.native_statement_list = function() { return this.getTypedRuleContext(Native_statement_listContext,0); }; Native_method_declarationContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; Native_method_declarationContext.prototype.RECEIVING = function() { return this.getToken(EParser.RECEIVING, 0); }; Native_method_declarationContext.prototype.RETURNING = function() { return this.getToken(EParser.RETURNING, 0); }; Native_method_declarationContext.prototype.full_argument_list = function() { return this.getTypedRuleContext(Full_argument_listContext,0); }; Native_method_declarationContext.prototype.category_or_any_type = function() { return this.getTypedRuleContext(Category_or_any_typeContext,0); }; Native_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_method_declaration(this); } }; Native_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_method_declaration(this); } }; EParser.Native_method_declarationContext = Native_method_declarationContext; EParser.prototype.native_method_declaration = function() { var localctx = new Native_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 44, EParser.RULE_native_method_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 840; this.match(EParser.DEFINE); this.state = 841; localctx.name = this.method_identifier(); this.state = 842; this.match(EParser.AS); this.state = 844; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.NATIVE) { this.state = 843; this.match(EParser.NATIVE); } this.state = 846; this.match(EParser.METHOD); this.state = 849; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RECEIVING) { this.state = 847; this.match(EParser.RECEIVING); this.state = 848; localctx.args = this.full_argument_list(); } this.state = 853; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.RETURNING) { this.state = 851; this.match(EParser.RETURNING); this.state = 852; localctx.typ = this.category_or_any_type(); } this.state = 855; this.match(EParser.DOING); this.state = 856; this.match(EParser.COLON); this.state = 857; this.indent(); this.state = 858; localctx.stmts = this.native_statement_list(); this.state = 859; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Test_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_test_method_declaration; this.name = null; // Token this.stmts = null; // Statement_listContext this.exps = null; // Assertion_listContext this.error = null; // Symbol_identifierContext return this; } Test_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Test_method_declarationContext.prototype.constructor = Test_method_declarationContext; Test_method_declarationContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; Test_method_declarationContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Test_method_declarationContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; Test_method_declarationContext.prototype.METHOD = function() { return this.getToken(EParser.METHOD, 0); }; Test_method_declarationContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Test_method_declarationContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Test_method_declarationContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Test_method_declarationContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Test_method_declarationContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Test_method_declarationContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Test_method_declarationContext.prototype.VERIFYING = function() { return this.getToken(EParser.VERIFYING, 0); }; Test_method_declarationContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; Test_method_declarationContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Test_method_declarationContext.prototype.symbol_identifier = function() { return this.getTypedRuleContext(Symbol_identifierContext,0); }; Test_method_declarationContext.prototype.assertion_list = function() { return this.getTypedRuleContext(Assertion_listContext,0); }; Test_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTest_method_declaration(this); } }; Test_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTest_method_declaration(this); } }; EParser.Test_method_declarationContext = Test_method_declarationContext; EParser.prototype.test_method_declaration = function() { var localctx = new Test_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 46, EParser.RULE_test_method_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 861; this.match(EParser.DEFINE); this.state = 862; localctx.name = this.match(EParser.TEXT_LITERAL); this.state = 863; this.match(EParser.AS); this.state = 864; this.match(EParser.TEST); this.state = 865; this.match(EParser.METHOD); this.state = 866; this.match(EParser.DOING); this.state = 867; this.match(EParser.COLON); this.state = 868; this.indent(); this.state = 869; localctx.stmts = this.statement_list(); this.state = 870; this.dedent(); this.state = 871; this.lfp(); this.state = 872; this.match(EParser.AND); this.state = 873; this.match(EParser.VERIFYING); this.state = 880; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.COLON: this.state = 874; this.match(EParser.COLON); this.state = 875; this.indent(); this.state = 876; localctx.exps = this.assertion_list(); this.state = 877; this.dedent(); break; case EParser.SYMBOL_IDENTIFIER: this.state = 879; localctx.error = this.symbol_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function AssertionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assertion; this.exp = null; // ExpressionContext return this; } AssertionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); AssertionContext.prototype.constructor = AssertionContext; AssertionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; AssertionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssertion(this); } }; AssertionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssertion(this); } }; EParser.AssertionContext = AssertionContext; EParser.prototype.assertion = function() { var localctx = new AssertionContext(this, this._ctx, this.state); this.enterRule(localctx, 48, EParser.RULE_assertion); try { this.enterOuterAlt(localctx, 1); this.state = 882; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Full_argument_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_full_argument_list; this.items = null; // Argument_listContext this.item = null; // ArgumentContext return this; } Full_argument_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Full_argument_listContext.prototype.constructor = Full_argument_listContext; Full_argument_listContext.prototype.argument_list = function() { return this.getTypedRuleContext(Argument_listContext,0); }; Full_argument_listContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Full_argument_listContext.prototype.argument = function() { return this.getTypedRuleContext(ArgumentContext,0); }; Full_argument_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFull_argument_list(this); } }; Full_argument_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFull_argument_list(this); } }; EParser.Full_argument_listContext = Full_argument_listContext; EParser.prototype.full_argument_list = function() { var localctx = new Full_argument_listContext(this, this._ctx, this.state); this.enterRule(localctx, 50, EParser.RULE_full_argument_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 884; localctx.items = this.argument_list(); this.state = 887; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.AND) { this.state = 885; this.match(EParser.AND); this.state = 886; localctx.item = this.argument(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Typed_argumentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_typed_argument; this.typ = null; // Category_or_any_typeContext this.name = null; // Variable_identifierContext this.attrs = null; // Attribute_listContext this.value = null; // Literal_expressionContext return this; } Typed_argumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Typed_argumentContext.prototype.constructor = Typed_argumentContext; Typed_argumentContext.prototype.category_or_any_type = function() { return this.getTypedRuleContext(Category_or_any_typeContext,0); }; Typed_argumentContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Typed_argumentContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; Typed_argumentContext.prototype.attribute_list = function() { return this.getTypedRuleContext(Attribute_listContext,0); }; Typed_argumentContext.prototype.literal_expression = function() { return this.getTypedRuleContext(Literal_expressionContext,0); }; Typed_argumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTyped_argument(this); } }; Typed_argumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTyped_argument(this); } }; EParser.Typed_argumentContext = Typed_argumentContext; EParser.prototype.typed_argument = function() { var localctx = new Typed_argumentContext(this, this._ctx, this.state); this.enterRule(localctx, 52, EParser.RULE_typed_argument); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 889; localctx.typ = this.category_or_any_type(); this.state = 890; localctx.name = this.variable_identifier(); this.state = 892; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.WITH) { this.state = 891; localctx.attrs = this.attribute_list(); } this.state = 896; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.EQ) { this.state = 894; this.match(EParser.EQ); this.state = 895; localctx.value = this.literal_expression(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function StatementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_statement; return this; } StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); StatementContext.prototype.constructor = StatementContext; StatementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CommentStatementContext(parser, ctx) { StatementContext.call(this, parser); this.decl = null; // Comment_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } CommentStatementContext.prototype = Object.create(StatementContext.prototype); CommentStatementContext.prototype.constructor = CommentStatementContext; EParser.CommentStatementContext = CommentStatementContext; CommentStatementContext.prototype.comment_statement = function() { return this.getTypedRuleContext(Comment_statementContext,0); }; CommentStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCommentStatement(this); } }; CommentStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCommentStatement(this); } }; function StoreStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Store_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } StoreStatementContext.prototype = Object.create(StatementContext.prototype); StoreStatementContext.prototype.constructor = StoreStatementContext; EParser.StoreStatementContext = StoreStatementContext; StoreStatementContext.prototype.store_statement = function() { return this.getTypedRuleContext(Store_statementContext,0); }; StoreStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterStoreStatement(this); } }; StoreStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitStoreStatement(this); } }; function WithSingletonStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // With_singleton_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } WithSingletonStatementContext.prototype = Object.create(StatementContext.prototype); WithSingletonStatementContext.prototype.constructor = WithSingletonStatementContext; EParser.WithSingletonStatementContext = WithSingletonStatementContext; WithSingletonStatementContext.prototype.with_singleton_statement = function() { return this.getTypedRuleContext(With_singleton_statementContext,0); }; WithSingletonStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWithSingletonStatement(this); } }; WithSingletonStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWithSingletonStatement(this); } }; function WriteStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Write_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } WriteStatementContext.prototype = Object.create(StatementContext.prototype); WriteStatementContext.prototype.constructor = WriteStatementContext; EParser.WriteStatementContext = WriteStatementContext; WriteStatementContext.prototype.write_statement = function() { return this.getTypedRuleContext(Write_statementContext,0); }; WriteStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWriteStatement(this); } }; WriteStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWriteStatement(this); } }; function WhileStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // While_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } WhileStatementContext.prototype = Object.create(StatementContext.prototype); WhileStatementContext.prototype.constructor = WhileStatementContext; EParser.WhileStatementContext = WhileStatementContext; WhileStatementContext.prototype.while_statement = function() { return this.getTypedRuleContext(While_statementContext,0); }; WhileStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWhileStatement(this); } }; WhileStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWhileStatement(this); } }; function WithResourceStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // With_resource_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } WithResourceStatementContext.prototype = Object.create(StatementContext.prototype); WithResourceStatementContext.prototype.constructor = WithResourceStatementContext; EParser.WithResourceStatementContext = WithResourceStatementContext; WithResourceStatementContext.prototype.with_resource_statement = function() { return this.getTypedRuleContext(With_resource_statementContext,0); }; WithResourceStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWithResourceStatement(this); } }; WithResourceStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWithResourceStatement(this); } }; function RaiseStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Raise_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } RaiseStatementContext.prototype = Object.create(StatementContext.prototype); RaiseStatementContext.prototype.constructor = RaiseStatementContext; EParser.RaiseStatementContext = RaiseStatementContext; RaiseStatementContext.prototype.raise_statement = function() { return this.getTypedRuleContext(Raise_statementContext,0); }; RaiseStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRaiseStatement(this); } }; RaiseStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRaiseStatement(this); } }; function FetchStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Fetch_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } FetchStatementContext.prototype = Object.create(StatementContext.prototype); FetchStatementContext.prototype.constructor = FetchStatementContext; EParser.FetchStatementContext = FetchStatementContext; FetchStatementContext.prototype.fetch_statement = function() { return this.getTypedRuleContext(Fetch_statementContext,0); }; FetchStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchStatement(this); } }; FetchStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchStatement(this); } }; function BreakStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Break_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } BreakStatementContext.prototype = Object.create(StatementContext.prototype); BreakStatementContext.prototype.constructor = BreakStatementContext; EParser.BreakStatementContext = BreakStatementContext; BreakStatementContext.prototype.break_statement = function() { return this.getTypedRuleContext(Break_statementContext,0); }; BreakStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBreakStatement(this); } }; BreakStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBreakStatement(this); } }; function AssignInstanceStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Assign_instance_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } AssignInstanceStatementContext.prototype = Object.create(StatementContext.prototype); AssignInstanceStatementContext.prototype.constructor = AssignInstanceStatementContext; EParser.AssignInstanceStatementContext = AssignInstanceStatementContext; AssignInstanceStatementContext.prototype.assign_instance_statement = function() { return this.getTypedRuleContext(Assign_instance_statementContext,0); }; AssignInstanceStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssignInstanceStatement(this); } }; AssignInstanceStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssignInstanceStatement(this); } }; function IfStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // If_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } IfStatementContext.prototype = Object.create(StatementContext.prototype); IfStatementContext.prototype.constructor = IfStatementContext; EParser.IfStatementContext = IfStatementContext; IfStatementContext.prototype.if_statement = function() { return this.getTypedRuleContext(If_statementContext,0); }; IfStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIfStatement(this); } }; IfStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIfStatement(this); } }; function SwitchStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Switch_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } SwitchStatementContext.prototype = Object.create(StatementContext.prototype); SwitchStatementContext.prototype.constructor = SwitchStatementContext; EParser.SwitchStatementContext = SwitchStatementContext; SwitchStatementContext.prototype.switch_statement = function() { return this.getTypedRuleContext(Switch_statementContext,0); }; SwitchStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSwitchStatement(this); } }; SwitchStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSwitchStatement(this); } }; function TryStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Try_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } TryStatementContext.prototype = Object.create(StatementContext.prototype); TryStatementContext.prototype.constructor = TryStatementContext; EParser.TryStatementContext = TryStatementContext; TryStatementContext.prototype.try_statement = function() { return this.getTypedRuleContext(Try_statementContext,0); }; TryStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTryStatement(this); } }; TryStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTryStatement(this); } }; function MethodCallStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Method_call_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } MethodCallStatementContext.prototype = Object.create(StatementContext.prototype); MethodCallStatementContext.prototype.constructor = MethodCallStatementContext; EParser.MethodCallStatementContext = MethodCallStatementContext; MethodCallStatementContext.prototype.method_call_statement = function() { return this.getTypedRuleContext(Method_call_statementContext,0); }; MethodCallStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMethodCallStatement(this); } }; MethodCallStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMethodCallStatement(this); } }; function ReturnStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Return_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } ReturnStatementContext.prototype = Object.create(StatementContext.prototype); ReturnStatementContext.prototype.constructor = ReturnStatementContext; EParser.ReturnStatementContext = ReturnStatementContext; ReturnStatementContext.prototype.return_statement = function() { return this.getTypedRuleContext(Return_statementContext,0); }; ReturnStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterReturnStatement(this); } }; ReturnStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitReturnStatement(this); } }; function AssignTupleStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Assign_tuple_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } AssignTupleStatementContext.prototype = Object.create(StatementContext.prototype); AssignTupleStatementContext.prototype.constructor = AssignTupleStatementContext; EParser.AssignTupleStatementContext = AssignTupleStatementContext; AssignTupleStatementContext.prototype.assign_tuple_statement = function() { return this.getTypedRuleContext(Assign_tuple_statementContext,0); }; AssignTupleStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssignTupleStatement(this); } }; AssignTupleStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssignTupleStatement(this); } }; function ClosureStatementContext(parser, ctx) { StatementContext.call(this, parser); this.decl = null; // Concrete_method_declarationContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } ClosureStatementContext.prototype = Object.create(StatementContext.prototype); ClosureStatementContext.prototype.constructor = ClosureStatementContext; EParser.ClosureStatementContext = ClosureStatementContext; ClosureStatementContext.prototype.concrete_method_declaration = function() { return this.getTypedRuleContext(Concrete_method_declarationContext,0); }; ClosureStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterClosureStatement(this); } }; ClosureStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitClosureStatement(this); } }; function FlushStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Flush_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } FlushStatementContext.prototype = Object.create(StatementContext.prototype); FlushStatementContext.prototype.constructor = FlushStatementContext; EParser.FlushStatementContext = FlushStatementContext; FlushStatementContext.prototype.flush_statement = function() { return this.getTypedRuleContext(Flush_statementContext,0); }; FlushStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFlushStatement(this); } }; FlushStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFlushStatement(this); } }; function DoWhileStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // Do_while_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } DoWhileStatementContext.prototype = Object.create(StatementContext.prototype); DoWhileStatementContext.prototype.constructor = DoWhileStatementContext; EParser.DoWhileStatementContext = DoWhileStatementContext; DoWhileStatementContext.prototype.do_while_statement = function() { return this.getTypedRuleContext(Do_while_statementContext,0); }; DoWhileStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDoWhileStatement(this); } }; DoWhileStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDoWhileStatement(this); } }; function ForEachStatementContext(parser, ctx) { StatementContext.call(this, parser); this.stmt = null; // For_each_statementContext; StatementContext.prototype.copyFrom.call(this, ctx); return this; } ForEachStatementContext.prototype = Object.create(StatementContext.prototype); ForEachStatementContext.prototype.constructor = ForEachStatementContext; EParser.ForEachStatementContext = ForEachStatementContext; ForEachStatementContext.prototype.for_each_statement = function() { return this.getTypedRuleContext(For_each_statementContext,0); }; ForEachStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterForEachStatement(this); } }; ForEachStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitForEachStatement(this); } }; EParser.StatementContext = StatementContext; EParser.prototype.statement = function() { var localctx = new StatementContext(this, this._ctx, this.state); this.enterRule(localctx, 54, EParser.RULE_statement); try { this.state = 918; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,41,this._ctx); switch(la_) { case 1: localctx = new AssignInstanceStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 898; localctx.stmt = this.assign_instance_statement(); break; case 2: localctx = new MethodCallStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 899; localctx.stmt = this.method_call_statement(); break; case 3: localctx = new AssignTupleStatementContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 900; localctx.stmt = this.assign_tuple_statement(); break; case 4: localctx = new StoreStatementContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 901; localctx.stmt = this.store_statement(); break; case 5: localctx = new FetchStatementContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 902; localctx.stmt = this.fetch_statement(); break; case 6: localctx = new FlushStatementContext(this, localctx); this.enterOuterAlt(localctx, 6); this.state = 903; localctx.stmt = this.flush_statement(); break; case 7: localctx = new BreakStatementContext(this, localctx); this.enterOuterAlt(localctx, 7); this.state = 904; localctx.stmt = this.break_statement(); break; case 8: localctx = new ReturnStatementContext(this, localctx); this.enterOuterAlt(localctx, 8); this.state = 905; localctx.stmt = this.return_statement(); break; case 9: localctx = new IfStatementContext(this, localctx); this.enterOuterAlt(localctx, 9); this.state = 906; localctx.stmt = this.if_statement(); break; case 10: localctx = new SwitchStatementContext(this, localctx); this.enterOuterAlt(localctx, 10); this.state = 907; localctx.stmt = this.switch_statement(); break; case 11: localctx = new ForEachStatementContext(this, localctx); this.enterOuterAlt(localctx, 11); this.state = 908; localctx.stmt = this.for_each_statement(); break; case 12: localctx = new WhileStatementContext(this, localctx); this.enterOuterAlt(localctx, 12); this.state = 909; localctx.stmt = this.while_statement(); break; case 13: localctx = new DoWhileStatementContext(this, localctx); this.enterOuterAlt(localctx, 13); this.state = 910; localctx.stmt = this.do_while_statement(); break; case 14: localctx = new RaiseStatementContext(this, localctx); this.enterOuterAlt(localctx, 14); this.state = 911; localctx.stmt = this.raise_statement(); break; case 15: localctx = new TryStatementContext(this, localctx); this.enterOuterAlt(localctx, 15); this.state = 912; localctx.stmt = this.try_statement(); break; case 16: localctx = new WriteStatementContext(this, localctx); this.enterOuterAlt(localctx, 16); this.state = 913; localctx.stmt = this.write_statement(); break; case 17: localctx = new WithResourceStatementContext(this, localctx); this.enterOuterAlt(localctx, 17); this.state = 914; localctx.stmt = this.with_resource_statement(); break; case 18: localctx = new WithSingletonStatementContext(this, localctx); this.enterOuterAlt(localctx, 18); this.state = 915; localctx.stmt = this.with_singleton_statement(); break; case 19: localctx = new ClosureStatementContext(this, localctx); this.enterOuterAlt(localctx, 19); this.state = 916; localctx.decl = this.concrete_method_declaration(); break; case 20: localctx = new CommentStatementContext(this, localctx); this.enterOuterAlt(localctx, 20); this.state = 917; localctx.decl = this.comment_statement(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Flush_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_flush_statement; return this; } Flush_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Flush_statementContext.prototype.constructor = Flush_statementContext; Flush_statementContext.prototype.FLUSH = function() { return this.getToken(EParser.FLUSH, 0); }; Flush_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFlush_statement(this); } }; Flush_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFlush_statement(this); } }; EParser.Flush_statementContext = Flush_statementContext; EParser.prototype.flush_statement = function() { var localctx = new Flush_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 56, EParser.RULE_flush_statement); try { this.enterOuterAlt(localctx, 1); this.state = 920; this.match(EParser.FLUSH); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Store_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_store_statement; this.to_del = null; // Expression_listContext this.to_add = null; // Expression_listContext this.stmts = null; // Statement_listContext return this; } Store_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Store_statementContext.prototype.constructor = Store_statementContext; Store_statementContext.prototype.DELETE = function() { return this.getToken(EParser.DELETE, 0); }; Store_statementContext.prototype.STORE = function() { return this.getToken(EParser.STORE, 0); }; Store_statementContext.prototype.expression_list = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Expression_listContext); } else { return this.getTypedRuleContext(Expression_listContext,i); } }; Store_statementContext.prototype.THEN = function() { return this.getToken(EParser.THEN, 0); }; Store_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Store_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Store_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Store_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Store_statementContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; Store_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterStore_statement(this); } }; Store_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitStore_statement(this); } }; EParser.Store_statementContext = Store_statementContext; EParser.prototype.store_statement = function() { var localctx = new Store_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 58, EParser.RULE_store_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 931; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DELETE: this.state = 922; this.match(EParser.DELETE); this.state = 923; localctx.to_del = this.expression_list(); this.state = 927; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.AND) { this.state = 924; this.match(EParser.AND); this.state = 925; this.match(EParser.STORE); this.state = 926; localctx.to_add = this.expression_list(); } break; case EParser.STORE: this.state = 929; this.match(EParser.STORE); this.state = 930; localctx.to_add = this.expression_list(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 939; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.THEN) { this.state = 933; this.match(EParser.THEN); this.state = 934; this.match(EParser.COLON); this.state = 935; this.indent(); this.state = 936; localctx.stmts = this.statement_list(); this.state = 937; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Method_call_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_method_call_statement; return this; } Method_call_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Method_call_statementContext.prototype.constructor = Method_call_statementContext; Method_call_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function InvokeStatementContext(parser, ctx) { Method_call_statementContext.call(this, parser); this.exp = null; // Invocation_expressionContext; Method_call_statementContext.prototype.copyFrom.call(this, ctx); return this; } InvokeStatementContext.prototype = Object.create(Method_call_statementContext.prototype); InvokeStatementContext.prototype.constructor = InvokeStatementContext; EParser.InvokeStatementContext = InvokeStatementContext; InvokeStatementContext.prototype.invocation_expression = function() { return this.getTypedRuleContext(Invocation_expressionContext,0); }; InvokeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInvokeStatement(this); } }; InvokeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInvokeStatement(this); } }; function UnresolvedWithArgsStatementContext(parser, ctx) { Method_call_statementContext.call(this, parser); this.exp = null; // Unresolved_expressionContext; this.args = null; // Argument_assignment_listContext; this.name = null; // Variable_identifierContext; this.stmts = null; // Statement_listContext; Method_call_statementContext.prototype.copyFrom.call(this, ctx); return this; } UnresolvedWithArgsStatementContext.prototype = Object.create(Method_call_statementContext.prototype); UnresolvedWithArgsStatementContext.prototype.constructor = UnresolvedWithArgsStatementContext; EParser.UnresolvedWithArgsStatementContext = UnresolvedWithArgsStatementContext; UnresolvedWithArgsStatementContext.prototype.unresolved_expression = function() { return this.getTypedRuleContext(Unresolved_expressionContext,0); }; UnresolvedWithArgsStatementContext.prototype.THEN = function() { return this.getToken(EParser.THEN, 0); }; UnresolvedWithArgsStatementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; UnresolvedWithArgsStatementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; UnresolvedWithArgsStatementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; UnresolvedWithArgsStatementContext.prototype.argument_assignment_list = function() { return this.getTypedRuleContext(Argument_assignment_listContext,0); }; UnresolvedWithArgsStatementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; UnresolvedWithArgsStatementContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; UnresolvedWithArgsStatementContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; UnresolvedWithArgsStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUnresolvedWithArgsStatement(this); } }; UnresolvedWithArgsStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUnresolvedWithArgsStatement(this); } }; EParser.Method_call_statementContext = Method_call_statementContext; EParser.prototype.method_call_statement = function() { var localctx = new Method_call_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 60, EParser.RULE_method_call_statement); var _la = 0; // Token type try { this.state = 958; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: localctx = new UnresolvedWithArgsStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 941; localctx.exp = this.unresolved_expression(0); this.state = 943; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); if(la_===1) { this.state = 942; localctx.args = this.argument_assignment_list(); } this.state = 955; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.THEN) { this.state = 945; this.match(EParser.THEN); this.state = 948; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.WITH) { this.state = 946; this.match(EParser.WITH); this.state = 947; localctx.name = this.variable_identifier(); } this.state = 950; this.match(EParser.COLON); this.state = 951; this.indent(); this.state = 952; localctx.stmts = this.statement_list(); this.state = 953; this.dedent(); } break; case EParser.INVOKE: localctx = new InvokeStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 957; localctx.exp = this.invocation_expression(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function With_resource_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_with_resource_statement; this.stmt = null; // Assign_variable_statementContext this.stmts = null; // Statement_listContext return this; } With_resource_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); With_resource_statementContext.prototype.constructor = With_resource_statementContext; With_resource_statementContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; With_resource_statementContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; With_resource_statementContext.prototype.DO = function() { return this.getToken(EParser.DO, 0); }; With_resource_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; With_resource_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; With_resource_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; With_resource_statementContext.prototype.assign_variable_statement = function() { return this.getTypedRuleContext(Assign_variable_statementContext,0); }; With_resource_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; With_resource_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWith_resource_statement(this); } }; With_resource_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWith_resource_statement(this); } }; EParser.With_resource_statementContext = With_resource_statementContext; EParser.prototype.with_resource_statement = function() { var localctx = new With_resource_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 62, EParser.RULE_with_resource_statement); try { this.enterOuterAlt(localctx, 1); this.state = 960; this.match(EParser.WITH); this.state = 961; localctx.stmt = this.assign_variable_statement(); this.state = 962; this.match(EParser.COMMA); this.state = 963; this.match(EParser.DO); this.state = 964; this.match(EParser.COLON); this.state = 965; this.indent(); this.state = 966; localctx.stmts = this.statement_list(); this.state = 967; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function With_singleton_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_with_singleton_statement; this.typ = null; // Type_identifierContext this.stmts = null; // Statement_listContext return this; } With_singleton_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); With_singleton_statementContext.prototype.constructor = With_singleton_statementContext; With_singleton_statementContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; With_singleton_statementContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; With_singleton_statementContext.prototype.DO = function() { return this.getToken(EParser.DO, 0); }; With_singleton_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; With_singleton_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; With_singleton_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; With_singleton_statementContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; With_singleton_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; With_singleton_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWith_singleton_statement(this); } }; With_singleton_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWith_singleton_statement(this); } }; EParser.With_singleton_statementContext = With_singleton_statementContext; EParser.prototype.with_singleton_statement = function() { var localctx = new With_singleton_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 64, EParser.RULE_with_singleton_statement); try { this.enterOuterAlt(localctx, 1); this.state = 969; this.match(EParser.WITH); this.state = 970; localctx.typ = this.type_identifier(); this.state = 971; this.match(EParser.COMMA); this.state = 972; this.match(EParser.DO); this.state = 973; this.match(EParser.COLON); this.state = 974; this.indent(); this.state = 975; localctx.stmts = this.statement_list(); this.state = 976; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Switch_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_switch_statement; this.exp = null; // ExpressionContext this.cases = null; // Switch_case_statement_listContext this.stmts = null; // Statement_listContext return this; } Switch_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Switch_statementContext.prototype.constructor = Switch_statementContext; Switch_statementContext.prototype.SWITCH = function() { return this.getToken(EParser.SWITCH, 0); }; Switch_statementContext.prototype.ON = function() { return this.getToken(EParser.ON, 0); }; Switch_statementContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Switch_statementContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Switch_statementContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Switch_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Switch_statementContext.prototype.switch_case_statement_list = function() { return this.getTypedRuleContext(Switch_case_statement_listContext,0); }; Switch_statementContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Switch_statementContext.prototype.OTHERWISE = function() { return this.getToken(EParser.OTHERWISE, 0); }; Switch_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Switch_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSwitch_statement(this); } }; Switch_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSwitch_statement(this); } }; EParser.Switch_statementContext = Switch_statementContext; EParser.prototype.switch_statement = function() { var localctx = new Switch_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 66, EParser.RULE_switch_statement); try { this.enterOuterAlt(localctx, 1); this.state = 978; this.match(EParser.SWITCH); this.state = 979; this.match(EParser.ON); this.state = 980; localctx.exp = this.expression(0); this.state = 981; this.match(EParser.COLON); this.state = 982; this.indent(); this.state = 983; localctx.cases = this.switch_case_statement_list(); this.state = 991; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,49,this._ctx); if(la_===1) { this.state = 984; this.lfp(); this.state = 985; this.match(EParser.OTHERWISE); this.state = 986; this.match(EParser.COLON); this.state = 987; this.indent(); this.state = 988; localctx.stmts = this.statement_list(); this.state = 989; this.dedent(); } this.state = 993; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Switch_case_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_switch_case_statement; return this; } Switch_case_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Switch_case_statementContext.prototype.constructor = Switch_case_statementContext; Switch_case_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function AtomicSwitchCaseContext(parser, ctx) { Switch_case_statementContext.call(this, parser); this.exp = null; // Atomic_literalContext; this.stmts = null; // Statement_listContext; Switch_case_statementContext.prototype.copyFrom.call(this, ctx); return this; } AtomicSwitchCaseContext.prototype = Object.create(Switch_case_statementContext.prototype); AtomicSwitchCaseContext.prototype.constructor = AtomicSwitchCaseContext; EParser.AtomicSwitchCaseContext = AtomicSwitchCaseContext; AtomicSwitchCaseContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; AtomicSwitchCaseContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; AtomicSwitchCaseContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; AtomicSwitchCaseContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; AtomicSwitchCaseContext.prototype.atomic_literal = function() { return this.getTypedRuleContext(Atomic_literalContext,0); }; AtomicSwitchCaseContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; AtomicSwitchCaseContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAtomicSwitchCase(this); } }; AtomicSwitchCaseContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAtomicSwitchCase(this); } }; function CollectionSwitchCaseContext(parser, ctx) { Switch_case_statementContext.call(this, parser); this.exp = null; // Literal_collectionContext; this.stmts = null; // Statement_listContext; Switch_case_statementContext.prototype.copyFrom.call(this, ctx); return this; } CollectionSwitchCaseContext.prototype = Object.create(Switch_case_statementContext.prototype); CollectionSwitchCaseContext.prototype.constructor = CollectionSwitchCaseContext; EParser.CollectionSwitchCaseContext = CollectionSwitchCaseContext; CollectionSwitchCaseContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; CollectionSwitchCaseContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; CollectionSwitchCaseContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; CollectionSwitchCaseContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; CollectionSwitchCaseContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; CollectionSwitchCaseContext.prototype.literal_collection = function() { return this.getTypedRuleContext(Literal_collectionContext,0); }; CollectionSwitchCaseContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; CollectionSwitchCaseContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCollectionSwitchCase(this); } }; CollectionSwitchCaseContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCollectionSwitchCase(this); } }; EParser.Switch_case_statementContext = Switch_case_statementContext; EParser.prototype.switch_case_statement = function() { var localctx = new Switch_case_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 68, EParser.RULE_switch_case_statement); try { this.state = 1010; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,50,this._ctx); switch(la_) { case 1: localctx = new AtomicSwitchCaseContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 995; this.match(EParser.WHEN); this.state = 996; localctx.exp = this.atomic_literal(); this.state = 997; this.match(EParser.COLON); this.state = 998; this.indent(); this.state = 999; localctx.stmts = this.statement_list(); this.state = 1000; this.dedent(); break; case 2: localctx = new CollectionSwitchCaseContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1002; this.match(EParser.WHEN); this.state = 1003; this.match(EParser.IN); this.state = 1004; localctx.exp = this.literal_collection(); this.state = 1005; this.match(EParser.COLON); this.state = 1006; this.indent(); this.state = 1007; localctx.stmts = this.statement_list(); this.state = 1008; this.dedent(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function For_each_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_for_each_statement; this.name1 = null; // Variable_identifierContext this.name2 = null; // Variable_identifierContext this.source = null; // ExpressionContext this.stmts = null; // Statement_listContext return this; } For_each_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); For_each_statementContext.prototype.constructor = For_each_statementContext; For_each_statementContext.prototype.FOR = function() { return this.getToken(EParser.FOR, 0); }; For_each_statementContext.prototype.EACH = function() { return this.getToken(EParser.EACH, 0); }; For_each_statementContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; For_each_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; For_each_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; For_each_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; For_each_statementContext.prototype.variable_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Variable_identifierContext); } else { return this.getTypedRuleContext(Variable_identifierContext,i); } }; For_each_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; For_each_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; For_each_statementContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; For_each_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFor_each_statement(this); } }; For_each_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFor_each_statement(this); } }; EParser.For_each_statementContext = For_each_statementContext; EParser.prototype.for_each_statement = function() { var localctx = new For_each_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 70, EParser.RULE_for_each_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1012; this.match(EParser.FOR); this.state = 1013; this.match(EParser.EACH); this.state = 1014; localctx.name1 = this.variable_identifier(); this.state = 1017; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.COMMA) { this.state = 1015; this.match(EParser.COMMA); this.state = 1016; localctx.name2 = this.variable_identifier(); } this.state = 1019; this.match(EParser.IN); this.state = 1020; localctx.source = this.expression(0); this.state = 1021; this.match(EParser.COLON); this.state = 1022; this.indent(); this.state = 1023; localctx.stmts = this.statement_list(); this.state = 1024; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Do_while_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_do_while_statement; this.stmts = null; // Statement_listContext this.exp = null; // ExpressionContext return this; } Do_while_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Do_while_statementContext.prototype.constructor = Do_while_statementContext; Do_while_statementContext.prototype.DO = function() { return this.getToken(EParser.DO, 0); }; Do_while_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Do_while_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; Do_while_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; Do_while_statementContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; Do_while_statementContext.prototype.WHILE = function() { return this.getToken(EParser.WHILE, 0); }; Do_while_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; Do_while_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Do_while_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDo_while_statement(this); } }; Do_while_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDo_while_statement(this); } }; EParser.Do_while_statementContext = Do_while_statementContext; EParser.prototype.do_while_statement = function() { var localctx = new Do_while_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 72, EParser.RULE_do_while_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1026; this.match(EParser.DO); this.state = 1027; this.match(EParser.COLON); this.state = 1028; this.indent(); this.state = 1029; localctx.stmts = this.statement_list(); this.state = 1030; this.dedent(); this.state = 1031; this.lfp(); this.state = 1032; this.match(EParser.WHILE); this.state = 1033; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function While_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_while_statement; this.exp = null; // ExpressionContext this.stmts = null; // Statement_listContext return this; } While_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); While_statementContext.prototype.constructor = While_statementContext; While_statementContext.prototype.WHILE = function() { return this.getToken(EParser.WHILE, 0); }; While_statementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; While_statementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; While_statementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; While_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; While_statementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; While_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWhile_statement(this); } }; While_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWhile_statement(this); } }; EParser.While_statementContext = While_statementContext; EParser.prototype.while_statement = function() { var localctx = new While_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 74, EParser.RULE_while_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1035; this.match(EParser.WHILE); this.state = 1036; localctx.exp = this.expression(0); this.state = 1037; this.match(EParser.COLON); this.state = 1038; this.indent(); this.state = 1039; localctx.stmts = this.statement_list(); this.state = 1040; this.dedent(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function If_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_if_statement; this.exp = null; // ExpressionContext this.stmts = null; // Statement_listContext this.elseIfs = null; // Else_if_statement_listContext this.elseStmts = null; // Statement_listContext return this; } If_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); If_statementContext.prototype.constructor = If_statementContext; If_statementContext.prototype.IF = function() { return this.getToken(EParser.IF, 0); }; If_statementContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; If_statementContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; If_statementContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; If_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; If_statementContext.prototype.statement_list = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Statement_listContext); } else { return this.getTypedRuleContext(Statement_listContext,i); } }; If_statementContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; If_statementContext.prototype.ELSE = function() { return this.getToken(EParser.ELSE, 0); }; If_statementContext.prototype.else_if_statement_list = function() { return this.getTypedRuleContext(Else_if_statement_listContext,0); }; If_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIf_statement(this); } }; If_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIf_statement(this); } }; EParser.If_statementContext = If_statementContext; EParser.prototype.if_statement = function() { var localctx = new If_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 76, EParser.RULE_if_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1042; this.match(EParser.IF); this.state = 1043; localctx.exp = this.expression(0); this.state = 1044; this.match(EParser.COLON); this.state = 1045; this.indent(); this.state = 1046; localctx.stmts = this.statement_list(); this.state = 1047; this.dedent(); this.state = 1051; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,52,this._ctx); if(la_===1) { this.state = 1048; this.lfp(); this.state = 1049; localctx.elseIfs = this.else_if_statement_list(0); } this.state = 1060; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,53,this._ctx); if(la_===1) { this.state = 1053; this.lfp(); this.state = 1054; this.match(EParser.ELSE); this.state = 1055; this.match(EParser.COLON); this.state = 1056; this.indent(); this.state = 1057; localctx.elseStmts = this.statement_list(); this.state = 1058; this.dedent(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Else_if_statement_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_else_if_statement_list; return this; } Else_if_statement_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Else_if_statement_listContext.prototype.constructor = Else_if_statement_listContext; Else_if_statement_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ElseIfStatementListContext(parser, ctx) { Else_if_statement_listContext.call(this, parser); this.exp = null; // ExpressionContext; this.stmts = null; // Statement_listContext; Else_if_statement_listContext.prototype.copyFrom.call(this, ctx); return this; } ElseIfStatementListContext.prototype = Object.create(Else_if_statement_listContext.prototype); ElseIfStatementListContext.prototype.constructor = ElseIfStatementListContext; EParser.ElseIfStatementListContext = ElseIfStatementListContext; ElseIfStatementListContext.prototype.ELSE = function() { return this.getToken(EParser.ELSE, 0); }; ElseIfStatementListContext.prototype.IF = function() { return this.getToken(EParser.IF, 0); }; ElseIfStatementListContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; ElseIfStatementListContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; ElseIfStatementListContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; ElseIfStatementListContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ElseIfStatementListContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; ElseIfStatementListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterElseIfStatementList(this); } }; ElseIfStatementListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitElseIfStatementList(this); } }; function ElseIfStatementListItemContext(parser, ctx) { Else_if_statement_listContext.call(this, parser); this.items = null; // Else_if_statement_listContext; this.exp = null; // ExpressionContext; this.stmts = null; // Statement_listContext; Else_if_statement_listContext.prototype.copyFrom.call(this, ctx); return this; } ElseIfStatementListItemContext.prototype = Object.create(Else_if_statement_listContext.prototype); ElseIfStatementListItemContext.prototype.constructor = ElseIfStatementListItemContext; EParser.ElseIfStatementListItemContext = ElseIfStatementListItemContext; ElseIfStatementListItemContext.prototype.lfp = function() { return this.getTypedRuleContext(LfpContext,0); }; ElseIfStatementListItemContext.prototype.ELSE = function() { return this.getToken(EParser.ELSE, 0); }; ElseIfStatementListItemContext.prototype.IF = function() { return this.getToken(EParser.IF, 0); }; ElseIfStatementListItemContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; ElseIfStatementListItemContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; ElseIfStatementListItemContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; ElseIfStatementListItemContext.prototype.else_if_statement_list = function() { return this.getTypedRuleContext(Else_if_statement_listContext,0); }; ElseIfStatementListItemContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ElseIfStatementListItemContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; ElseIfStatementListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterElseIfStatementListItem(this); } }; ElseIfStatementListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitElseIfStatementListItem(this); } }; EParser.prototype.else_if_statement_list = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Else_if_statement_listContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 78; this.enterRecursionRule(localctx, 78, EParser.RULE_else_if_statement_list, _p); try { this.enterOuterAlt(localctx, 1); localctx = new ElseIfStatementListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1063; this.match(EParser.ELSE); this.state = 1064; this.match(EParser.IF); this.state = 1065; localctx.exp = this.expression(0); this.state = 1066; this.match(EParser.COLON); this.state = 1067; this.indent(); this.state = 1068; localctx.stmts = this.statement_list(); this.state = 1069; this.dedent(); this._ctx.stop = this._input.LT(-1); this.state = 1083; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,54,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new ElseIfStatementListItemContext(this, new Else_if_statement_listContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_else_if_statement_list); this.state = 1071; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1072; this.lfp(); this.state = 1073; this.match(EParser.ELSE); this.state = 1074; this.match(EParser.IF); this.state = 1075; localctx.exp = this.expression(0); this.state = 1076; this.match(EParser.COLON); this.state = 1077; this.indent(); this.state = 1078; localctx.stmts = this.statement_list(); this.state = 1079; this.dedent(); } this.state = 1085; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,54,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Raise_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_raise_statement; this.exp = null; // ExpressionContext return this; } Raise_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Raise_statementContext.prototype.constructor = Raise_statementContext; Raise_statementContext.prototype.RAISE = function() { return this.getToken(EParser.RAISE, 0); }; Raise_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Raise_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRaise_statement(this); } }; Raise_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRaise_statement(this); } }; EParser.Raise_statementContext = Raise_statementContext; EParser.prototype.raise_statement = function() { var localctx = new Raise_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 80, EParser.RULE_raise_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1086; this.match(EParser.RAISE); this.state = 1087; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Try_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_try_statement; this.name = null; // Variable_identifierContext this.stmts = null; // Statement_listContext this.handlers = null; // Catch_statement_listContext this.anyStmts = null; // Statement_listContext this.finalStmts = null; // Statement_listContext return this; } Try_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Try_statementContext.prototype.constructor = Try_statementContext; Try_statementContext.prototype.SWITCH = function() { return this.getToken(EParser.SWITCH, 0); }; Try_statementContext.prototype.ON = function() { return this.getToken(EParser.ON, 0); }; Try_statementContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; Try_statementContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Try_statementContext.prototype.indent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(IndentContext); } else { return this.getTypedRuleContext(IndentContext,i); } }; Try_statementContext.prototype.dedent = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DedentContext); } else { return this.getTypedRuleContext(DedentContext,i); } }; Try_statementContext.prototype.lfs = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfsContext); } else { return this.getTypedRuleContext(LfsContext,i); } }; Try_statementContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Try_statementContext.prototype.statement_list = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Statement_listContext); } else { return this.getTypedRuleContext(Statement_listContext,i); } }; Try_statementContext.prototype.ALWAYS = function() { return this.getToken(EParser.ALWAYS, 0); }; Try_statementContext.prototype.catch_statement_list = function() { return this.getTypedRuleContext(Catch_statement_listContext,0); }; Try_statementContext.prototype.OTHERWISE = function() { return this.getToken(EParser.OTHERWISE, 0); }; Try_statementContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; Try_statementContext.prototype.ANY = function() { return this.getToken(EParser.ANY, 0); }; Try_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTry_statement(this); } }; Try_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTry_statement(this); } }; EParser.Try_statementContext = Try_statementContext; EParser.prototype.try_statement = function() { var localctx = new Try_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 82, EParser.RULE_try_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1089; this.match(EParser.SWITCH); this.state = 1090; this.match(EParser.ON); this.state = 1091; localctx.name = this.variable_identifier(); this.state = 1092; this.match(EParser.DOING); this.state = 1093; this.match(EParser.COLON); this.state = 1094; this.indent(); this.state = 1095; localctx.stmts = this.statement_list(); this.state = 1096; this.dedent(); this.state = 1097; this.lfs(); this.state = 1099; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,55,this._ctx); if(la_===1) { this.state = 1098; localctx.handlers = this.catch_statement_list(); } this.state = 1112; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.OTHERWISE || _la===EParser.WHEN) { this.state = 1104; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.OTHERWISE: this.state = 1101; this.match(EParser.OTHERWISE); break; case EParser.WHEN: this.state = 1102; this.match(EParser.WHEN); this.state = 1103; this.match(EParser.ANY); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 1106; this.match(EParser.COLON); this.state = 1107; this.indent(); this.state = 1108; localctx.anyStmts = this.statement_list(); this.state = 1109; this.dedent(); this.state = 1110; this.lfs(); } this.state = 1121; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.ALWAYS) { this.state = 1114; this.match(EParser.ALWAYS); this.state = 1115; this.match(EParser.COLON); this.state = 1116; this.indent(); this.state = 1117; localctx.finalStmts = this.statement_list(); this.state = 1118; this.dedent(); this.state = 1119; this.lfs(); } this.state = 1123; this.lfs(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Catch_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_catch_statement; return this; } Catch_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Catch_statementContext.prototype.constructor = Catch_statementContext; Catch_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CatchAtomicStatementContext(parser, ctx) { Catch_statementContext.call(this, parser); this.name = null; // Symbol_identifierContext; this.stmts = null; // Statement_listContext; Catch_statementContext.prototype.copyFrom.call(this, ctx); return this; } CatchAtomicStatementContext.prototype = Object.create(Catch_statementContext.prototype); CatchAtomicStatementContext.prototype.constructor = CatchAtomicStatementContext; EParser.CatchAtomicStatementContext = CatchAtomicStatementContext; CatchAtomicStatementContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; CatchAtomicStatementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; CatchAtomicStatementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; CatchAtomicStatementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; CatchAtomicStatementContext.prototype.lfs = function() { return this.getTypedRuleContext(LfsContext,0); }; CatchAtomicStatementContext.prototype.symbol_identifier = function() { return this.getTypedRuleContext(Symbol_identifierContext,0); }; CatchAtomicStatementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; CatchAtomicStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCatchAtomicStatement(this); } }; CatchAtomicStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCatchAtomicStatement(this); } }; function CatchCollectionStatementContext(parser, ctx) { Catch_statementContext.call(this, parser); this.exp = null; // Symbol_listContext; this.stmts = null; // Statement_listContext; Catch_statementContext.prototype.copyFrom.call(this, ctx); return this; } CatchCollectionStatementContext.prototype = Object.create(Catch_statementContext.prototype); CatchCollectionStatementContext.prototype.constructor = CatchCollectionStatementContext; EParser.CatchCollectionStatementContext = CatchCollectionStatementContext; CatchCollectionStatementContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; CatchCollectionStatementContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; CatchCollectionStatementContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; CatchCollectionStatementContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; CatchCollectionStatementContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; CatchCollectionStatementContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; CatchCollectionStatementContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; CatchCollectionStatementContext.prototype.lfs = function() { return this.getTypedRuleContext(LfsContext,0); }; CatchCollectionStatementContext.prototype.symbol_list = function() { return this.getTypedRuleContext(Symbol_listContext,0); }; CatchCollectionStatementContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; CatchCollectionStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCatchCollectionStatement(this); } }; CatchCollectionStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCatchCollectionStatement(this); } }; EParser.Catch_statementContext = Catch_statementContext; EParser.prototype.catch_statement = function() { var localctx = new Catch_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 84, EParser.RULE_catch_statement); try { this.state = 1144; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,59,this._ctx); switch(la_) { case 1: localctx = new CatchAtomicStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1125; this.match(EParser.WHEN); this.state = 1126; localctx.name = this.symbol_identifier(); this.state = 1127; this.match(EParser.COLON); this.state = 1128; this.indent(); this.state = 1129; localctx.stmts = this.statement_list(); this.state = 1130; this.dedent(); this.state = 1131; this.lfs(); break; case 2: localctx = new CatchCollectionStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1133; this.match(EParser.WHEN); this.state = 1134; this.match(EParser.IN); this.state = 1135; this.match(EParser.LBRAK); this.state = 1136; localctx.exp = this.symbol_list(); this.state = 1137; this.match(EParser.RBRAK); this.state = 1138; this.match(EParser.COLON); this.state = 1139; this.indent(); this.state = 1140; localctx.stmts = this.statement_list(); this.state = 1141; this.dedent(); this.state = 1142; this.lfs(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Break_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_break_statement; return this; } Break_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Break_statementContext.prototype.constructor = Break_statementContext; Break_statementContext.prototype.BREAK = function() { return this.getToken(EParser.BREAK, 0); }; Break_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBreak_statement(this); } }; Break_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBreak_statement(this); } }; EParser.Break_statementContext = Break_statementContext; EParser.prototype.break_statement = function() { var localctx = new Break_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 86, EParser.RULE_break_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1146; this.match(EParser.BREAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Return_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_return_statement; this.exp = null; // ExpressionContext return this; } Return_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Return_statementContext.prototype.constructor = Return_statementContext; Return_statementContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; Return_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Return_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterReturn_statement(this); } }; Return_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitReturn_statement(this); } }; EParser.Return_statementContext = Return_statementContext; EParser.prototype.return_statement = function() { var localctx = new Return_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 88, EParser.RULE_return_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1148; this.match(EParser.RETURN); this.state = 1150; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 1149; localctx.exp = this.expression(0); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ExpressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_expression; return this; } ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ExpressionContext.prototype.constructor = ExpressionContext; ExpressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function IntDivideExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } IntDivideExpressionContext.prototype = Object.create(ExpressionContext.prototype); IntDivideExpressionContext.prototype.constructor = IntDivideExpressionContext; EParser.IntDivideExpressionContext = IntDivideExpressionContext; IntDivideExpressionContext.prototype.idivide = function() { return this.getTypedRuleContext(IdivideContext,0); }; IntDivideExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; IntDivideExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIntDivideExpression(this); } }; IntDivideExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIntDivideExpression(this); } }; function HasAnyExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } HasAnyExpressionContext.prototype = Object.create(ExpressionContext.prototype); HasAnyExpressionContext.prototype.constructor = HasAnyExpressionContext; EParser.HasAnyExpressionContext = HasAnyExpressionContext; HasAnyExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; HasAnyExpressionContext.prototype.ANY = function() { return this.getToken(EParser.ANY, 0); }; HasAnyExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; HasAnyExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterHasAnyExpression(this); } }; HasAnyExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitHasAnyExpression(this); } }; function HasExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } HasExpressionContext.prototype = Object.create(ExpressionContext.prototype); HasExpressionContext.prototype.constructor = HasExpressionContext; EParser.HasExpressionContext = HasExpressionContext; HasExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; HasExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; HasExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterHasExpression(this); } }; HasExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitHasExpression(this); } }; function InExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } InExpressionContext.prototype = Object.create(ExpressionContext.prototype); InExpressionContext.prototype.constructor = InExpressionContext; EParser.InExpressionContext = InExpressionContext; InExpressionContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; InExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; InExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInExpression(this); } }; InExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInExpression(this); } }; function JsxExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Jsx_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } JsxExpressionContext.prototype = Object.create(ExpressionContext.prototype); JsxExpressionContext.prototype.constructor = JsxExpressionContext; EParser.JsxExpressionContext = JsxExpressionContext; JsxExpressionContext.prototype.jsx_expression = function() { return this.getTypedRuleContext(Jsx_expressionContext,0); }; JsxExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxExpression(this); } }; JsxExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxExpression(this); } }; function GreaterThanExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } GreaterThanExpressionContext.prototype = Object.create(ExpressionContext.prototype); GreaterThanExpressionContext.prototype.constructor = GreaterThanExpressionContext; EParser.GreaterThanExpressionContext = GreaterThanExpressionContext; GreaterThanExpressionContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; GreaterThanExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; GreaterThanExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterGreaterThanExpression(this); } }; GreaterThanExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitGreaterThanExpression(this); } }; function OrExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } OrExpressionContext.prototype = Object.create(ExpressionContext.prototype); OrExpressionContext.prototype.constructor = OrExpressionContext; EParser.OrExpressionContext = OrExpressionContext; OrExpressionContext.prototype.OR = function() { return this.getToken(EParser.OR, 0); }; OrExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; OrExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOrExpression(this); } }; OrExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOrExpression(this); } }; function ReadOneExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Read_one_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ReadOneExpressionContext.prototype = Object.create(ExpressionContext.prototype); ReadOneExpressionContext.prototype.constructor = ReadOneExpressionContext; EParser.ReadOneExpressionContext = ReadOneExpressionContext; ReadOneExpressionContext.prototype.read_one_expression = function() { return this.getTypedRuleContext(Read_one_expressionContext,0); }; ReadOneExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterReadOneExpression(this); } }; ReadOneExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitReadOneExpression(this); } }; function NotHasAnyExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotHasAnyExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotHasAnyExpressionContext.prototype.constructor = NotHasAnyExpressionContext; EParser.NotHasAnyExpressionContext = NotHasAnyExpressionContext; NotHasAnyExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotHasAnyExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; NotHasAnyExpressionContext.prototype.ANY = function() { return this.getToken(EParser.ANY, 0); }; NotHasAnyExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotHasAnyExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotHasAnyExpression(this); } }; NotHasAnyExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotHasAnyExpression(this); } }; function AndExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } AndExpressionContext.prototype = Object.create(ExpressionContext.prototype); AndExpressionContext.prototype.constructor = AndExpressionContext; EParser.AndExpressionContext = AndExpressionContext; AndExpressionContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; AndExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; AndExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAndExpression(this); } }; AndExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAndExpression(this); } }; function MethodCallExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp1 = null; // Instance_expressionContext; this.exp2 = null; // Unresolved_expressionContext; this.args = null; // Argument_assignment_listContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } MethodCallExpressionContext.prototype = Object.create(ExpressionContext.prototype); MethodCallExpressionContext.prototype.constructor = MethodCallExpressionContext; EParser.MethodCallExpressionContext = MethodCallExpressionContext; MethodCallExpressionContext.prototype.argument_assignment_list = function() { return this.getTypedRuleContext(Argument_assignment_listContext,0); }; MethodCallExpressionContext.prototype.instance_expression = function() { return this.getTypedRuleContext(Instance_expressionContext,0); }; MethodCallExpressionContext.prototype.unresolved_expression = function() { return this.getTypedRuleContext(Unresolved_expressionContext,0); }; MethodCallExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMethodCallExpression(this); } }; MethodCallExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMethodCallExpression(this); } }; function FetchExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Fetch_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } FetchExpressionContext.prototype = Object.create(ExpressionContext.prototype); FetchExpressionContext.prototype.constructor = FetchExpressionContext; EParser.FetchExpressionContext = FetchExpressionContext; FetchExpressionContext.prototype.fetch_expression = function() { return this.getTypedRuleContext(Fetch_expressionContext,0); }; FetchExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchExpression(this); } }; FetchExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchExpression(this); } }; function NotHasExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotHasExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotHasExpressionContext.prototype.constructor = NotHasExpressionContext; EParser.NotHasExpressionContext = NotHasExpressionContext; NotHasExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotHasExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; NotHasExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotHasExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotHasExpression(this); } }; NotHasExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotHasExpression(this); } }; function SortedExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Sorted_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } SortedExpressionContext.prototype = Object.create(ExpressionContext.prototype); SortedExpressionContext.prototype.constructor = SortedExpressionContext; EParser.SortedExpressionContext = SortedExpressionContext; SortedExpressionContext.prototype.sorted_expression = function() { return this.getTypedRuleContext(Sorted_expressionContext,0); }; SortedExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSortedExpression(this); } }; SortedExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSortedExpression(this); } }; function NotHasAllExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotHasAllExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotHasAllExpressionContext.prototype.constructor = NotHasAllExpressionContext; EParser.NotHasAllExpressionContext = NotHasAllExpressionContext; NotHasAllExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotHasAllExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; NotHasAllExpressionContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; NotHasAllExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotHasAllExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotHasAllExpression(this); } }; NotHasAllExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotHasAllExpression(this); } }; function ContainsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ContainsExpressionContext.prototype = Object.create(ExpressionContext.prototype); ContainsExpressionContext.prototype.constructor = ContainsExpressionContext; EParser.ContainsExpressionContext = ContainsExpressionContext; ContainsExpressionContext.prototype.CONTAINS = function() { return this.getToken(EParser.CONTAINS, 0); }; ContainsExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; ContainsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterContainsExpression(this); } }; ContainsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitContainsExpression(this); } }; function NotContainsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotContainsExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotContainsExpressionContext.prototype.constructor = NotContainsExpressionContext; EParser.NotContainsExpressionContext = NotContainsExpressionContext; NotContainsExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotContainsExpressionContext.prototype.CONTAINS = function() { return this.getToken(EParser.CONTAINS, 0); }; NotContainsExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotContainsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotContainsExpression(this); } }; NotContainsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotContainsExpression(this); } }; function RoughlyEqualsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } RoughlyEqualsExpressionContext.prototype = Object.create(ExpressionContext.prototype); RoughlyEqualsExpressionContext.prototype.constructor = RoughlyEqualsExpressionContext; EParser.RoughlyEqualsExpressionContext = RoughlyEqualsExpressionContext; RoughlyEqualsExpressionContext.prototype.TILDE = function() { return this.getToken(EParser.TILDE, 0); }; RoughlyEqualsExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; RoughlyEqualsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRoughlyEqualsExpression(this); } }; RoughlyEqualsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRoughlyEqualsExpression(this); } }; function ExecuteExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.name = null; // Variable_identifierContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ExecuteExpressionContext.prototype = Object.create(ExpressionContext.prototype); ExecuteExpressionContext.prototype.constructor = ExecuteExpressionContext; EParser.ExecuteExpressionContext = ExecuteExpressionContext; ExecuteExpressionContext.prototype.EXECUTE = function() { return this.getToken(EParser.EXECUTE, 0); }; ExecuteExpressionContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; ExecuteExpressionContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; ExecuteExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterExecuteExpression(this); } }; ExecuteExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitExecuteExpression(this); } }; function GreaterThanOrEqualExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } GreaterThanOrEqualExpressionContext.prototype = Object.create(ExpressionContext.prototype); GreaterThanOrEqualExpressionContext.prototype.constructor = GreaterThanOrEqualExpressionContext; EParser.GreaterThanOrEqualExpressionContext = GreaterThanOrEqualExpressionContext; GreaterThanOrEqualExpressionContext.prototype.GTE = function() { return this.getToken(EParser.GTE, 0); }; GreaterThanOrEqualExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; GreaterThanOrEqualExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterGreaterThanOrEqualExpression(this); } }; GreaterThanOrEqualExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitGreaterThanOrEqualExpression(this); } }; function IteratorExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // ExpressionContext; this.name = null; // Variable_identifierContext; this.source = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } IteratorExpressionContext.prototype = Object.create(ExpressionContext.prototype); IteratorExpressionContext.prototype.constructor = IteratorExpressionContext; EParser.IteratorExpressionContext = IteratorExpressionContext; IteratorExpressionContext.prototype.FOR = function() { return this.getToken(EParser.FOR, 0); }; IteratorExpressionContext.prototype.EACH = function() { return this.getToken(EParser.EACH, 0); }; IteratorExpressionContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; IteratorExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; IteratorExpressionContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; IteratorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIteratorExpression(this); } }; IteratorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIteratorExpression(this); } }; function IsNotExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // Is_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } IsNotExpressionContext.prototype = Object.create(ExpressionContext.prototype); IsNotExpressionContext.prototype.constructor = IsNotExpressionContext; EParser.IsNotExpressionContext = IsNotExpressionContext; IsNotExpressionContext.prototype.IS = function() { return this.getToken(EParser.IS, 0); }; IsNotExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; IsNotExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; IsNotExpressionContext.prototype.is_expression = function() { return this.getTypedRuleContext(Is_expressionContext,0); }; IsNotExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIsNotExpression(this); } }; IsNotExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIsNotExpression(this); } }; function DivideExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } DivideExpressionContext.prototype = Object.create(ExpressionContext.prototype); DivideExpressionContext.prototype.constructor = DivideExpressionContext; EParser.DivideExpressionContext = DivideExpressionContext; DivideExpressionContext.prototype.divide = function() { return this.getTypedRuleContext(DivideContext,0); }; DivideExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; DivideExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDivideExpression(this); } }; DivideExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDivideExpression(this); } }; function IsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // Is_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } IsExpressionContext.prototype = Object.create(ExpressionContext.prototype); IsExpressionContext.prototype.constructor = IsExpressionContext; EParser.IsExpressionContext = IsExpressionContext; IsExpressionContext.prototype.IS = function() { return this.getToken(EParser.IS, 0); }; IsExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; IsExpressionContext.prototype.is_expression = function() { return this.getTypedRuleContext(Is_expressionContext,0); }; IsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIsExpression(this); } }; IsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIsExpression(this); } }; function AddExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.op = null; // Token; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } AddExpressionContext.prototype = Object.create(ExpressionContext.prototype); AddExpressionContext.prototype.constructor = AddExpressionContext; EParser.AddExpressionContext = AddExpressionContext; AddExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; AddExpressionContext.prototype.PLUS = function() { return this.getToken(EParser.PLUS, 0); }; AddExpressionContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; AddExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAddExpression(this); } }; AddExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAddExpression(this); } }; function InstanceExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Instance_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } InstanceExpressionContext.prototype = Object.create(ExpressionContext.prototype); InstanceExpressionContext.prototype.constructor = InstanceExpressionContext; EParser.InstanceExpressionContext = InstanceExpressionContext; InstanceExpressionContext.prototype.instance_expression = function() { return this.getTypedRuleContext(Instance_expressionContext,0); }; InstanceExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInstanceExpression(this); } }; InstanceExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInstanceExpression(this); } }; function ReadAllExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Read_all_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ReadAllExpressionContext.prototype = Object.create(ExpressionContext.prototype); ReadAllExpressionContext.prototype.constructor = ReadAllExpressionContext; EParser.ReadAllExpressionContext = ReadAllExpressionContext; ReadAllExpressionContext.prototype.read_all_expression = function() { return this.getTypedRuleContext(Read_all_expressionContext,0); }; ReadAllExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterReadAllExpression(this); } }; ReadAllExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitReadAllExpression(this); } }; function CastExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // Category_or_any_typeContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } CastExpressionContext.prototype = Object.create(ExpressionContext.prototype); CastExpressionContext.prototype.constructor = CastExpressionContext; EParser.CastExpressionContext = CastExpressionContext; CastExpressionContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; CastExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; CastExpressionContext.prototype.category_or_any_type = function() { return this.getTypedRuleContext(Category_or_any_typeContext,0); }; CastExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCastExpression(this); } }; CastExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCastExpression(this); } }; function ModuloExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ModuloExpressionContext.prototype = Object.create(ExpressionContext.prototype); ModuloExpressionContext.prototype.constructor = ModuloExpressionContext; EParser.ModuloExpressionContext = ModuloExpressionContext; ModuloExpressionContext.prototype.modulo = function() { return this.getTypedRuleContext(ModuloContext,0); }; ModuloExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; ModuloExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterModuloExpression(this); } }; ModuloExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitModuloExpression(this); } }; function TernaryExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.ifTrue = null; // ExpressionContext; this.test = null; // ExpressionContext; this.ifFalse = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } TernaryExpressionContext.prototype = Object.create(ExpressionContext.prototype); TernaryExpressionContext.prototype.constructor = TernaryExpressionContext; EParser.TernaryExpressionContext = TernaryExpressionContext; TernaryExpressionContext.prototype.IF = function() { return this.getToken(EParser.IF, 0); }; TernaryExpressionContext.prototype.ELSE = function() { return this.getToken(EParser.ELSE, 0); }; TernaryExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; TernaryExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTernaryExpression(this); } }; TernaryExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTernaryExpression(this); } }; function NotEqualsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotEqualsExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotEqualsExpressionContext.prototype.constructor = NotEqualsExpressionContext; EParser.NotEqualsExpressionContext = NotEqualsExpressionContext; NotEqualsExpressionContext.prototype.LTGT = function() { return this.getToken(EParser.LTGT, 0); }; NotEqualsExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotEqualsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotEqualsExpression(this); } }; NotEqualsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotEqualsExpression(this); } }; function DocumentExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Document_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } DocumentExpressionContext.prototype = Object.create(ExpressionContext.prototype); DocumentExpressionContext.prototype.constructor = DocumentExpressionContext; EParser.DocumentExpressionContext = DocumentExpressionContext; DocumentExpressionContext.prototype.document_expression = function() { return this.getTypedRuleContext(Document_expressionContext,0); }; DocumentExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDocumentExpression(this); } }; DocumentExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDocumentExpression(this); } }; function NotExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotExpressionContext.prototype.constructor = NotExpressionContext; EParser.NotExpressionContext = NotExpressionContext; NotExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; NotExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotExpression(this); } }; NotExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotExpression(this); } }; function InvocationExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Invocation_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } InvocationExpressionContext.prototype = Object.create(ExpressionContext.prototype); InvocationExpressionContext.prototype.constructor = InvocationExpressionContext; EParser.InvocationExpressionContext = InvocationExpressionContext; InvocationExpressionContext.prototype.invocation_expression = function() { return this.getTypedRuleContext(Invocation_expressionContext,0); }; InvocationExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInvocationExpression(this); } }; InvocationExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInvocationExpression(this); } }; function CodeExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } CodeExpressionContext.prototype = Object.create(ExpressionContext.prototype); CodeExpressionContext.prototype.constructor = CodeExpressionContext; EParser.CodeExpressionContext = CodeExpressionContext; CodeExpressionContext.prototype.CODE = function() { return this.getToken(EParser.CODE, 0); }; CodeExpressionContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; CodeExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; CodeExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCodeExpression(this); } }; CodeExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCodeExpression(this); } }; function AmbiguousExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Ambiguous_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } AmbiguousExpressionContext.prototype = Object.create(ExpressionContext.prototype); AmbiguousExpressionContext.prototype.constructor = AmbiguousExpressionContext; EParser.AmbiguousExpressionContext = AmbiguousExpressionContext; AmbiguousExpressionContext.prototype.ambiguous_expression = function() { return this.getTypedRuleContext(Ambiguous_expressionContext,0); }; AmbiguousExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAmbiguousExpression(this); } }; AmbiguousExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAmbiguousExpression(this); } }; function LessThanOrEqualExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } LessThanOrEqualExpressionContext.prototype = Object.create(ExpressionContext.prototype); LessThanOrEqualExpressionContext.prototype.constructor = LessThanOrEqualExpressionContext; EParser.LessThanOrEqualExpressionContext = LessThanOrEqualExpressionContext; LessThanOrEqualExpressionContext.prototype.LTE = function() { return this.getToken(EParser.LTE, 0); }; LessThanOrEqualExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; LessThanOrEqualExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLessThanOrEqualExpression(this); } }; LessThanOrEqualExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLessThanOrEqualExpression(this); } }; function ClosureExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.name = null; // Method_identifierContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ClosureExpressionContext.prototype = Object.create(ExpressionContext.prototype); ClosureExpressionContext.prototype.constructor = ClosureExpressionContext; EParser.ClosureExpressionContext = ClosureExpressionContext; ClosureExpressionContext.prototype.METHOD_T = function() { return this.getToken(EParser.METHOD_T, 0); }; ClosureExpressionContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; ClosureExpressionContext.prototype.method_identifier = function() { return this.getTypedRuleContext(Method_identifierContext,0); }; ClosureExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterClosureExpression(this); } }; ClosureExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitClosureExpression(this); } }; function BlobExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Blob_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } BlobExpressionContext.prototype = Object.create(ExpressionContext.prototype); BlobExpressionContext.prototype.constructor = BlobExpressionContext; EParser.BlobExpressionContext = BlobExpressionContext; BlobExpressionContext.prototype.blob_expression = function() { return this.getTypedRuleContext(Blob_expressionContext,0); }; BlobExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBlobExpression(this); } }; BlobExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBlobExpression(this); } }; function FilteredListExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.src = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } FilteredListExpressionContext.prototype = Object.create(ExpressionContext.prototype); FilteredListExpressionContext.prototype.constructor = FilteredListExpressionContext; EParser.FilteredListExpressionContext = FilteredListExpressionContext; FilteredListExpressionContext.prototype.filtered_list_suffix = function() { return this.getTypedRuleContext(Filtered_list_suffixContext,0); }; FilteredListExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; FilteredListExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFilteredListExpression(this); } }; FilteredListExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFilteredListExpression(this); } }; function ConstructorExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Constructor_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } ConstructorExpressionContext.prototype = Object.create(ExpressionContext.prototype); ConstructorExpressionContext.prototype.constructor = ConstructorExpressionContext; EParser.ConstructorExpressionContext = ConstructorExpressionContext; ConstructorExpressionContext.prototype.constructor_expression = function() { return this.getTypedRuleContext(Constructor_expressionContext,0); }; ConstructorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConstructorExpression(this); } }; ConstructorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConstructorExpression(this); } }; function MultiplyExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } MultiplyExpressionContext.prototype = Object.create(ExpressionContext.prototype); MultiplyExpressionContext.prototype.constructor = MultiplyExpressionContext; EParser.MultiplyExpressionContext = MultiplyExpressionContext; MultiplyExpressionContext.prototype.multiply = function() { return this.getTypedRuleContext(MultiplyContext,0); }; MultiplyExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; MultiplyExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMultiplyExpression(this); } }; MultiplyExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMultiplyExpression(this); } }; function NotInExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } NotInExpressionContext.prototype = Object.create(ExpressionContext.prototype); NotInExpressionContext.prototype.constructor = NotInExpressionContext; EParser.NotInExpressionContext = NotInExpressionContext; NotInExpressionContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; NotInExpressionContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; NotInExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; NotInExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNotInExpression(this); } }; NotInExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNotInExpression(this); } }; function UnresolvedExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Unresolved_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } UnresolvedExpressionContext.prototype = Object.create(ExpressionContext.prototype); UnresolvedExpressionContext.prototype.constructor = UnresolvedExpressionContext; EParser.UnresolvedExpressionContext = UnresolvedExpressionContext; UnresolvedExpressionContext.prototype.unresolved_expression = function() { return this.getTypedRuleContext(Unresolved_expressionContext,0); }; UnresolvedExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUnresolvedExpression(this); } }; UnresolvedExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUnresolvedExpression(this); } }; function MinusExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } MinusExpressionContext.prototype = Object.create(ExpressionContext.prototype); MinusExpressionContext.prototype.constructor = MinusExpressionContext; EParser.MinusExpressionContext = MinusExpressionContext; MinusExpressionContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; MinusExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; MinusExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMinusExpression(this); } }; MinusExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMinusExpression(this); } }; function HasAllExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } HasAllExpressionContext.prototype = Object.create(ExpressionContext.prototype); HasAllExpressionContext.prototype.constructor = HasAllExpressionContext; EParser.HasAllExpressionContext = HasAllExpressionContext; HasAllExpressionContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; HasAllExpressionContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; HasAllExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; HasAllExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterHasAllExpression(this); } }; HasAllExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitHasAllExpression(this); } }; function CssExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.exp = null; // Css_expressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } CssExpressionContext.prototype = Object.create(ExpressionContext.prototype); CssExpressionContext.prototype.constructor = CssExpressionContext; EParser.CssExpressionContext = CssExpressionContext; CssExpressionContext.prototype.css_expression = function() { return this.getTypedRuleContext(Css_expressionContext,0); }; CssExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCssExpression(this); } }; CssExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCssExpression(this); } }; function LessThanExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } LessThanExpressionContext.prototype = Object.create(ExpressionContext.prototype); LessThanExpressionContext.prototype.constructor = LessThanExpressionContext; EParser.LessThanExpressionContext = LessThanExpressionContext; LessThanExpressionContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; LessThanExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; LessThanExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLessThanExpression(this); } }; LessThanExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLessThanExpression(this); } }; function EqualsExpressionContext(parser, ctx) { ExpressionContext.call(this, parser); this.left = null; // ExpressionContext; this.right = null; // ExpressionContext; ExpressionContext.prototype.copyFrom.call(this, ctx); return this; } EqualsExpressionContext.prototype = Object.create(ExpressionContext.prototype); EqualsExpressionContext.prototype.constructor = EqualsExpressionContext; EParser.EqualsExpressionContext = EqualsExpressionContext; EqualsExpressionContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; EqualsExpressionContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; EqualsExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterEqualsExpression(this); } }; EqualsExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitEqualsExpression(this); } }; EParser.prototype.expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new ExpressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 90; this.enterRecursionRule(localctx, 90, EParser.RULE_expression, _p); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1185; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,62,this._ctx); switch(la_) { case 1: localctx = new CssExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1153; localctx.exp = this.css_expression(); break; case 2: localctx = new JsxExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1154; localctx.exp = this.jsx_expression(); break; case 3: localctx = new InstanceExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1155; localctx.exp = this.instance_expression(0); break; case 4: localctx = new UnresolvedExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1156; localctx.exp = this.unresolved_expression(0); break; case 5: localctx = new MethodCallExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1159; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,61,this._ctx); switch(la_) { case 1: this.state = 1157; localctx.exp1 = this.instance_expression(0); break; case 2: this.state = 1158; localctx.exp2 = this.unresolved_expression(0); break; } this.state = 1161; localctx.args = this.argument_assignment_list(); break; case 6: localctx = new MinusExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1163; this.match(EParser.MINUS); this.state = 1164; localctx.exp = this.expression(44); break; case 7: localctx = new NotExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1165; this.match(EParser.NOT); this.state = 1166; localctx.exp = this.expression(43); break; case 8: localctx = new CodeExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1167; this.match(EParser.CODE); this.state = 1168; this.match(EParser.COLON); this.state = 1169; localctx.exp = this.expression(14); break; case 9: localctx = new ExecuteExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1170; this.match(EParser.EXECUTE); this.state = 1171; this.match(EParser.COLON); this.state = 1172; localctx.name = this.variable_identifier(); break; case 10: localctx = new ClosureExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1173; this.match(EParser.METHOD_T); this.state = 1174; this.match(EParser.COLON); this.state = 1175; localctx.name = this.method_identifier(); break; case 11: localctx = new BlobExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1176; localctx.exp = this.blob_expression(); break; case 12: localctx = new DocumentExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1177; localctx.exp = this.document_expression(); break; case 13: localctx = new ConstructorExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1178; localctx.exp = this.constructor_expression(); break; case 14: localctx = new FetchExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1179; localctx.exp = this.fetch_expression(); break; case 15: localctx = new ReadAllExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1180; localctx.exp = this.read_all_expression(); break; case 16: localctx = new ReadOneExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1181; localctx.exp = this.read_one_expression(); break; case 17: localctx = new SortedExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1182; localctx.exp = this.sorted_expression(); break; case 18: localctx = new AmbiguousExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1183; localctx.exp = this.ambiguous_expression(); break; case 19: localctx = new InvocationExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1184; localctx.exp = this.invocation_expression(); break; } this._ctx.stop = this._input.LT(-1); this.state = 1299; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,64,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; this.state = 1297; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,63,this._ctx); switch(la_) { case 1: localctx = new MultiplyExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1187; if (!( this.precpred(this._ctx, 42))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 42)"); } this.state = 1188; this.multiply(); this.state = 1189; localctx.right = this.expression(43); break; case 2: localctx = new DivideExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1191; if (!( this.precpred(this._ctx, 41))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 41)"); } this.state = 1192; this.divide(); this.state = 1193; localctx.right = this.expression(42); break; case 3: localctx = new ModuloExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1195; if (!( this.precpred(this._ctx, 40))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 40)"); } this.state = 1196; this.modulo(); this.state = 1197; localctx.right = this.expression(41); break; case 4: localctx = new IntDivideExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1199; if (!( this.precpred(this._ctx, 39))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 39)"); } this.state = 1200; this.idivide(); this.state = 1201; localctx.right = this.expression(40); break; case 5: localctx = new AddExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1203; if (!( this.precpred(this._ctx, 38))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 38)"); } this.state = 1204; localctx.op = this._input.LT(1); _la = this._input.LA(1); if(!(_la===EParser.PLUS || _la===EParser.MINUS)) { localctx.op = this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } this.state = 1205; localctx.right = this.expression(39); break; case 6: localctx = new LessThanExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1206; if (!( this.precpred(this._ctx, 36))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 36)"); } this.state = 1207; this.match(EParser.LT); this.state = 1208; localctx.right = this.expression(37); break; case 7: localctx = new LessThanOrEqualExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1209; if (!( this.precpred(this._ctx, 35))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 35)"); } this.state = 1210; this.match(EParser.LTE); this.state = 1211; localctx.right = this.expression(36); break; case 8: localctx = new GreaterThanExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1212; if (!( this.precpred(this._ctx, 34))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 34)"); } this.state = 1213; this.match(EParser.GT); this.state = 1214; localctx.right = this.expression(35); break; case 9: localctx = new GreaterThanOrEqualExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1215; if (!( this.precpred(this._ctx, 33))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 33)"); } this.state = 1216; this.match(EParser.GTE); this.state = 1217; localctx.right = this.expression(34); break; case 10: localctx = new EqualsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1218; if (!( this.precpred(this._ctx, 30))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 30)"); } this.state = 1219; this.match(EParser.EQ); this.state = 1220; localctx.right = this.expression(31); break; case 11: localctx = new NotEqualsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1221; if (!( this.precpred(this._ctx, 29))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 29)"); } this.state = 1222; this.match(EParser.LTGT); this.state = 1223; localctx.right = this.expression(30); break; case 12: localctx = new RoughlyEqualsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1224; if (!( this.precpred(this._ctx, 28))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 28)"); } this.state = 1225; this.match(EParser.TILDE); this.state = 1226; localctx.right = this.expression(29); break; case 13: localctx = new ContainsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1227; if (!( this.precpred(this._ctx, 27))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 27)"); } this.state = 1228; this.match(EParser.CONTAINS); this.state = 1229; localctx.right = this.expression(28); break; case 14: localctx = new InExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1230; if (!( this.precpred(this._ctx, 26))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 26)"); } this.state = 1231; this.match(EParser.IN); this.state = 1232; localctx.right = this.expression(27); break; case 15: localctx = new HasExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1233; if (!( this.precpred(this._ctx, 25))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 25)"); } this.state = 1234; this.match(EParser.HAS); this.state = 1235; localctx.right = this.expression(26); break; case 16: localctx = new HasAllExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1236; if (!( this.precpred(this._ctx, 24))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 24)"); } this.state = 1237; this.match(EParser.HAS); this.state = 1238; this.match(EParser.ALL); this.state = 1239; localctx.right = this.expression(25); break; case 17: localctx = new HasAnyExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1240; if (!( this.precpred(this._ctx, 23))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 23)"); } this.state = 1241; this.match(EParser.HAS); this.state = 1242; this.match(EParser.ANY); this.state = 1243; localctx.right = this.expression(24); break; case 18: localctx = new NotContainsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1244; if (!( this.precpred(this._ctx, 22))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 22)"); } this.state = 1245; this.match(EParser.NOT); this.state = 1246; this.match(EParser.CONTAINS); this.state = 1247; localctx.right = this.expression(23); break; case 19: localctx = new NotInExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1248; if (!( this.precpred(this._ctx, 21))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 21)"); } this.state = 1249; this.match(EParser.NOT); this.state = 1250; this.match(EParser.IN); this.state = 1251; localctx.right = this.expression(22); break; case 20: localctx = new NotHasExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1252; if (!( this.precpred(this._ctx, 20))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 20)"); } this.state = 1253; this.match(EParser.NOT); this.state = 1254; this.match(EParser.HAS); this.state = 1255; localctx.right = this.expression(21); break; case 21: localctx = new NotHasAllExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1256; if (!( this.precpred(this._ctx, 19))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 19)"); } this.state = 1257; this.match(EParser.NOT); this.state = 1258; this.match(EParser.HAS); this.state = 1259; this.match(EParser.ALL); this.state = 1260; localctx.right = this.expression(20); break; case 22: localctx = new NotHasAnyExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1261; if (!( this.precpred(this._ctx, 18))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 18)"); } this.state = 1262; this.match(EParser.NOT); this.state = 1263; this.match(EParser.HAS); this.state = 1264; this.match(EParser.ANY); this.state = 1265; localctx.right = this.expression(19); break; case 23: localctx = new OrExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1266; if (!( this.precpred(this._ctx, 17))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 17)"); } this.state = 1267; this.match(EParser.OR); this.state = 1268; localctx.right = this.expression(18); break; case 24: localctx = new AndExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1269; if (!( this.precpred(this._ctx, 16))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 16)"); } this.state = 1270; this.match(EParser.AND); this.state = 1271; localctx.right = this.expression(17); break; case 25: localctx = new TernaryExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.ifTrue = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1272; if (!( this.precpred(this._ctx, 15))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 15)"); } this.state = 1273; this.match(EParser.IF); this.state = 1274; localctx.test = this.expression(0); this.state = 1275; this.match(EParser.ELSE); this.state = 1276; localctx.ifFalse = this.expression(16); break; case 26: localctx = new IteratorExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.exp = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1278; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1279; this.match(EParser.FOR); this.state = 1280; this.match(EParser.EACH); this.state = 1281; localctx.name = this.variable_identifier(); this.state = 1282; this.match(EParser.IN); this.state = 1283; localctx.source = this.expression(2); break; case 27: localctx = new CastExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1285; if (!( this.precpred(this._ctx, 37))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 37)"); } this.state = 1286; this.match(EParser.AS); this.state = 1287; localctx.right = this.category_or_any_type(); break; case 28: localctx = new IsNotExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1288; if (!( this.precpred(this._ctx, 32))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 32)"); } this.state = 1289; this.match(EParser.IS); this.state = 1290; this.match(EParser.NOT); this.state = 1291; localctx.right = this.is_expression(); break; case 29: localctx = new IsExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.left = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1292; if (!( this.precpred(this._ctx, 31))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 31)"); } this.state = 1293; this.match(EParser.IS); this.state = 1294; localctx.right = this.is_expression(); break; case 30: localctx = new FilteredListExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); localctx.src = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_expression); this.state = 1295; if (!( this.precpred(this._ctx, 8))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 8)"); } this.state = 1296; this.filtered_list_suffix(); break; } } this.state = 1301; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,64,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Unresolved_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_unresolved_expression; return this; } Unresolved_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Unresolved_expressionContext.prototype.constructor = Unresolved_expressionContext; Unresolved_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function UnresolvedSelectorContext(parser, ctx) { Unresolved_expressionContext.call(this, parser); this.parent = null; // Unresolved_expressionContext; this.selector = null; // Unresolved_selectorContext; Unresolved_expressionContext.prototype.copyFrom.call(this, ctx); return this; } UnresolvedSelectorContext.prototype = Object.create(Unresolved_expressionContext.prototype); UnresolvedSelectorContext.prototype.constructor = UnresolvedSelectorContext; EParser.UnresolvedSelectorContext = UnresolvedSelectorContext; UnresolvedSelectorContext.prototype.unresolved_expression = function() { return this.getTypedRuleContext(Unresolved_expressionContext,0); }; UnresolvedSelectorContext.prototype.unresolved_selector = function() { return this.getTypedRuleContext(Unresolved_selectorContext,0); }; UnresolvedSelectorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUnresolvedSelector(this); } }; UnresolvedSelectorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUnresolvedSelector(this); } }; function UnresolvedIdentifierContext(parser, ctx) { Unresolved_expressionContext.call(this, parser); this.name = null; // IdentifierContext; Unresolved_expressionContext.prototype.copyFrom.call(this, ctx); return this; } UnresolvedIdentifierContext.prototype = Object.create(Unresolved_expressionContext.prototype); UnresolvedIdentifierContext.prototype.constructor = UnresolvedIdentifierContext; EParser.UnresolvedIdentifierContext = UnresolvedIdentifierContext; UnresolvedIdentifierContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; UnresolvedIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUnresolvedIdentifier(this); } }; UnresolvedIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUnresolvedIdentifier(this); } }; EParser.prototype.unresolved_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Unresolved_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 92; this.enterRecursionRule(localctx, 92, EParser.RULE_unresolved_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new UnresolvedIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1303; localctx.name = this.identifier(); this._ctx.stop = this._input.LT(-1); this.state = 1309; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,65,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new UnresolvedSelectorContext(this, new Unresolved_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_unresolved_expression); this.state = 1305; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1306; localctx.selector = this.unresolved_selector(); } this.state = 1311; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,65,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Unresolved_selectorContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_unresolved_selector; this.name = null; // IdentifierContext return this; } Unresolved_selectorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Unresolved_selectorContext.prototype.constructor = Unresolved_selectorContext; Unresolved_selectorContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; Unresolved_selectorContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; Unresolved_selectorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUnresolved_selector(this); } }; Unresolved_selectorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUnresolved_selector(this); } }; EParser.Unresolved_selectorContext = Unresolved_selectorContext; EParser.prototype.unresolved_selector = function() { var localctx = new Unresolved_selectorContext(this, this._ctx, this.state); this.enterRule(localctx, 94, EParser.RULE_unresolved_selector); try { this.enterOuterAlt(localctx, 1); this.state = 1312; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1313; this.match(EParser.DOT); this.state = 1314; localctx.name = this.identifier(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Invocation_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_invocation_expression; this.name = null; // Variable_identifierContext return this; } Invocation_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Invocation_expressionContext.prototype.constructor = Invocation_expressionContext; Invocation_expressionContext.prototype.INVOKE = function() { return this.getToken(EParser.INVOKE, 0); }; Invocation_expressionContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Invocation_expressionContext.prototype.invocation_trailer = function() { return this.getTypedRuleContext(Invocation_trailerContext,0); }; Invocation_expressionContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Invocation_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInvocation_expression(this); } }; Invocation_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInvocation_expression(this); } }; EParser.Invocation_expressionContext = Invocation_expressionContext; EParser.prototype.invocation_expression = function() { var localctx = new Invocation_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 96, EParser.RULE_invocation_expression); try { this.enterOuterAlt(localctx, 1); this.state = 1316; this.match(EParser.INVOKE); this.state = 1317; this.match(EParser.COLON); this.state = 1318; localctx.name = this.variable_identifier(); this.state = 1319; this.invocation_trailer(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Invocation_trailerContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_invocation_trailer; return this; } Invocation_trailerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Invocation_trailerContext.prototype.constructor = Invocation_trailerContext; Invocation_trailerContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterInvocation_trailer(this); } }; Invocation_trailerContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitInvocation_trailer(this); } }; EParser.Invocation_trailerContext = Invocation_trailerContext; EParser.prototype.invocation_trailer = function() { var localctx = new Invocation_trailerContext(this, this._ctx, this.state); this.enterRule(localctx, 98, EParser.RULE_invocation_trailer); try { this.enterOuterAlt(localctx, 1); this.state = 1321; if (!( this.willBe(EParser.LF))) { throw new antlr4.error.FailedPredicateException(this, "$parser.willBe(EParser.LF)"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Selectable_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_selectable_expression; return this; } Selectable_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Selectable_expressionContext.prototype.constructor = Selectable_expressionContext; Selectable_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ThisExpressionContext(parser, ctx) { Selectable_expressionContext.call(this, parser); this.exp = null; // This_expressionContext; Selectable_expressionContext.prototype.copyFrom.call(this, ctx); return this; } ThisExpressionContext.prototype = Object.create(Selectable_expressionContext.prototype); ThisExpressionContext.prototype.constructor = ThisExpressionContext; EParser.ThisExpressionContext = ThisExpressionContext; ThisExpressionContext.prototype.this_expression = function() { return this.getTypedRuleContext(This_expressionContext,0); }; ThisExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterThisExpression(this); } }; ThisExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitThisExpression(this); } }; function ParenthesisExpressionContext(parser, ctx) { Selectable_expressionContext.call(this, parser); this.exp = null; // Parenthesis_expressionContext; Selectable_expressionContext.prototype.copyFrom.call(this, ctx); return this; } ParenthesisExpressionContext.prototype = Object.create(Selectable_expressionContext.prototype); ParenthesisExpressionContext.prototype.constructor = ParenthesisExpressionContext; EParser.ParenthesisExpressionContext = ParenthesisExpressionContext; ParenthesisExpressionContext.prototype.parenthesis_expression = function() { return this.getTypedRuleContext(Parenthesis_expressionContext,0); }; ParenthesisExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterParenthesisExpression(this); } }; ParenthesisExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitParenthesisExpression(this); } }; function LiteralExpressionContext(parser, ctx) { Selectable_expressionContext.call(this, parser); this.exp = null; // Literal_expressionContext; Selectable_expressionContext.prototype.copyFrom.call(this, ctx); return this; } LiteralExpressionContext.prototype = Object.create(Selectable_expressionContext.prototype); LiteralExpressionContext.prototype.constructor = LiteralExpressionContext; EParser.LiteralExpressionContext = LiteralExpressionContext; LiteralExpressionContext.prototype.literal_expression = function() { return this.getTypedRuleContext(Literal_expressionContext,0); }; LiteralExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteralExpression(this); } }; LiteralExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteralExpression(this); } }; function IdentifierExpressionContext(parser, ctx) { Selectable_expressionContext.call(this, parser); this.exp = null; // IdentifierContext; Selectable_expressionContext.prototype.copyFrom.call(this, ctx); return this; } IdentifierExpressionContext.prototype = Object.create(Selectable_expressionContext.prototype); IdentifierExpressionContext.prototype.constructor = IdentifierExpressionContext; EParser.IdentifierExpressionContext = IdentifierExpressionContext; IdentifierExpressionContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; IdentifierExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIdentifierExpression(this); } }; IdentifierExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIdentifierExpression(this); } }; EParser.Selectable_expressionContext = Selectable_expressionContext; EParser.prototype.selectable_expression = function() { var localctx = new Selectable_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 100, EParser.RULE_selectable_expression); try { this.state = 1327; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,66,this._ctx); switch(la_) { case 1: localctx = new ParenthesisExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1323; localctx.exp = this.parenthesis_expression(); break; case 2: localctx = new LiteralExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1324; localctx.exp = this.literal_expression(); break; case 3: localctx = new IdentifierExpressionContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1325; localctx.exp = this.identifier(); break; case 4: localctx = new ThisExpressionContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 1326; localctx.exp = this.this_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Instance_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_instance_expression; return this; } Instance_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Instance_expressionContext.prototype.constructor = Instance_expressionContext; Instance_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function SelectorExpressionContext(parser, ctx) { Instance_expressionContext.call(this, parser); this.parent = null; // Instance_expressionContext; this.selector = null; // Instance_selectorContext; Instance_expressionContext.prototype.copyFrom.call(this, ctx); return this; } SelectorExpressionContext.prototype = Object.create(Instance_expressionContext.prototype); SelectorExpressionContext.prototype.constructor = SelectorExpressionContext; EParser.SelectorExpressionContext = SelectorExpressionContext; SelectorExpressionContext.prototype.instance_expression = function() { return this.getTypedRuleContext(Instance_expressionContext,0); }; SelectorExpressionContext.prototype.instance_selector = function() { return this.getTypedRuleContext(Instance_selectorContext,0); }; SelectorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSelectorExpression(this); } }; SelectorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSelectorExpression(this); } }; function SelectableExpressionContext(parser, ctx) { Instance_expressionContext.call(this, parser); this.parent = null; // Selectable_expressionContext; Instance_expressionContext.prototype.copyFrom.call(this, ctx); return this; } SelectableExpressionContext.prototype = Object.create(Instance_expressionContext.prototype); SelectableExpressionContext.prototype.constructor = SelectableExpressionContext; EParser.SelectableExpressionContext = SelectableExpressionContext; SelectableExpressionContext.prototype.selectable_expression = function() { return this.getTypedRuleContext(Selectable_expressionContext,0); }; SelectableExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSelectableExpression(this); } }; SelectableExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSelectableExpression(this); } }; EParser.prototype.instance_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Instance_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 102; this.enterRecursionRule(localctx, 102, EParser.RULE_instance_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new SelectableExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1330; localctx.parent = this.selectable_expression(); this._ctx.stop = this._input.LT(-1); this.state = 1336; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,67,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new SelectorExpressionContext(this, new Instance_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_instance_expression); this.state = 1332; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1333; localctx.selector = this.instance_selector(); } this.state = 1338; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,67,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Instance_selectorContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_instance_selector; return this; } Instance_selectorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Instance_selectorContext.prototype.constructor = Instance_selectorContext; Instance_selectorContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function SliceSelectorContext(parser, ctx) { Instance_selectorContext.call(this, parser); this.xslice = null; // Slice_argumentsContext; Instance_selectorContext.prototype.copyFrom.call(this, ctx); return this; } SliceSelectorContext.prototype = Object.create(Instance_selectorContext.prototype); SliceSelectorContext.prototype.constructor = SliceSelectorContext; EParser.SliceSelectorContext = SliceSelectorContext; SliceSelectorContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; SliceSelectorContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; SliceSelectorContext.prototype.slice_arguments = function() { return this.getTypedRuleContext(Slice_argumentsContext,0); }; SliceSelectorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSliceSelector(this); } }; SliceSelectorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSliceSelector(this); } }; function MemberSelectorContext(parser, ctx) { Instance_selectorContext.call(this, parser); this.name = null; // Variable_identifierContext; Instance_selectorContext.prototype.copyFrom.call(this, ctx); return this; } MemberSelectorContext.prototype = Object.create(Instance_selectorContext.prototype); MemberSelectorContext.prototype.constructor = MemberSelectorContext; EParser.MemberSelectorContext = MemberSelectorContext; MemberSelectorContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; MemberSelectorContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; MemberSelectorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMemberSelector(this); } }; MemberSelectorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMemberSelector(this); } }; function ItemSelectorContext(parser, ctx) { Instance_selectorContext.call(this, parser); this.exp = null; // ExpressionContext; Instance_selectorContext.prototype.copyFrom.call(this, ctx); return this; } ItemSelectorContext.prototype = Object.create(Instance_selectorContext.prototype); ItemSelectorContext.prototype.constructor = ItemSelectorContext; EParser.ItemSelectorContext = ItemSelectorContext; ItemSelectorContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; ItemSelectorContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; ItemSelectorContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ItemSelectorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterItemSelector(this); } }; ItemSelectorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitItemSelector(this); } }; EParser.Instance_selectorContext = Instance_selectorContext; EParser.prototype.instance_selector = function() { var localctx = new Instance_selectorContext(this, this._ctx, this.state); this.enterRule(localctx, 104, EParser.RULE_instance_selector); try { this.state = 1352; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,68,this._ctx); switch(la_) { case 1: localctx = new MemberSelectorContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1339; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1340; this.match(EParser.DOT); this.state = 1341; localctx.name = this.variable_identifier(); break; case 2: localctx = new SliceSelectorContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1342; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1343; this.match(EParser.LBRAK); this.state = 1344; localctx.xslice = this.slice_arguments(); this.state = 1345; this.match(EParser.RBRAK); break; case 3: localctx = new ItemSelectorContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1347; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1348; this.match(EParser.LBRAK); this.state = 1349; localctx.exp = this.expression(0); this.state = 1350; this.match(EParser.RBRAK); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Document_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_document_expression; return this; } Document_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Document_expressionContext.prototype.constructor = Document_expressionContext; Document_expressionContext.prototype.DOCUMENT = function() { return this.getToken(EParser.DOCUMENT, 0); }; Document_expressionContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Document_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Document_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDocument_expression(this); } }; Document_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDocument_expression(this); } }; EParser.Document_expressionContext = Document_expressionContext; EParser.prototype.document_expression = function() { var localctx = new Document_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 106, EParser.RULE_document_expression); try { this.enterOuterAlt(localctx, 1); this.state = 1354; this.match(EParser.DOCUMENT); this.state = 1357; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,69,this._ctx); if(la_===1) { this.state = 1355; this.match(EParser.FROM); this.state = 1356; this.expression(0); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Blob_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_blob_expression; return this; } Blob_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Blob_expressionContext.prototype.constructor = Blob_expressionContext; Blob_expressionContext.prototype.BLOB = function() { return this.getToken(EParser.BLOB, 0); }; Blob_expressionContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Blob_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Blob_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBlob_expression(this); } }; Blob_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBlob_expression(this); } }; EParser.Blob_expressionContext = Blob_expressionContext; EParser.prototype.blob_expression = function() { var localctx = new Blob_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 108, EParser.RULE_blob_expression); try { this.enterOuterAlt(localctx, 1); this.state = 1359; this.match(EParser.BLOB); this.state = 1360; this.match(EParser.FROM); this.state = 1361; this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Constructor_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_constructor_expression; return this; } Constructor_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Constructor_expressionContext.prototype.constructor = Constructor_expressionContext; Constructor_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ConstructorFromContext(parser, ctx) { Constructor_expressionContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.copyExp = null; // ExpressionContext; this.args = null; // With_argument_assignment_listContext; this.arg = null; // Argument_assignmentContext; Constructor_expressionContext.prototype.copyFrom.call(this, ctx); return this; } ConstructorFromContext.prototype = Object.create(Constructor_expressionContext.prototype); ConstructorFromContext.prototype.constructor = ConstructorFromContext; EParser.ConstructorFromContext = ConstructorFromContext; ConstructorFromContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; ConstructorFromContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; ConstructorFromContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ConstructorFromContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; ConstructorFromContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; ConstructorFromContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; ConstructorFromContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ConstructorFromContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConstructorFrom(this); } }; ConstructorFromContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConstructorFrom(this); } }; function ConstructorNoFromContext(parser, ctx) { Constructor_expressionContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.args = null; // With_argument_assignment_listContext; this.arg = null; // Argument_assignmentContext; Constructor_expressionContext.prototype.copyFrom.call(this, ctx); return this; } ConstructorNoFromContext.prototype = Object.create(Constructor_expressionContext.prototype); ConstructorNoFromContext.prototype.constructor = ConstructorNoFromContext; EParser.ConstructorNoFromContext = ConstructorNoFromContext; ConstructorNoFromContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; ConstructorNoFromContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; ConstructorNoFromContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; ConstructorNoFromContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ConstructorNoFromContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConstructorNoFrom(this); } }; ConstructorNoFromContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConstructorNoFrom(this); } }; EParser.Constructor_expressionContext = Constructor_expressionContext; EParser.prototype.constructor_expression = function() { var localctx = new Constructor_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 110, EParser.RULE_constructor_expression); var _la = 0; // Token type try { this.state = 1384; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,75,this._ctx); switch(la_) { case 1: localctx = new ConstructorFromContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1363; localctx.typ = this.mutable_category_type(); this.state = 1364; this.match(EParser.FROM); this.state = 1365; localctx.copyExp = this.expression(0); this.state = 1374; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,72,this._ctx); if(la_===1) { this.state = 1367; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.COMMA) { this.state = 1366; this.match(EParser.COMMA); } this.state = 1369; localctx.args = this.with_argument_assignment_list(0); this.state = 1372; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,71,this._ctx); if(la_===1) { this.state = 1370; this.match(EParser.AND); this.state = 1371; localctx.arg = this.argument_assignment(); } } break; case 2: localctx = new ConstructorNoFromContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1376; localctx.typ = this.mutable_category_type(); this.state = 1382; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,74,this._ctx); if(la_===1) { this.state = 1377; localctx.args = this.with_argument_assignment_list(0); this.state = 1380; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,73,this._ctx); if(la_===1) { this.state = 1378; this.match(EParser.AND); this.state = 1379; localctx.arg = this.argument_assignment(); } } break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Write_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_write_statement; this.what = null; // ExpressionContext this.target = null; // ExpressionContext return this; } Write_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Write_statementContext.prototype.constructor = Write_statementContext; Write_statementContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; Write_statementContext.prototype.TO = function() { return this.getToken(EParser.TO, 0); }; Write_statementContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; Write_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterWrite_statement(this); } }; Write_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitWrite_statement(this); } }; EParser.Write_statementContext = Write_statementContext; EParser.prototype.write_statement = function() { var localctx = new Write_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 112, EParser.RULE_write_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1386; this.match(EParser.WRITE); this.state = 1387; localctx.what = this.expression(0); this.state = 1388; this.match(EParser.TO); this.state = 1389; localctx.target = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Ambiguous_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_ambiguous_expression; this.method = null; // Unresolved_expressionContext this.exp = null; // ExpressionContext return this; } Ambiguous_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Ambiguous_expressionContext.prototype.constructor = Ambiguous_expressionContext; Ambiguous_expressionContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; Ambiguous_expressionContext.prototype.unresolved_expression = function() { return this.getTypedRuleContext(Unresolved_expressionContext,0); }; Ambiguous_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Ambiguous_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAmbiguous_expression(this); } }; Ambiguous_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAmbiguous_expression(this); } }; EParser.Ambiguous_expressionContext = Ambiguous_expressionContext; EParser.prototype.ambiguous_expression = function() { var localctx = new Ambiguous_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 114, EParser.RULE_ambiguous_expression); try { this.enterOuterAlt(localctx, 1); this.state = 1391; localctx.method = this.unresolved_expression(0); this.state = 1392; this.match(EParser.MINUS); this.state = 1393; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Filtered_list_suffixContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_filtered_list_suffix; this.name = null; // Variable_identifierContext this.predicate = null; // ExpressionContext return this; } Filtered_list_suffixContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Filtered_list_suffixContext.prototype.constructor = Filtered_list_suffixContext; Filtered_list_suffixContext.prototype.FILTERED = function() { return this.getToken(EParser.FILTERED, 0); }; Filtered_list_suffixContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Filtered_list_suffixContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; Filtered_list_suffixContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Filtered_list_suffixContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Filtered_list_suffixContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFiltered_list_suffix(this); } }; Filtered_list_suffixContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFiltered_list_suffix(this); } }; EParser.Filtered_list_suffixContext = Filtered_list_suffixContext; EParser.prototype.filtered_list_suffix = function() { var localctx = new Filtered_list_suffixContext(this, this._ctx, this.state); this.enterRule(localctx, 116, EParser.RULE_filtered_list_suffix); try { this.enterOuterAlt(localctx, 1); this.state = 1395; this.match(EParser.FILTERED); this.state = 1396; this.match(EParser.WITH); this.state = 1397; localctx.name = this.variable_identifier(); this.state = 1398; this.match(EParser.WHERE); this.state = 1399; localctx.predicate = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Fetch_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_fetch_expression; return this; } Fetch_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Fetch_expressionContext.prototype.constructor = Fetch_expressionContext; Fetch_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function FetchOneContext(parser, ctx) { Fetch_expressionContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.predicate = null; // ExpressionContext; Fetch_expressionContext.prototype.copyFrom.call(this, ctx); return this; } FetchOneContext.prototype = Object.create(Fetch_expressionContext.prototype); FetchOneContext.prototype.constructor = FetchOneContext; EParser.FetchOneContext = FetchOneContext; FetchOneContext.prototype.FETCH = function() { return this.getToken(EParser.FETCH, 0); }; FetchOneContext.prototype.ONE = function() { return this.getToken(EParser.ONE, 0); }; FetchOneContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; FetchOneContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; FetchOneContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; FetchOneContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchOne(this); } }; FetchOneContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchOne(this); } }; function FetchManyContext(parser, ctx) { Fetch_expressionContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.xstart = null; // ExpressionContext; this.xstop = null; // ExpressionContext; this.predicate = null; // ExpressionContext; this.orderby = null; // Order_by_listContext; Fetch_expressionContext.prototype.copyFrom.call(this, ctx); return this; } FetchManyContext.prototype = Object.create(Fetch_expressionContext.prototype); FetchManyContext.prototype.constructor = FetchManyContext; EParser.FetchManyContext = FetchManyContext; FetchManyContext.prototype.FETCH = function() { return this.getToken(EParser.FETCH, 0); }; FetchManyContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; FetchManyContext.prototype.ORDER = function() { return this.getToken(EParser.ORDER, 0); }; FetchManyContext.prototype.BY = function() { return this.getToken(EParser.BY, 0); }; FetchManyContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; FetchManyContext.prototype.TO = function() { return this.getToken(EParser.TO, 0); }; FetchManyContext.prototype.ROWS = function() { return this.getToken(EParser.ROWS, 0); }; FetchManyContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; FetchManyContext.prototype.order_by_list = function() { return this.getTypedRuleContext(Order_by_listContext,0); }; FetchManyContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; FetchManyContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchMany(this); } }; FetchManyContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchMany(this); } }; EParser.Fetch_expressionContext = Fetch_expressionContext; EParser.prototype.fetch_expression = function() { var localctx = new Fetch_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 118, EParser.RULE_fetch_expression); var _la = 0; // Token type try { this.state = 1437; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,82,this._ctx); switch(la_) { case 1: localctx = new FetchOneContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1401; this.match(EParser.FETCH); this.state = 1402; this.match(EParser.ONE); this.state = 1404; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE || _la===EParser.TYPE_IDENTIFIER) { this.state = 1403; localctx.typ = this.mutable_category_type(); } this.state = 1406; this.match(EParser.WHERE); this.state = 1407; localctx.predicate = this.expression(0); break; case 2: localctx = new FetchManyContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1408; this.match(EParser.FETCH); this.state = 1426; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.ALL: this.state = 1409; this.match(EParser.ALL); this.state = 1411; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,77,this._ctx); if(la_===1) { this.state = 1410; localctx.typ = this.mutable_category_type(); } break; case EParser.MUTABLE: case EParser.TYPE_IDENTIFIER: this.state = 1413; localctx.typ = this.mutable_category_type(); this.state = 1415; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.ROWS) { this.state = 1414; this.match(EParser.ROWS); } this.state = 1417; localctx.xstart = this.expression(0); this.state = 1418; this.match(EParser.TO); this.state = 1419; localctx.xstop = this.expression(0); break; case EParser.ROWS: this.state = 1421; this.match(EParser.ROWS); this.state = 1422; localctx.xstart = this.expression(0); this.state = 1423; this.match(EParser.TO); this.state = 1424; localctx.xstop = this.expression(0); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 1430; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); if(la_===1) { this.state = 1428; this.match(EParser.WHERE); this.state = 1429; localctx.predicate = this.expression(0); } this.state = 1435; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,81,this._ctx); if(la_===1) { this.state = 1432; this.match(EParser.ORDER); this.state = 1433; this.match(EParser.BY); this.state = 1434; localctx.orderby = this.order_by_list(); } break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Fetch_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_fetch_statement; return this; } Fetch_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Fetch_statementContext.prototype.constructor = Fetch_statementContext; Fetch_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function FetchManyAsyncContext(parser, ctx) { Fetch_statementContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.xstart = null; // ExpressionContext; this.xstop = null; // ExpressionContext; this.predicate = null; // ExpressionContext; this.orderby = null; // Order_by_listContext; this.name = null; // Variable_identifierContext; this.stmts = null; // Statement_listContext; Fetch_statementContext.prototype.copyFrom.call(this, ctx); return this; } FetchManyAsyncContext.prototype = Object.create(Fetch_statementContext.prototype); FetchManyAsyncContext.prototype.constructor = FetchManyAsyncContext; EParser.FetchManyAsyncContext = FetchManyAsyncContext; FetchManyAsyncContext.prototype.FETCH = function() { return this.getToken(EParser.FETCH, 0); }; FetchManyAsyncContext.prototype.THEN = function() { return this.getToken(EParser.THEN, 0); }; FetchManyAsyncContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; FetchManyAsyncContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; FetchManyAsyncContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; FetchManyAsyncContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; FetchManyAsyncContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; FetchManyAsyncContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; FetchManyAsyncContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; FetchManyAsyncContext.prototype.ORDER = function() { return this.getToken(EParser.ORDER, 0); }; FetchManyAsyncContext.prototype.BY = function() { return this.getToken(EParser.BY, 0); }; FetchManyAsyncContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; FetchManyAsyncContext.prototype.TO = function() { return this.getToken(EParser.TO, 0); }; FetchManyAsyncContext.prototype.ROWS = function() { return this.getToken(EParser.ROWS, 0); }; FetchManyAsyncContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; FetchManyAsyncContext.prototype.order_by_list = function() { return this.getTypedRuleContext(Order_by_listContext,0); }; FetchManyAsyncContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; FetchManyAsyncContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchManyAsync(this); } }; FetchManyAsyncContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchManyAsync(this); } }; function FetchOneAsyncContext(parser, ctx) { Fetch_statementContext.call(this, parser); this.typ = null; // Mutable_category_typeContext; this.predicate = null; // ExpressionContext; this.name = null; // Variable_identifierContext; this.stmts = null; // Statement_listContext; Fetch_statementContext.prototype.copyFrom.call(this, ctx); return this; } FetchOneAsyncContext.prototype = Object.create(Fetch_statementContext.prototype); FetchOneAsyncContext.prototype.constructor = FetchOneAsyncContext; EParser.FetchOneAsyncContext = FetchOneAsyncContext; FetchOneAsyncContext.prototype.FETCH = function() { return this.getToken(EParser.FETCH, 0); }; FetchOneAsyncContext.prototype.ONE = function() { return this.getToken(EParser.ONE, 0); }; FetchOneAsyncContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; FetchOneAsyncContext.prototype.THEN = function() { return this.getToken(EParser.THEN, 0); }; FetchOneAsyncContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; FetchOneAsyncContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; FetchOneAsyncContext.prototype.indent = function() { return this.getTypedRuleContext(IndentContext,0); }; FetchOneAsyncContext.prototype.dedent = function() { return this.getTypedRuleContext(DedentContext,0); }; FetchOneAsyncContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; FetchOneAsyncContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; FetchOneAsyncContext.prototype.statement_list = function() { return this.getTypedRuleContext(Statement_listContext,0); }; FetchOneAsyncContext.prototype.mutable_category_type = function() { return this.getTypedRuleContext(Mutable_category_typeContext,0); }; FetchOneAsyncContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFetchOneAsync(this); } }; FetchOneAsyncContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFetchOneAsync(this); } }; EParser.Fetch_statementContext = Fetch_statementContext; EParser.prototype.fetch_statement = function() { var localctx = new Fetch_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 120, EParser.RULE_fetch_statement); var _la = 0; // Token type try { this.state = 1491; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); switch(la_) { case 1: localctx = new FetchOneAsyncContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1439; this.match(EParser.FETCH); this.state = 1440; this.match(EParser.ONE); this.state = 1442; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE || _la===EParser.TYPE_IDENTIFIER) { this.state = 1441; localctx.typ = this.mutable_category_type(); } this.state = 1444; this.match(EParser.WHERE); this.state = 1445; localctx.predicate = this.expression(0); this.state = 1446; this.match(EParser.THEN); this.state = 1447; this.match(EParser.WITH); this.state = 1448; localctx.name = this.variable_identifier(); this.state = 1449; this.match(EParser.COLON); this.state = 1450; this.indent(); this.state = 1451; localctx.stmts = this.statement_list(); this.state = 1452; this.dedent(); break; case 2: localctx = new FetchManyAsyncContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1454; this.match(EParser.FETCH); this.state = 1472; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.ALL: this.state = 1455; this.match(EParser.ALL); this.state = 1457; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE || _la===EParser.TYPE_IDENTIFIER) { this.state = 1456; localctx.typ = this.mutable_category_type(); } break; case EParser.MUTABLE: case EParser.TYPE_IDENTIFIER: this.state = 1459; localctx.typ = this.mutable_category_type(); this.state = 1461; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.ROWS) { this.state = 1460; this.match(EParser.ROWS); } this.state = 1463; localctx.xstart = this.expression(0); this.state = 1464; this.match(EParser.TO); this.state = 1465; localctx.xstop = this.expression(0); break; case EParser.ROWS: this.state = 1467; this.match(EParser.ROWS); this.state = 1468; localctx.xstart = this.expression(0); this.state = 1469; this.match(EParser.TO); this.state = 1470; localctx.xstop = this.expression(0); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 1476; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.WHERE) { this.state = 1474; this.match(EParser.WHERE); this.state = 1475; localctx.predicate = this.expression(0); } this.state = 1481; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.ORDER) { this.state = 1478; this.match(EParser.ORDER); this.state = 1479; this.match(EParser.BY); this.state = 1480; localctx.orderby = this.order_by_list(); } this.state = 1483; this.match(EParser.THEN); this.state = 1484; this.match(EParser.WITH); this.state = 1485; localctx.name = this.variable_identifier(); this.state = 1486; this.match(EParser.COLON); this.state = 1487; this.indent(); this.state = 1488; localctx.stmts = this.statement_list(); this.state = 1489; this.dedent(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Sorted_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_sorted_expression; this.source = null; // Instance_expressionContext this.key = null; // Instance_expressionContext return this; } Sorted_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Sorted_expressionContext.prototype.constructor = Sorted_expressionContext; Sorted_expressionContext.prototype.SORTED = function() { return this.getToken(EParser.SORTED, 0); }; Sorted_expressionContext.prototype.instance_expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Instance_expressionContext); } else { return this.getTypedRuleContext(Instance_expressionContext,i); } }; Sorted_expressionContext.prototype.DESC = function() { return this.getToken(EParser.DESC, 0); }; Sorted_expressionContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; Sorted_expressionContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Sorted_expressionContext.prototype.key_token = function() { return this.getTypedRuleContext(Key_tokenContext,0); }; Sorted_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSorted_expression(this); } }; Sorted_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSorted_expression(this); } }; EParser.Sorted_expressionContext = Sorted_expressionContext; EParser.prototype.sorted_expression = function() { var localctx = new Sorted_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 122, EParser.RULE_sorted_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1493; this.match(EParser.SORTED); this.state = 1495; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.DESC) { this.state = 1494; this.match(EParser.DESC); } this.state = 1497; localctx.source = this.instance_expression(0); this.state = 1503; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,91,this._ctx); if(la_===1) { this.state = 1498; this.match(EParser.WITH); this.state = 1499; localctx.key = this.instance_expression(0); this.state = 1500; this.match(EParser.AS); this.state = 1501; this.key_token(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Argument_assignment_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_argument_assignment_list; return this; } Argument_assignment_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Argument_assignment_listContext.prototype.constructor = Argument_assignment_listContext; Argument_assignment_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ArgumentAssignmentListExpressionContext(parser, ctx) { Argument_assignment_listContext.call(this, parser); this.exp = null; // ExpressionContext; this.items = null; // With_argument_assignment_listContext; this.item = null; // Argument_assignmentContext; Argument_assignment_listContext.prototype.copyFrom.call(this, ctx); return this; } ArgumentAssignmentListExpressionContext.prototype = Object.create(Argument_assignment_listContext.prototype); ArgumentAssignmentListExpressionContext.prototype.constructor = ArgumentAssignmentListExpressionContext; EParser.ArgumentAssignmentListExpressionContext = ArgumentAssignmentListExpressionContext; ArgumentAssignmentListExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ArgumentAssignmentListExpressionContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; ArgumentAssignmentListExpressionContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; ArgumentAssignmentListExpressionContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ArgumentAssignmentListExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgumentAssignmentListExpression(this); } }; ArgumentAssignmentListExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgumentAssignmentListExpression(this); } }; function ArgumentAssignmentListNoExpressionContext(parser, ctx) { Argument_assignment_listContext.call(this, parser); this.items = null; // With_argument_assignment_listContext; this.item = null; // Argument_assignmentContext; Argument_assignment_listContext.prototype.copyFrom.call(this, ctx); return this; } ArgumentAssignmentListNoExpressionContext.prototype = Object.create(Argument_assignment_listContext.prototype); ArgumentAssignmentListNoExpressionContext.prototype.constructor = ArgumentAssignmentListNoExpressionContext; EParser.ArgumentAssignmentListNoExpressionContext = ArgumentAssignmentListNoExpressionContext; ArgumentAssignmentListNoExpressionContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; ArgumentAssignmentListNoExpressionContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; ArgumentAssignmentListNoExpressionContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ArgumentAssignmentListNoExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgumentAssignmentListNoExpression(this); } }; ArgumentAssignmentListNoExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgumentAssignmentListNoExpression(this); } }; EParser.Argument_assignment_listContext = Argument_assignment_listContext; EParser.prototype.argument_assignment_list = function() { var localctx = new Argument_assignment_listContext(this, this._ctx, this.state); this.enterRule(localctx, 124, EParser.RULE_argument_assignment_list); try { this.state = 1519; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,95,this._ctx); switch(la_) { case 1: localctx = new ArgumentAssignmentListExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1505; if (!( this.was(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.was(EParser.WS)"); } this.state = 1506; localctx.exp = this.expression(0); this.state = 1512; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,93,this._ctx); if(la_===1) { this.state = 1507; localctx.items = this.with_argument_assignment_list(0); this.state = 1510; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,92,this._ctx); if(la_===1) { this.state = 1508; this.match(EParser.AND); this.state = 1509; localctx.item = this.argument_assignment(); } } break; case 2: localctx = new ArgumentAssignmentListNoExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1514; localctx.items = this.with_argument_assignment_list(0); this.state = 1517; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,94,this._ctx); if(la_===1) { this.state = 1515; this.match(EParser.AND); this.state = 1516; localctx.item = this.argument_assignment(); } break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function With_argument_assignment_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_with_argument_assignment_list; return this; } With_argument_assignment_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); With_argument_assignment_listContext.prototype.constructor = With_argument_assignment_listContext; With_argument_assignment_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ArgumentAssignmentListContext(parser, ctx) { With_argument_assignment_listContext.call(this, parser); this.item = null; // Argument_assignmentContext; With_argument_assignment_listContext.prototype.copyFrom.call(this, ctx); return this; } ArgumentAssignmentListContext.prototype = Object.create(With_argument_assignment_listContext.prototype); ArgumentAssignmentListContext.prototype.constructor = ArgumentAssignmentListContext; EParser.ArgumentAssignmentListContext = ArgumentAssignmentListContext; ArgumentAssignmentListContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; ArgumentAssignmentListContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ArgumentAssignmentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgumentAssignmentList(this); } }; ArgumentAssignmentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgumentAssignmentList(this); } }; function ArgumentAssignmentListItemContext(parser, ctx) { With_argument_assignment_listContext.call(this, parser); this.items = null; // With_argument_assignment_listContext; this.item = null; // Argument_assignmentContext; With_argument_assignment_listContext.prototype.copyFrom.call(this, ctx); return this; } ArgumentAssignmentListItemContext.prototype = Object.create(With_argument_assignment_listContext.prototype); ArgumentAssignmentListItemContext.prototype.constructor = ArgumentAssignmentListItemContext; EParser.ArgumentAssignmentListItemContext = ArgumentAssignmentListItemContext; ArgumentAssignmentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; ArgumentAssignmentListItemContext.prototype.with_argument_assignment_list = function() { return this.getTypedRuleContext(With_argument_assignment_listContext,0); }; ArgumentAssignmentListItemContext.prototype.argument_assignment = function() { return this.getTypedRuleContext(Argument_assignmentContext,0); }; ArgumentAssignmentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgumentAssignmentListItem(this); } }; ArgumentAssignmentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgumentAssignmentListItem(this); } }; EParser.prototype.with_argument_assignment_list = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new With_argument_assignment_listContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 126; this.enterRecursionRule(localctx, 126, EParser.RULE_with_argument_assignment_list, _p); try { this.enterOuterAlt(localctx, 1); localctx = new ArgumentAssignmentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1522; this.match(EParser.WITH); this.state = 1523; localctx.item = this.argument_assignment(); this._ctx.stop = this._input.LT(-1); this.state = 1530; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,96,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new ArgumentAssignmentListItemContext(this, new With_argument_assignment_listContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_with_argument_assignment_list); this.state = 1525; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1526; this.match(EParser.COMMA); this.state = 1527; localctx.item = this.argument_assignment(); } this.state = 1532; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,96,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Argument_assignmentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_argument_assignment; this.exp = null; // ExpressionContext this.name = null; // Variable_identifierContext return this; } Argument_assignmentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Argument_assignmentContext.prototype.constructor = Argument_assignmentContext; Argument_assignmentContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Argument_assignmentContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; Argument_assignmentContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Argument_assignmentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgument_assignment(this); } }; Argument_assignmentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgument_assignment(this); } }; EParser.Argument_assignmentContext = Argument_assignmentContext; EParser.prototype.argument_assignment = function() { var localctx = new Argument_assignmentContext(this, this._ctx, this.state); this.enterRule(localctx, 128, EParser.RULE_argument_assignment); try { this.enterOuterAlt(localctx, 1); this.state = 1536; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,97,this._ctx); if(la_===1) { this.state = 1533; localctx.exp = this.expression(0); this.state = 1534; this.match(EParser.AS); } this.state = 1538; localctx.name = this.variable_identifier(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Assign_instance_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assign_instance_statement; this.inst = null; // Assignable_instanceContext this.exp = null; // ExpressionContext return this; } Assign_instance_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Assign_instance_statementContext.prototype.constructor = Assign_instance_statementContext; Assign_instance_statementContext.prototype.assign = function() { return this.getTypedRuleContext(AssignContext,0); }; Assign_instance_statementContext.prototype.assignable_instance = function() { return this.getTypedRuleContext(Assignable_instanceContext,0); }; Assign_instance_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Assign_instance_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssign_instance_statement(this); } }; Assign_instance_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssign_instance_statement(this); } }; EParser.Assign_instance_statementContext = Assign_instance_statementContext; EParser.prototype.assign_instance_statement = function() { var localctx = new Assign_instance_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 130, EParser.RULE_assign_instance_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1540; localctx.inst = this.assignable_instance(0); this.state = 1541; this.assign(); this.state = 1542; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Child_instanceContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_child_instance; return this; } Child_instanceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Child_instanceContext.prototype.constructor = Child_instanceContext; Child_instanceContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function MemberInstanceContext(parser, ctx) { Child_instanceContext.call(this, parser); this.name = null; // Variable_identifierContext; Child_instanceContext.prototype.copyFrom.call(this, ctx); return this; } MemberInstanceContext.prototype = Object.create(Child_instanceContext.prototype); MemberInstanceContext.prototype.constructor = MemberInstanceContext; EParser.MemberInstanceContext = MemberInstanceContext; MemberInstanceContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; MemberInstanceContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; MemberInstanceContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMemberInstance(this); } }; MemberInstanceContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMemberInstance(this); } }; function ItemInstanceContext(parser, ctx) { Child_instanceContext.call(this, parser); this.exp = null; // ExpressionContext; Child_instanceContext.prototype.copyFrom.call(this, ctx); return this; } ItemInstanceContext.prototype = Object.create(Child_instanceContext.prototype); ItemInstanceContext.prototype.constructor = ItemInstanceContext; EParser.ItemInstanceContext = ItemInstanceContext; ItemInstanceContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; ItemInstanceContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; ItemInstanceContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; ItemInstanceContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterItemInstance(this); } }; ItemInstanceContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitItemInstance(this); } }; EParser.Child_instanceContext = Child_instanceContext; EParser.prototype.child_instance = function() { var localctx = new Child_instanceContext(this, this._ctx, this.state); this.enterRule(localctx, 132, EParser.RULE_child_instance); try { this.state = 1552; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); switch(la_) { case 1: localctx = new MemberInstanceContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1544; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1545; this.match(EParser.DOT); this.state = 1546; localctx.name = this.variable_identifier(); break; case 2: localctx = new ItemInstanceContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1547; if (!( this.wasNot(EParser.WS))) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNot(EParser.WS)"); } this.state = 1548; this.match(EParser.LBRAK); this.state = 1549; localctx.exp = this.expression(0); this.state = 1550; this.match(EParser.RBRAK); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Assign_tuple_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assign_tuple_statement; this.items = null; // Variable_identifier_listContext this.exp = null; // ExpressionContext return this; } Assign_tuple_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Assign_tuple_statementContext.prototype.constructor = Assign_tuple_statementContext; Assign_tuple_statementContext.prototype.assign = function() { return this.getTypedRuleContext(AssignContext,0); }; Assign_tuple_statementContext.prototype.variable_identifier_list = function() { return this.getTypedRuleContext(Variable_identifier_listContext,0); }; Assign_tuple_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Assign_tuple_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssign_tuple_statement(this); } }; Assign_tuple_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssign_tuple_statement(this); } }; EParser.Assign_tuple_statementContext = Assign_tuple_statementContext; EParser.prototype.assign_tuple_statement = function() { var localctx = new Assign_tuple_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 134, EParser.RULE_assign_tuple_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1554; localctx.items = this.variable_identifier_list(); this.state = 1555; this.assign(); this.state = 1556; localctx.exp = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function LfsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_lfs; return this; } LfsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); LfsContext.prototype.constructor = LfsContext; LfsContext.prototype.LF = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LF); } else { return this.getToken(EParser.LF, i); } }; LfsContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLfs(this); } }; LfsContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLfs(this); } }; EParser.LfsContext = LfsContext; EParser.prototype.lfs = function() { var localctx = new LfsContext(this, this._ctx, this.state); this.enterRule(localctx, 136, EParser.RULE_lfs); try { this.enterOuterAlt(localctx, 1); this.state = 1561; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,99,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1558; this.match(EParser.LF); } this.state = 1563; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,99,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function LfpContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_lfp; return this; } LfpContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); LfpContext.prototype.constructor = LfpContext; LfpContext.prototype.LF = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LF); } else { return this.getToken(EParser.LF, i); } }; LfpContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLfp(this); } }; LfpContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLfp(this); } }; EParser.LfpContext = LfpContext; EParser.prototype.lfp = function() { var localctx = new LfpContext(this, this._ctx, this.state); this.enterRule(localctx, 138, EParser.RULE_lfp); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1565; this._errHandler.sync(this); _la = this._input.LA(1); do { this.state = 1564; this.match(EParser.LF); this.state = 1567; this._errHandler.sync(this); _la = this._input.LA(1); } while(_la===EParser.LF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_wsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_ws; return this; } Jsx_wsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_wsContext.prototype.constructor = Jsx_wsContext; Jsx_wsContext.prototype.LF = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LF); } else { return this.getToken(EParser.LF, i); } }; Jsx_wsContext.prototype.TAB = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.TAB); } else { return this.getToken(EParser.TAB, i); } }; Jsx_wsContext.prototype.WS = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.WS); } else { return this.getToken(EParser.WS, i); } }; Jsx_wsContext.prototype.INDENT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.INDENT); } else { return this.getToken(EParser.INDENT, i); } }; Jsx_wsContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_ws(this); } }; Jsx_wsContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_ws(this); } }; EParser.Jsx_wsContext = Jsx_wsContext; EParser.prototype.jsx_ws = function() { var localctx = new Jsx_wsContext(this, this._ctx, this.state); this.enterRule(localctx, 140, EParser.RULE_jsx_ws); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1572; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.INDENT) | (1 << EParser.LF) | (1 << EParser.TAB) | (1 << EParser.WS))) !== 0)) { this.state = 1569; _la = this._input.LA(1); if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.INDENT) | (1 << EParser.LF) | (1 << EParser.TAB) | (1 << EParser.WS))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } this.state = 1574; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function IndentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_indent; return this; } IndentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); IndentContext.prototype.constructor = IndentContext; IndentContext.prototype.INDENT = function() { return this.getToken(EParser.INDENT, 0); }; IndentContext.prototype.LF = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LF); } else { return this.getToken(EParser.LF, i); } }; IndentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIndent(this); } }; IndentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIndent(this); } }; EParser.IndentContext = IndentContext; EParser.prototype.indent = function() { var localctx = new IndentContext(this, this._ctx, this.state); this.enterRule(localctx, 142, EParser.RULE_indent); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1576; this._errHandler.sync(this); _la = this._input.LA(1); do { this.state = 1575; this.match(EParser.LF); this.state = 1578; this._errHandler.sync(this); _la = this._input.LA(1); } while(_la===EParser.LF); this.state = 1580; this.match(EParser.INDENT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DedentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_dedent; return this; } DedentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DedentContext.prototype.constructor = DedentContext; DedentContext.prototype.DEDENT = function() { return this.getToken(EParser.DEDENT, 0); }; DedentContext.prototype.LF = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LF); } else { return this.getToken(EParser.LF, i); } }; DedentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDedent(this); } }; DedentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDedent(this); } }; EParser.DedentContext = DedentContext; EParser.prototype.dedent = function() { var localctx = new DedentContext(this, this._ctx, this.state); this.enterRule(localctx, 144, EParser.RULE_dedent); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1585; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.LF) { this.state = 1582; this.match(EParser.LF); this.state = 1587; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 1588; this.match(EParser.DEDENT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Null_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_null_literal; return this; } Null_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Null_literalContext.prototype.constructor = Null_literalContext; Null_literalContext.prototype.NOTHING = function() { return this.getToken(EParser.NOTHING, 0); }; Null_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNull_literal(this); } }; Null_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNull_literal(this); } }; EParser.Null_literalContext = Null_literalContext; EParser.prototype.null_literal = function() { var localctx = new Null_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 146, EParser.RULE_null_literal); try { this.enterOuterAlt(localctx, 1); this.state = 1590; this.match(EParser.NOTHING); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Declaration_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_declaration_list; return this; } Declaration_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Declaration_listContext.prototype.constructor = Declaration_listContext; Declaration_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function FullDeclarationListContext(parser, ctx) { Declaration_listContext.call(this, parser); Declaration_listContext.prototype.copyFrom.call(this, ctx); return this; } FullDeclarationListContext.prototype = Object.create(Declaration_listContext.prototype); FullDeclarationListContext.prototype.constructor = FullDeclarationListContext; EParser.FullDeclarationListContext = FullDeclarationListContext; FullDeclarationListContext.prototype.lfs = function() { return this.getTypedRuleContext(LfsContext,0); }; FullDeclarationListContext.prototype.EOF = function() { return this.getToken(EParser.EOF, 0); }; FullDeclarationListContext.prototype.declarations = function() { return this.getTypedRuleContext(DeclarationsContext,0); }; FullDeclarationListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterFullDeclarationList(this); } }; FullDeclarationListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitFullDeclarationList(this); } }; EParser.Declaration_listContext = Declaration_listContext; EParser.prototype.declaration_list = function() { var localctx = new Declaration_listContext(this, this._ctx, this.state); this.enterRule(localctx, 148, EParser.RULE_declaration_list); var _la = 0; // Token type try { localctx = new FullDeclarationListContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1593; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.COMMENT || _la===EParser.DEFINE || _la===EParser.ARONDBASE_IDENTIFIER) { this.state = 1592; this.declarations(); } this.state = 1595; this.lfs(); this.state = 1596; this.match(EParser.EOF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DeclarationsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_declarations; return this; } DeclarationsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DeclarationsContext.prototype.constructor = DeclarationsContext; DeclarationsContext.prototype.declaration = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DeclarationContext); } else { return this.getTypedRuleContext(DeclarationContext,i); } }; DeclarationsContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; DeclarationsContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDeclarations(this); } }; DeclarationsContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDeclarations(this); } }; EParser.DeclarationsContext = DeclarationsContext; EParser.prototype.declarations = function() { var localctx = new DeclarationsContext(this, this._ctx, this.state); this.enterRule(localctx, 150, EParser.RULE_declarations); try { this.enterOuterAlt(localctx, 1); this.state = 1598; this.declaration(); this.state = 1604; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,105,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1599; this.lfp(); this.state = 1600; this.declaration(); } this.state = 1606; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,105,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DeclarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_declaration; return this; } DeclarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DeclarationContext.prototype.constructor = DeclarationContext; DeclarationContext.prototype.attribute_declaration = function() { return this.getTypedRuleContext(Attribute_declarationContext,0); }; DeclarationContext.prototype.category_declaration = function() { return this.getTypedRuleContext(Category_declarationContext,0); }; DeclarationContext.prototype.resource_declaration = function() { return this.getTypedRuleContext(Resource_declarationContext,0); }; DeclarationContext.prototype.enum_declaration = function() { return this.getTypedRuleContext(Enum_declarationContext,0); }; DeclarationContext.prototype.widget_declaration = function() { return this.getTypedRuleContext(Widget_declarationContext,0); }; DeclarationContext.prototype.method_declaration = function() { return this.getTypedRuleContext(Method_declarationContext,0); }; DeclarationContext.prototype.comment_statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Comment_statementContext); } else { return this.getTypedRuleContext(Comment_statementContext,i); } }; DeclarationContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; DeclarationContext.prototype.annotation_constructor = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Annotation_constructorContext); } else { return this.getTypedRuleContext(Annotation_constructorContext,i); } }; DeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDeclaration(this); } }; DeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDeclaration(this); } }; EParser.DeclarationContext = DeclarationContext; EParser.prototype.declaration = function() { var localctx = new DeclarationContext(this, this._ctx, this.state); this.enterRule(localctx, 152, EParser.RULE_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1612; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMENT) { this.state = 1607; this.comment_statement(); this.state = 1608; this.lfp(); this.state = 1614; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 1620; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.ARONDBASE_IDENTIFIER) { this.state = 1615; this.annotation_constructor(); this.state = 1616; this.lfp(); this.state = 1622; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 1629; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,108,this._ctx); switch(la_) { case 1: this.state = 1623; this.attribute_declaration(); break; case 2: this.state = 1624; this.category_declaration(); break; case 3: this.state = 1625; this.resource_declaration(); break; case 4: this.state = 1626; this.enum_declaration(); break; case 5: this.state = 1627; this.widget_declaration(); break; case 6: this.state = 1628; this.method_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Annotation_constructorContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_annotation_constructor; this.name = null; // Annotation_identifierContext this.exp = null; // Literal_expressionContext return this; } Annotation_constructorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Annotation_constructorContext.prototype.constructor = Annotation_constructorContext; Annotation_constructorContext.prototype.annotation_identifier = function() { return this.getTypedRuleContext(Annotation_identifierContext,0); }; Annotation_constructorContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Annotation_constructorContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Annotation_constructorContext.prototype.literal_expression = function() { return this.getTypedRuleContext(Literal_expressionContext,0); }; Annotation_constructorContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAnnotation_constructor(this); } }; Annotation_constructorContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAnnotation_constructor(this); } }; EParser.Annotation_constructorContext = Annotation_constructorContext; EParser.prototype.annotation_constructor = function() { var localctx = new Annotation_constructorContext(this, this._ctx, this.state); this.enterRule(localctx, 154, EParser.RULE_annotation_constructor); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1631; localctx.name = this.annotation_identifier(); this.state = 1636; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.LPAR) { this.state = 1632; this.match(EParser.LPAR); this.state = 1633; localctx.exp = this.literal_expression(); this.state = 1634; this.match(EParser.RPAR); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Annotation_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_annotation_identifier; return this; } Annotation_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Annotation_identifierContext.prototype.constructor = Annotation_identifierContext; Annotation_identifierContext.prototype.ARONDBASE_IDENTIFIER = function() { return this.getToken(EParser.ARONDBASE_IDENTIFIER, 0); }; Annotation_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAnnotation_identifier(this); } }; Annotation_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAnnotation_identifier(this); } }; EParser.Annotation_identifierContext = Annotation_identifierContext; EParser.prototype.annotation_identifier = function() { var localctx = new Annotation_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 156, EParser.RULE_annotation_identifier); try { this.enterOuterAlt(localctx, 1); this.state = 1638; this.match(EParser.ARONDBASE_IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Resource_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_resource_declaration; return this; } Resource_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Resource_declarationContext.prototype.constructor = Resource_declarationContext; Resource_declarationContext.prototype.native_resource_declaration = function() { return this.getTypedRuleContext(Native_resource_declarationContext,0); }; Resource_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterResource_declaration(this); } }; Resource_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitResource_declaration(this); } }; EParser.Resource_declarationContext = Resource_declarationContext; EParser.prototype.resource_declaration = function() { var localctx = new Resource_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 158, EParser.RULE_resource_declaration); try { this.enterOuterAlt(localctx, 1); this.state = 1640; this.native_resource_declaration(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Enum_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_enum_declaration; return this; } Enum_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Enum_declarationContext.prototype.constructor = Enum_declarationContext; Enum_declarationContext.prototype.enum_category_declaration = function() { return this.getTypedRuleContext(Enum_category_declarationContext,0); }; Enum_declarationContext.prototype.enum_native_declaration = function() { return this.getTypedRuleContext(Enum_native_declarationContext,0); }; Enum_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterEnum_declaration(this); } }; Enum_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitEnum_declaration(this); } }; EParser.Enum_declarationContext = Enum_declarationContext; EParser.prototype.enum_declaration = function() { var localctx = new Enum_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 160, EParser.RULE_enum_declaration); try { this.state = 1644; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,110,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 1642; this.enum_category_declaration(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 1643; this.enum_native_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_symbol_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_symbol_list; return this; } Native_symbol_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_symbol_listContext.prototype.constructor = Native_symbol_listContext; Native_symbol_listContext.prototype.native_symbol = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Native_symbolContext); } else { return this.getTypedRuleContext(Native_symbolContext,i); } }; Native_symbol_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Native_symbol_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_symbol_list(this); } }; Native_symbol_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_symbol_list(this); } }; EParser.Native_symbol_listContext = Native_symbol_listContext; EParser.prototype.native_symbol_list = function() { var localctx = new Native_symbol_listContext(this, this._ctx, this.state); this.enterRule(localctx, 162, EParser.RULE_native_symbol_list); try { this.enterOuterAlt(localctx, 1); this.state = 1646; this.native_symbol(); this.state = 1652; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,111,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1647; this.lfp(); this.state = 1648; this.native_symbol(); } this.state = 1654; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,111,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Category_symbol_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_category_symbol_list; return this; } Category_symbol_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Category_symbol_listContext.prototype.constructor = Category_symbol_listContext; Category_symbol_listContext.prototype.category_symbol = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Category_symbolContext); } else { return this.getTypedRuleContext(Category_symbolContext,i); } }; Category_symbol_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Category_symbol_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCategory_symbol_list(this); } }; Category_symbol_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCategory_symbol_list(this); } }; EParser.Category_symbol_listContext = Category_symbol_listContext; EParser.prototype.category_symbol_list = function() { var localctx = new Category_symbol_listContext(this, this._ctx, this.state); this.enterRule(localctx, 164, EParser.RULE_category_symbol_list); try { this.enterOuterAlt(localctx, 1); this.state = 1655; this.category_symbol(); this.state = 1661; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,112,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1656; this.lfp(); this.state = 1657; this.category_symbol(); } this.state = 1663; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,112,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Symbol_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_symbol_list; return this; } Symbol_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Symbol_listContext.prototype.constructor = Symbol_listContext; Symbol_listContext.prototype.symbol_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Symbol_identifierContext); } else { return this.getTypedRuleContext(Symbol_identifierContext,i); } }; Symbol_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Symbol_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSymbol_list(this); } }; Symbol_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSymbol_list(this); } }; EParser.Symbol_listContext = Symbol_listContext; EParser.prototype.symbol_list = function() { var localctx = new Symbol_listContext(this, this._ctx, this.state); this.enterRule(localctx, 166, EParser.RULE_symbol_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1664; this.symbol_identifier(); this.state = 1669; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 1665; this.match(EParser.COMMA); this.state = 1666; this.symbol_identifier(); this.state = 1671; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Attribute_constraintContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_attribute_constraint; return this; } Attribute_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Attribute_constraintContext.prototype.constructor = Attribute_constraintContext; Attribute_constraintContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function MatchingSetContext(parser, ctx) { Attribute_constraintContext.call(this, parser); this.source = null; // Set_literalContext; Attribute_constraintContext.prototype.copyFrom.call(this, ctx); return this; } MatchingSetContext.prototype = Object.create(Attribute_constraintContext.prototype); MatchingSetContext.prototype.constructor = MatchingSetContext; EParser.MatchingSetContext = MatchingSetContext; MatchingSetContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; MatchingSetContext.prototype.set_literal = function() { return this.getTypedRuleContext(Set_literalContext,0); }; MatchingSetContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMatchingSet(this); } }; MatchingSetContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMatchingSet(this); } }; function MatchingPatternContext(parser, ctx) { Attribute_constraintContext.call(this, parser); this.text = null; // Token; Attribute_constraintContext.prototype.copyFrom.call(this, ctx); return this; } MatchingPatternContext.prototype = Object.create(Attribute_constraintContext.prototype); MatchingPatternContext.prototype.constructor = MatchingPatternContext; EParser.MatchingPatternContext = MatchingPatternContext; MatchingPatternContext.prototype.MATCHING = function() { return this.getToken(EParser.MATCHING, 0); }; MatchingPatternContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; MatchingPatternContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMatchingPattern(this); } }; MatchingPatternContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMatchingPattern(this); } }; function MatchingListContext(parser, ctx) { Attribute_constraintContext.call(this, parser); this.source = null; // List_literalContext; Attribute_constraintContext.prototype.copyFrom.call(this, ctx); return this; } MatchingListContext.prototype = Object.create(Attribute_constraintContext.prototype); MatchingListContext.prototype.constructor = MatchingListContext; EParser.MatchingListContext = MatchingListContext; MatchingListContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; MatchingListContext.prototype.list_literal = function() { return this.getTypedRuleContext(List_literalContext,0); }; MatchingListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMatchingList(this); } }; MatchingListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMatchingList(this); } }; function MatchingRangeContext(parser, ctx) { Attribute_constraintContext.call(this, parser); this.source = null; // Range_literalContext; Attribute_constraintContext.prototype.copyFrom.call(this, ctx); return this; } MatchingRangeContext.prototype = Object.create(Attribute_constraintContext.prototype); MatchingRangeContext.prototype.constructor = MatchingRangeContext; EParser.MatchingRangeContext = MatchingRangeContext; MatchingRangeContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; MatchingRangeContext.prototype.range_literal = function() { return this.getTypedRuleContext(Range_literalContext,0); }; MatchingRangeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMatchingRange(this); } }; MatchingRangeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMatchingRange(this); } }; function MatchingExpressionContext(parser, ctx) { Attribute_constraintContext.call(this, parser); this.exp = null; // ExpressionContext; Attribute_constraintContext.prototype.copyFrom.call(this, ctx); return this; } MatchingExpressionContext.prototype = Object.create(Attribute_constraintContext.prototype); MatchingExpressionContext.prototype.constructor = MatchingExpressionContext; EParser.MatchingExpressionContext = MatchingExpressionContext; MatchingExpressionContext.prototype.MATCHING = function() { return this.getToken(EParser.MATCHING, 0); }; MatchingExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; MatchingExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMatchingExpression(this); } }; MatchingExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMatchingExpression(this); } }; EParser.Attribute_constraintContext = Attribute_constraintContext; EParser.prototype.attribute_constraint = function() { var localctx = new Attribute_constraintContext(this, this._ctx, this.state); this.enterRule(localctx, 168, EParser.RULE_attribute_constraint); try { this.state = 1682; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,114,this._ctx); switch(la_) { case 1: localctx = new MatchingListContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1672; this.match(EParser.IN); this.state = 1673; localctx.source = this.list_literal(); break; case 2: localctx = new MatchingSetContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1674; this.match(EParser.IN); this.state = 1675; localctx.source = this.set_literal(); break; case 3: localctx = new MatchingRangeContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1676; this.match(EParser.IN); this.state = 1677; localctx.source = this.range_literal(); break; case 4: localctx = new MatchingPatternContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 1678; this.match(EParser.MATCHING); this.state = 1679; localctx.text = this.match(EParser.TEXT_LITERAL); break; case 5: localctx = new MatchingExpressionContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 1680; this.match(EParser.MATCHING); this.state = 1681; localctx.exp = this.expression(0); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function List_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_list_literal; return this; } List_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); List_literalContext.prototype.constructor = List_literalContext; List_literalContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; List_literalContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; List_literalContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; List_literalContext.prototype.expression_list = function() { return this.getTypedRuleContext(Expression_listContext,0); }; List_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterList_literal(this); } }; List_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitList_literal(this); } }; EParser.List_literalContext = List_literalContext; EParser.prototype.list_literal = function() { var localctx = new List_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 170, EParser.RULE_list_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1685; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 1684; this.match(EParser.MUTABLE); } this.state = 1687; this.match(EParser.LBRAK); this.state = 1689; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 1688; this.expression_list(); } this.state = 1691; this.match(EParser.RBRAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Set_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_set_literal; return this; } Set_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Set_literalContext.prototype.constructor = Set_literalContext; Set_literalContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Set_literalContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Set_literalContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; Set_literalContext.prototype.expression_list = function() { return this.getTypedRuleContext(Expression_listContext,0); }; Set_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSet_literal(this); } }; Set_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSet_literal(this); } }; EParser.Set_literalContext = Set_literalContext; EParser.prototype.set_literal = function() { var localctx = new Set_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 172, EParser.RULE_set_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1694; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 1693; this.match(EParser.MUTABLE); } this.state = 1696; this.match(EParser.LT); this.state = 1698; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 1697; this.expression_list(); } this.state = 1700; this.match(EParser.GT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Expression_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_expression_list; return this; } Expression_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Expression_listContext.prototype.constructor = Expression_listContext; Expression_listContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; Expression_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Expression_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterExpression_list(this); } }; Expression_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitExpression_list(this); } }; EParser.Expression_listContext = Expression_listContext; EParser.prototype.expression_list = function() { var localctx = new Expression_listContext(this, this._ctx, this.state); this.enterRule(localctx, 174, EParser.RULE_expression_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1702; this.expression(0); this.state = 1707; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 1703; this.match(EParser.COMMA); this.state = 1704; this.expression(0); this.state = 1709; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Range_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_range_literal; this.low = null; // ExpressionContext this.high = null; // ExpressionContext return this; } Range_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Range_literalContext.prototype.constructor = Range_literalContext; Range_literalContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; Range_literalContext.prototype.RANGE = function() { return this.getToken(EParser.RANGE, 0); }; Range_literalContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; Range_literalContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; Range_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRange_literal(this); } }; Range_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRange_literal(this); } }; EParser.Range_literalContext = Range_literalContext; EParser.prototype.range_literal = function() { var localctx = new Range_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 176, EParser.RULE_range_literal); try { this.enterOuterAlt(localctx, 1); this.state = 1710; this.match(EParser.LBRAK); this.state = 1711; localctx.low = this.expression(0); this.state = 1712; this.match(EParser.RANGE); this.state = 1713; localctx.high = this.expression(0); this.state = 1714; this.match(EParser.RBRAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function TypedefContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_typedef; return this; } TypedefContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); TypedefContext.prototype.constructor = TypedefContext; TypedefContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function IteratorTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.i = null; // TypedefContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } IteratorTypeContext.prototype = Object.create(TypedefContext.prototype); IteratorTypeContext.prototype.constructor = IteratorTypeContext; EParser.IteratorTypeContext = IteratorTypeContext; IteratorTypeContext.prototype.ITERATOR = function() { return this.getToken(EParser.ITERATOR, 0); }; IteratorTypeContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; IteratorTypeContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; IteratorTypeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; IteratorTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIteratorType(this); } }; IteratorTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIteratorType(this); } }; function SetTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.s = null; // TypedefContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } SetTypeContext.prototype = Object.create(TypedefContext.prototype); SetTypeContext.prototype.constructor = SetTypeContext; EParser.SetTypeContext = SetTypeContext; SetTypeContext.prototype.LTGT = function() { return this.getToken(EParser.LTGT, 0); }; SetTypeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; SetTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSetType(this); } }; SetTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSetType(this); } }; function ListTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.l = null; // TypedefContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } ListTypeContext.prototype = Object.create(TypedefContext.prototype); ListTypeContext.prototype.constructor = ListTypeContext; EParser.ListTypeContext = ListTypeContext; ListTypeContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; ListTypeContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; ListTypeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; ListTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterListType(this); } }; ListTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitListType(this); } }; function DictTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.d = null; // TypedefContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } DictTypeContext.prototype = Object.create(TypedefContext.prototype); DictTypeContext.prototype.constructor = DictTypeContext; EParser.DictTypeContext = DictTypeContext; DictTypeContext.prototype.LTCOLONGT = function() { return this.getToken(EParser.LTCOLONGT, 0); }; DictTypeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; DictTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDictType(this); } }; DictTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDictType(this); } }; function CursorTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.c = null; // TypedefContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } CursorTypeContext.prototype = Object.create(TypedefContext.prototype); CursorTypeContext.prototype.constructor = CursorTypeContext; EParser.CursorTypeContext = CursorTypeContext; CursorTypeContext.prototype.CURSOR = function() { return this.getToken(EParser.CURSOR, 0); }; CursorTypeContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; CursorTypeContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; CursorTypeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; CursorTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCursorType(this); } }; CursorTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCursorType(this); } }; function PrimaryTypeContext(parser, ctx) { TypedefContext.call(this, parser); this.p = null; // Primary_typeContext; TypedefContext.prototype.copyFrom.call(this, ctx); return this; } PrimaryTypeContext.prototype = Object.create(TypedefContext.prototype); PrimaryTypeContext.prototype.constructor = PrimaryTypeContext; EParser.PrimaryTypeContext = PrimaryTypeContext; PrimaryTypeContext.prototype.primary_type = function() { return this.getTypedRuleContext(Primary_typeContext,0); }; PrimaryTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPrimaryType(this); } }; PrimaryTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPrimaryType(this); } }; EParser.prototype.typedef = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new TypedefContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 178; this.enterRecursionRule(localctx, 178, EParser.RULE_typedef, _p); try { this.enterOuterAlt(localctx, 1); this.state = 1728; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.HTML: case EParser.TYPE_IDENTIFIER: localctx = new PrimaryTypeContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1717; localctx.p = this.primary_type(); break; case EParser.CURSOR: localctx = new CursorTypeContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1718; this.match(EParser.CURSOR); this.state = 1719; this.match(EParser.LT); this.state = 1720; localctx.c = this.typedef(0); this.state = 1721; this.match(EParser.GT); break; case EParser.ITERATOR: localctx = new IteratorTypeContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1723; this.match(EParser.ITERATOR); this.state = 1724; this.match(EParser.LT); this.state = 1725; localctx.i = this.typedef(0); this.state = 1726; this.match(EParser.GT); break; default: throw new antlr4.error.NoViableAltException(this); } this._ctx.stop = this._input.LT(-1); this.state = 1739; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,122,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; this.state = 1737; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,121,this._ctx); switch(la_) { case 1: localctx = new SetTypeContext(this, new TypedefContext(this, _parentctx, _parentState)); localctx.s = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_typedef); this.state = 1730; if (!( this.precpred(this._ctx, 5))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); } this.state = 1731; this.match(EParser.LTGT); break; case 2: localctx = new ListTypeContext(this, new TypedefContext(this, _parentctx, _parentState)); localctx.l = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_typedef); this.state = 1732; if (!( this.precpred(this._ctx, 4))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); } this.state = 1733; this.match(EParser.LBRAK); this.state = 1734; this.match(EParser.RBRAK); break; case 3: localctx = new DictTypeContext(this, new TypedefContext(this, _parentctx, _parentState)); localctx.d = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_typedef); this.state = 1735; if (!( this.precpred(this._ctx, 3))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); } this.state = 1736; this.match(EParser.LTCOLONGT); break; } } this.state = 1741; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,122,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Primary_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_primary_type; return this; } Primary_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Primary_typeContext.prototype.constructor = Primary_typeContext; Primary_typeContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function NativeTypeContext(parser, ctx) { Primary_typeContext.call(this, parser); this.n = null; // Native_typeContext; Primary_typeContext.prototype.copyFrom.call(this, ctx); return this; } NativeTypeContext.prototype = Object.create(Primary_typeContext.prototype); NativeTypeContext.prototype.constructor = NativeTypeContext; EParser.NativeTypeContext = NativeTypeContext; NativeTypeContext.prototype.native_type = function() { return this.getTypedRuleContext(Native_typeContext,0); }; NativeTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNativeType(this); } }; NativeTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNativeType(this); } }; function CategoryTypeContext(parser, ctx) { Primary_typeContext.call(this, parser); this.c = null; // Category_typeContext; Primary_typeContext.prototype.copyFrom.call(this, ctx); return this; } CategoryTypeContext.prototype = Object.create(Primary_typeContext.prototype); CategoryTypeContext.prototype.constructor = CategoryTypeContext; EParser.CategoryTypeContext = CategoryTypeContext; CategoryTypeContext.prototype.category_type = function() { return this.getTypedRuleContext(Category_typeContext,0); }; CategoryTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCategoryType(this); } }; CategoryTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCategoryType(this); } }; EParser.Primary_typeContext = Primary_typeContext; EParser.prototype.primary_type = function() { var localctx = new Primary_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 180, EParser.RULE_primary_type); try { this.state = 1744; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.HTML: localctx = new NativeTypeContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1742; localctx.n = this.native_type(); break; case EParser.TYPE_IDENTIFIER: localctx = new CategoryTypeContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1743; localctx.c = this.category_type(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_type; return this; } Native_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_typeContext.prototype.constructor = Native_typeContext; Native_typeContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PeriodTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } PeriodTypeContext.prototype = Object.create(Native_typeContext.prototype); PeriodTypeContext.prototype.constructor = PeriodTypeContext; EParser.PeriodTypeContext = PeriodTypeContext; PeriodTypeContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; PeriodTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPeriodType(this); } }; PeriodTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPeriodType(this); } }; function HtmlTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } HtmlTypeContext.prototype = Object.create(Native_typeContext.prototype); HtmlTypeContext.prototype.constructor = HtmlTypeContext; EParser.HtmlTypeContext = HtmlTypeContext; HtmlTypeContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; HtmlTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterHtmlType(this); } }; HtmlTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitHtmlType(this); } }; function BooleanTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } BooleanTypeContext.prototype = Object.create(Native_typeContext.prototype); BooleanTypeContext.prototype.constructor = BooleanTypeContext; EParser.BooleanTypeContext = BooleanTypeContext; BooleanTypeContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; BooleanTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBooleanType(this); } }; BooleanTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBooleanType(this); } }; function DocumentTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } DocumentTypeContext.prototype = Object.create(Native_typeContext.prototype); DocumentTypeContext.prototype.constructor = DocumentTypeContext; EParser.DocumentTypeContext = DocumentTypeContext; DocumentTypeContext.prototype.DOCUMENT = function() { return this.getToken(EParser.DOCUMENT, 0); }; DocumentTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDocumentType(this); } }; DocumentTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDocumentType(this); } }; function CharacterTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } CharacterTypeContext.prototype = Object.create(Native_typeContext.prototype); CharacterTypeContext.prototype.constructor = CharacterTypeContext; EParser.CharacterTypeContext = CharacterTypeContext; CharacterTypeContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; CharacterTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCharacterType(this); } }; CharacterTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCharacterType(this); } }; function VersionTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } VersionTypeContext.prototype = Object.create(Native_typeContext.prototype); VersionTypeContext.prototype.constructor = VersionTypeContext; EParser.VersionTypeContext = VersionTypeContext; VersionTypeContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; VersionTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterVersionType(this); } }; VersionTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitVersionType(this); } }; function TextTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } TextTypeContext.prototype = Object.create(Native_typeContext.prototype); TextTypeContext.prototype.constructor = TextTypeContext; EParser.TextTypeContext = TextTypeContext; TextTypeContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; TextTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTextType(this); } }; TextTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTextType(this); } }; function ImageTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } ImageTypeContext.prototype = Object.create(Native_typeContext.prototype); ImageTypeContext.prototype.constructor = ImageTypeContext; EParser.ImageTypeContext = ImageTypeContext; ImageTypeContext.prototype.IMAGE = function() { return this.getToken(EParser.IMAGE, 0); }; ImageTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterImageType(this); } }; ImageTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitImageType(this); } }; function TimeTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } TimeTypeContext.prototype = Object.create(Native_typeContext.prototype); TimeTypeContext.prototype.constructor = TimeTypeContext; EParser.TimeTypeContext = TimeTypeContext; TimeTypeContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; TimeTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTimeType(this); } }; TimeTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTimeType(this); } }; function IntegerTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } IntegerTypeContext.prototype = Object.create(Native_typeContext.prototype); IntegerTypeContext.prototype.constructor = IntegerTypeContext; EParser.IntegerTypeContext = IntegerTypeContext; IntegerTypeContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; IntegerTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIntegerType(this); } }; IntegerTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIntegerType(this); } }; function DateTimeTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } DateTimeTypeContext.prototype = Object.create(Native_typeContext.prototype); DateTimeTypeContext.prototype.constructor = DateTimeTypeContext; EParser.DateTimeTypeContext = DateTimeTypeContext; DateTimeTypeContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; DateTimeTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDateTimeType(this); } }; DateTimeTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDateTimeType(this); } }; function BlobTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } BlobTypeContext.prototype = Object.create(Native_typeContext.prototype); BlobTypeContext.prototype.constructor = BlobTypeContext; EParser.BlobTypeContext = BlobTypeContext; BlobTypeContext.prototype.BLOB = function() { return this.getToken(EParser.BLOB, 0); }; BlobTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBlobType(this); } }; BlobTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBlobType(this); } }; function UUIDTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } UUIDTypeContext.prototype = Object.create(Native_typeContext.prototype); UUIDTypeContext.prototype.constructor = UUIDTypeContext; EParser.UUIDTypeContext = UUIDTypeContext; UUIDTypeContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; UUIDTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUUIDType(this); } }; UUIDTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUUIDType(this); } }; function DecimalTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } DecimalTypeContext.prototype = Object.create(Native_typeContext.prototype); DecimalTypeContext.prototype.constructor = DecimalTypeContext; EParser.DecimalTypeContext = DecimalTypeContext; DecimalTypeContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; DecimalTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDecimalType(this); } }; DecimalTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDecimalType(this); } }; function CodeTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } CodeTypeContext.prototype = Object.create(Native_typeContext.prototype); CodeTypeContext.prototype.constructor = CodeTypeContext; EParser.CodeTypeContext = CodeTypeContext; CodeTypeContext.prototype.CODE = function() { return this.getToken(EParser.CODE, 0); }; CodeTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCodeType(this); } }; CodeTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCodeType(this); } }; function DateTypeContext(parser, ctx) { Native_typeContext.call(this, parser); Native_typeContext.prototype.copyFrom.call(this, ctx); return this; } DateTypeContext.prototype = Object.create(Native_typeContext.prototype); DateTypeContext.prototype.constructor = DateTypeContext; EParser.DateTypeContext = DateTypeContext; DateTypeContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; DateTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDateType(this); } }; DateTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDateType(this); } }; EParser.Native_typeContext = Native_typeContext; EParser.prototype.native_type = function() { var localctx = new Native_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 182, EParser.RULE_native_type); try { this.state = 1762; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.BOOLEAN: localctx = new BooleanTypeContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1746; this.match(EParser.BOOLEAN); break; case EParser.CHARACTER: localctx = new CharacterTypeContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1747; this.match(EParser.CHARACTER); break; case EParser.TEXT: localctx = new TextTypeContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1748; this.match(EParser.TEXT); break; case EParser.IMAGE: localctx = new ImageTypeContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 1749; this.match(EParser.IMAGE); break; case EParser.INTEGER: localctx = new IntegerTypeContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 1750; this.match(EParser.INTEGER); break; case EParser.DECIMAL: localctx = new DecimalTypeContext(this, localctx); this.enterOuterAlt(localctx, 6); this.state = 1751; this.match(EParser.DECIMAL); break; case EParser.DOCUMENT: localctx = new DocumentTypeContext(this, localctx); this.enterOuterAlt(localctx, 7); this.state = 1752; this.match(EParser.DOCUMENT); break; case EParser.DATE: localctx = new DateTypeContext(this, localctx); this.enterOuterAlt(localctx, 8); this.state = 1753; this.match(EParser.DATE); break; case EParser.DATETIME: localctx = new DateTimeTypeContext(this, localctx); this.enterOuterAlt(localctx, 9); this.state = 1754; this.match(EParser.DATETIME); break; case EParser.TIME: localctx = new TimeTypeContext(this, localctx); this.enterOuterAlt(localctx, 10); this.state = 1755; this.match(EParser.TIME); break; case EParser.PERIOD: localctx = new PeriodTypeContext(this, localctx); this.enterOuterAlt(localctx, 11); this.state = 1756; this.match(EParser.PERIOD); break; case EParser.VERSION: localctx = new VersionTypeContext(this, localctx); this.enterOuterAlt(localctx, 12); this.state = 1757; this.match(EParser.VERSION); break; case EParser.CODE: localctx = new CodeTypeContext(this, localctx); this.enterOuterAlt(localctx, 13); this.state = 1758; this.match(EParser.CODE); break; case EParser.BLOB: localctx = new BlobTypeContext(this, localctx); this.enterOuterAlt(localctx, 14); this.state = 1759; this.match(EParser.BLOB); break; case EParser.UUID: localctx = new UUIDTypeContext(this, localctx); this.enterOuterAlt(localctx, 15); this.state = 1760; this.match(EParser.UUID); break; case EParser.HTML: localctx = new HtmlTypeContext(this, localctx); this.enterOuterAlt(localctx, 16); this.state = 1761; this.match(EParser.HTML); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Category_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_category_type; this.t1 = null; // Token return this; } Category_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Category_typeContext.prototype.constructor = Category_typeContext; Category_typeContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Category_typeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCategory_type(this); } }; Category_typeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCategory_type(this); } }; EParser.Category_typeContext = Category_typeContext; EParser.prototype.category_type = function() { var localctx = new Category_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 184, EParser.RULE_category_type); try { this.enterOuterAlt(localctx, 1); this.state = 1764; localctx.t1 = this.match(EParser.TYPE_IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Mutable_category_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_mutable_category_type; return this; } Mutable_category_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Mutable_category_typeContext.prototype.constructor = Mutable_category_typeContext; Mutable_category_typeContext.prototype.category_type = function() { return this.getTypedRuleContext(Category_typeContext,0); }; Mutable_category_typeContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; Mutable_category_typeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMutable_category_type(this); } }; Mutable_category_typeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMutable_category_type(this); } }; EParser.Mutable_category_typeContext = Mutable_category_typeContext; EParser.prototype.mutable_category_type = function() { var localctx = new Mutable_category_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 186, EParser.RULE_mutable_category_type); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1767; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 1766; this.match(EParser.MUTABLE); } this.state = 1769; this.category_type(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Code_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_code_type; this.t1 = null; // Token return this; } Code_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Code_typeContext.prototype.constructor = Code_typeContext; Code_typeContext.prototype.CODE = function() { return this.getToken(EParser.CODE, 0); }; Code_typeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCode_type(this); } }; Code_typeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCode_type(this); } }; EParser.Code_typeContext = Code_typeContext; EParser.prototype.code_type = function() { var localctx = new Code_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 188, EParser.RULE_code_type); try { this.enterOuterAlt(localctx, 1); this.state = 1771; localctx.t1 = this.match(EParser.CODE); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Category_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_category_declaration; return this; } Category_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Category_declarationContext.prototype.constructor = Category_declarationContext; Category_declarationContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ConcreteCategoryDeclarationContext(parser, ctx) { Category_declarationContext.call(this, parser); this.decl = null; // Concrete_category_declarationContext; Category_declarationContext.prototype.copyFrom.call(this, ctx); return this; } ConcreteCategoryDeclarationContext.prototype = Object.create(Category_declarationContext.prototype); ConcreteCategoryDeclarationContext.prototype.constructor = ConcreteCategoryDeclarationContext; EParser.ConcreteCategoryDeclarationContext = ConcreteCategoryDeclarationContext; ConcreteCategoryDeclarationContext.prototype.concrete_category_declaration = function() { return this.getTypedRuleContext(Concrete_category_declarationContext,0); }; ConcreteCategoryDeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConcreteCategoryDeclaration(this); } }; ConcreteCategoryDeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConcreteCategoryDeclaration(this); } }; function NativeCategoryDeclarationContext(parser, ctx) { Category_declarationContext.call(this, parser); this.decl = null; // Native_category_declarationContext; Category_declarationContext.prototype.copyFrom.call(this, ctx); return this; } NativeCategoryDeclarationContext.prototype = Object.create(Category_declarationContext.prototype); NativeCategoryDeclarationContext.prototype.constructor = NativeCategoryDeclarationContext; EParser.NativeCategoryDeclarationContext = NativeCategoryDeclarationContext; NativeCategoryDeclarationContext.prototype.native_category_declaration = function() { return this.getTypedRuleContext(Native_category_declarationContext,0); }; NativeCategoryDeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNativeCategoryDeclaration(this); } }; NativeCategoryDeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNativeCategoryDeclaration(this); } }; function SingletonCategoryDeclarationContext(parser, ctx) { Category_declarationContext.call(this, parser); this.decl = null; // Singleton_category_declarationContext; Category_declarationContext.prototype.copyFrom.call(this, ctx); return this; } SingletonCategoryDeclarationContext.prototype = Object.create(Category_declarationContext.prototype); SingletonCategoryDeclarationContext.prototype.constructor = SingletonCategoryDeclarationContext; EParser.SingletonCategoryDeclarationContext = SingletonCategoryDeclarationContext; SingletonCategoryDeclarationContext.prototype.singleton_category_declaration = function() { return this.getTypedRuleContext(Singleton_category_declarationContext,0); }; SingletonCategoryDeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSingletonCategoryDeclaration(this); } }; SingletonCategoryDeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSingletonCategoryDeclaration(this); } }; EParser.Category_declarationContext = Category_declarationContext; EParser.prototype.category_declaration = function() { var localctx = new Category_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 190, EParser.RULE_category_declaration); try { this.state = 1776; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); switch(la_) { case 1: localctx = new ConcreteCategoryDeclarationContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1773; localctx.decl = this.concrete_category_declaration(); break; case 2: localctx = new NativeCategoryDeclarationContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1774; localctx.decl = this.native_category_declaration(); break; case 3: localctx = new SingletonCategoryDeclarationContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1775; localctx.decl = this.singleton_category_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Widget_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_widget_declaration; return this; } Widget_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Widget_declarationContext.prototype.constructor = Widget_declarationContext; Widget_declarationContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ConcreteWidgetDeclarationContext(parser, ctx) { Widget_declarationContext.call(this, parser); this.decl = null; // Concrete_widget_declarationContext; Widget_declarationContext.prototype.copyFrom.call(this, ctx); return this; } ConcreteWidgetDeclarationContext.prototype = Object.create(Widget_declarationContext.prototype); ConcreteWidgetDeclarationContext.prototype.constructor = ConcreteWidgetDeclarationContext; EParser.ConcreteWidgetDeclarationContext = ConcreteWidgetDeclarationContext; ConcreteWidgetDeclarationContext.prototype.concrete_widget_declaration = function() { return this.getTypedRuleContext(Concrete_widget_declarationContext,0); }; ConcreteWidgetDeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterConcreteWidgetDeclaration(this); } }; ConcreteWidgetDeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitConcreteWidgetDeclaration(this); } }; function NativeWidgetDeclarationContext(parser, ctx) { Widget_declarationContext.call(this, parser); this.decl = null; // Native_widget_declarationContext; Widget_declarationContext.prototype.copyFrom.call(this, ctx); return this; } NativeWidgetDeclarationContext.prototype = Object.create(Widget_declarationContext.prototype); NativeWidgetDeclarationContext.prototype.constructor = NativeWidgetDeclarationContext; EParser.NativeWidgetDeclarationContext = NativeWidgetDeclarationContext; NativeWidgetDeclarationContext.prototype.native_widget_declaration = function() { return this.getTypedRuleContext(Native_widget_declarationContext,0); }; NativeWidgetDeclarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNativeWidgetDeclaration(this); } }; NativeWidgetDeclarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNativeWidgetDeclaration(this); } }; EParser.Widget_declarationContext = Widget_declarationContext; EParser.prototype.widget_declaration = function() { var localctx = new Widget_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 192, EParser.RULE_widget_declaration); try { this.state = 1780; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,127,this._ctx); switch(la_) { case 1: localctx = new ConcreteWidgetDeclarationContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1778; localctx.decl = this.concrete_widget_declaration(); break; case 2: localctx = new NativeWidgetDeclarationContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1779; localctx.decl = this.native_widget_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Type_identifier_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_type_identifier_list; return this; } Type_identifier_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Type_identifier_listContext.prototype.constructor = Type_identifier_listContext; Type_identifier_listContext.prototype.type_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Type_identifierContext); } else { return this.getTypedRuleContext(Type_identifierContext,i); } }; Type_identifier_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Type_identifier_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterType_identifier_list(this); } }; Type_identifier_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitType_identifier_list(this); } }; EParser.Type_identifier_listContext = Type_identifier_listContext; EParser.prototype.type_identifier_list = function() { var localctx = new Type_identifier_listContext(this, this._ctx, this.state); this.enterRule(localctx, 194, EParser.RULE_type_identifier_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1782; this.type_identifier(); this.state = 1787; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 1783; this.match(EParser.COMMA); this.state = 1784; this.type_identifier(); this.state = 1789; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Method_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_method_identifier; return this; } Method_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Method_identifierContext.prototype.constructor = Method_identifierContext; Method_identifierContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Method_identifierContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; Method_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMethod_identifier(this); } }; Method_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMethod_identifier(this); } }; EParser.Method_identifierContext = Method_identifierContext; EParser.prototype.method_identifier = function() { var localctx = new Method_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 196, EParser.RULE_method_identifier); try { this.state = 1792; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.VARIABLE_IDENTIFIER: this.enterOuterAlt(localctx, 1); this.state = 1790; this.variable_identifier(); break; case EParser.TYPE_IDENTIFIER: this.enterOuterAlt(localctx, 2); this.state = 1791; this.type_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Identifier_or_keywordContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_identifier_or_keyword; return this; } Identifier_or_keywordContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Identifier_or_keywordContext.prototype.constructor = Identifier_or_keywordContext; Identifier_or_keywordContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; Identifier_or_keywordContext.prototype.keyword = function() { return this.getTypedRuleContext(KeywordContext,0); }; Identifier_or_keywordContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIdentifier_or_keyword(this); } }; Identifier_or_keywordContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIdentifier_or_keyword(this); } }; EParser.Identifier_or_keywordContext = Identifier_or_keywordContext; EParser.prototype.identifier_or_keyword = function() { var localctx = new Identifier_or_keywordContext(this, this._ctx, this.state); this.enterRule(localctx, 198, EParser.RULE_identifier_or_keyword); try { this.state = 1796; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: this.enterOuterAlt(localctx, 1); this.state = 1794; this.identifier(); break; case EParser.JAVA: case EParser.CSHARP: case EParser.PYTHON2: case EParser.PYTHON3: case EParser.JAVASCRIPT: case EParser.SWIFT: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.METHOD_T: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.ABSTRACT: case EParser.ALL: case EParser.ALWAYS: case EParser.AND: case EParser.ANY: case EParser.AS: case EParser.ASC: case EParser.ATTR: case EParser.ATTRIBUTE: case EParser.ATTRIBUTES: case EParser.BINDINGS: case EParser.BREAK: case EParser.BY: case EParser.CASE: case EParser.CATCH: case EParser.CATEGORY: case EParser.CLASS: case EParser.CLOSE: case EParser.CONTAINS: case EParser.DEF: case EParser.DEFAULT: case EParser.DEFINE: case EParser.DELETE: case EParser.DESC: case EParser.DO: case EParser.DOING: case EParser.EACH: case EParser.ELSE: case EParser.ENUM: case EParser.ENUMERATED: case EParser.EXCEPT: case EParser.EXECUTE: case EParser.EXPECTING: case EParser.EXTENDS: case EParser.FETCH: case EParser.FILTERED: case EParser.FINALLY: case EParser.FLUSH: case EParser.FOR: case EParser.FROM: case EParser.GETTER: case EParser.HAS: case EParser.IF: case EParser.IN: case EParser.INDEX: case EParser.INVOKE: case EParser.IS: case EParser.MATCHING: case EParser.METHOD: case EParser.METHODS: case EParser.MODULO: case EParser.MUTABLE: case EParser.NATIVE: case EParser.NONE: case EParser.NOT: case EParser.NOTHING: case EParser.NULL: case EParser.ON: case EParser.ONE: case EParser.OPEN: case EParser.OPERATOR: case EParser.OR: case EParser.ORDER: case EParser.OTHERWISE: case EParser.PASS: case EParser.RAISE: case EParser.READ: case EParser.RECEIVING: case EParser.RESOURCE: case EParser.RETURN: case EParser.RETURNING: case EParser.ROWS: case EParser.SELF: case EParser.SETTER: case EParser.SINGLETON: case EParser.SORTED: case EParser.STORABLE: case EParser.STORE: case EParser.SWITCH: case EParser.TEST: case EParser.THIS: case EParser.THROW: case EParser.TO: case EParser.TRY: case EParser.VERIFYING: case EParser.WIDGET: case EParser.WITH: case EParser.WHEN: case EParser.WHERE: case EParser.WHILE: case EParser.WRITE: this.enterOuterAlt(localctx, 2); this.state = 1795; this.keyword(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Nospace_hyphen_identifier_or_keywordContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_nospace_hyphen_identifier_or_keyword; return this; } Nospace_hyphen_identifier_or_keywordContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Nospace_hyphen_identifier_or_keywordContext.prototype.constructor = Nospace_hyphen_identifier_or_keywordContext; Nospace_hyphen_identifier_or_keywordContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; Nospace_hyphen_identifier_or_keywordContext.prototype.nospace_identifier_or_keyword = function() { return this.getTypedRuleContext(Nospace_identifier_or_keywordContext,0); }; Nospace_hyphen_identifier_or_keywordContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNospace_hyphen_identifier_or_keyword(this); } }; Nospace_hyphen_identifier_or_keywordContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNospace_hyphen_identifier_or_keyword(this); } }; EParser.Nospace_hyphen_identifier_or_keywordContext = Nospace_hyphen_identifier_or_keywordContext; EParser.prototype.nospace_hyphen_identifier_or_keyword = function() { var localctx = new Nospace_hyphen_identifier_or_keywordContext(this, this._ctx, this.state); this.enterRule(localctx, 200, EParser.RULE_nospace_hyphen_identifier_or_keyword); try { this.enterOuterAlt(localctx, 1); this.state = 1798; if (!( this.wasNotWhiteSpace())) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNotWhiteSpace()"); } this.state = 1799; this.match(EParser.MINUS); this.state = 1800; this.nospace_identifier_or_keyword(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Nospace_identifier_or_keywordContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_nospace_identifier_or_keyword; return this; } Nospace_identifier_or_keywordContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Nospace_identifier_or_keywordContext.prototype.constructor = Nospace_identifier_or_keywordContext; Nospace_identifier_or_keywordContext.prototype.identifier_or_keyword = function() { return this.getTypedRuleContext(Identifier_or_keywordContext,0); }; Nospace_identifier_or_keywordContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNospace_identifier_or_keyword(this); } }; Nospace_identifier_or_keywordContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNospace_identifier_or_keyword(this); } }; EParser.Nospace_identifier_or_keywordContext = Nospace_identifier_or_keywordContext; EParser.prototype.nospace_identifier_or_keyword = function() { var localctx = new Nospace_identifier_or_keywordContext(this, this._ctx, this.state); this.enterRule(localctx, 202, EParser.RULE_nospace_identifier_or_keyword); try { this.enterOuterAlt(localctx, 1); this.state = 1802; if (!( this.wasNotWhiteSpace())) { throw new antlr4.error.FailedPredicateException(this, "$parser.wasNotWhiteSpace()"); } this.state = 1803; this.identifier_or_keyword(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function IdentifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_identifier; return this; } IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); IdentifierContext.prototype.constructor = IdentifierContext; IdentifierContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function TypeIdentifierContext(parser, ctx) { IdentifierContext.call(this, parser); IdentifierContext.prototype.copyFrom.call(this, ctx); return this; } TypeIdentifierContext.prototype = Object.create(IdentifierContext.prototype); TypeIdentifierContext.prototype.constructor = TypeIdentifierContext; EParser.TypeIdentifierContext = TypeIdentifierContext; TypeIdentifierContext.prototype.type_identifier = function() { return this.getTypedRuleContext(Type_identifierContext,0); }; TypeIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTypeIdentifier(this); } }; TypeIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTypeIdentifier(this); } }; function SymbolIdentifierContext(parser, ctx) { IdentifierContext.call(this, parser); IdentifierContext.prototype.copyFrom.call(this, ctx); return this; } SymbolIdentifierContext.prototype = Object.create(IdentifierContext.prototype); SymbolIdentifierContext.prototype.constructor = SymbolIdentifierContext; EParser.SymbolIdentifierContext = SymbolIdentifierContext; SymbolIdentifierContext.prototype.symbol_identifier = function() { return this.getTypedRuleContext(Symbol_identifierContext,0); }; SymbolIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSymbolIdentifier(this); } }; SymbolIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSymbolIdentifier(this); } }; function VariableIdentifierContext(parser, ctx) { IdentifierContext.call(this, parser); IdentifierContext.prototype.copyFrom.call(this, ctx); return this; } VariableIdentifierContext.prototype = Object.create(IdentifierContext.prototype); VariableIdentifierContext.prototype.constructor = VariableIdentifierContext; EParser.VariableIdentifierContext = VariableIdentifierContext; VariableIdentifierContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; VariableIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterVariableIdentifier(this); } }; VariableIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitVariableIdentifier(this); } }; EParser.IdentifierContext = IdentifierContext; EParser.prototype.identifier = function() { var localctx = new IdentifierContext(this, this._ctx, this.state); this.enterRule(localctx, 204, EParser.RULE_identifier); try { this.state = 1808; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.VARIABLE_IDENTIFIER: localctx = new VariableIdentifierContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1805; this.variable_identifier(); break; case EParser.TYPE_IDENTIFIER: localctx = new TypeIdentifierContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1806; this.type_identifier(); break; case EParser.SYMBOL_IDENTIFIER: localctx = new SymbolIdentifierContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1807; this.symbol_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Variable_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_variable_identifier; return this; } Variable_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Variable_identifierContext.prototype.constructor = Variable_identifierContext; Variable_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Variable_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterVariable_identifier(this); } }; Variable_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitVariable_identifier(this); } }; EParser.Variable_identifierContext = Variable_identifierContext; EParser.prototype.variable_identifier = function() { var localctx = new Variable_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 206, EParser.RULE_variable_identifier); try { this.enterOuterAlt(localctx, 1); this.state = 1810; this.match(EParser.VARIABLE_IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Attribute_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_attribute_identifier; return this; } Attribute_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Attribute_identifierContext.prototype.constructor = Attribute_identifierContext; Attribute_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Attribute_identifierContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; Attribute_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAttribute_identifier(this); } }; Attribute_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAttribute_identifier(this); } }; EParser.Attribute_identifierContext = Attribute_identifierContext; EParser.prototype.attribute_identifier = function() { var localctx = new Attribute_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 208, EParser.RULE_attribute_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1812; _la = this._input.LA(1); if(!(_la===EParser.STORABLE || _la===EParser.VARIABLE_IDENTIFIER)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Type_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_type_identifier; return this; } Type_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Type_identifierContext.prototype.constructor = Type_identifierContext; Type_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Type_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterType_identifier(this); } }; Type_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitType_identifier(this); } }; EParser.Type_identifierContext = Type_identifierContext; EParser.prototype.type_identifier = function() { var localctx = new Type_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 210, EParser.RULE_type_identifier); try { this.enterOuterAlt(localctx, 1); this.state = 1814; this.match(EParser.TYPE_IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Symbol_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_symbol_identifier; return this; } Symbol_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Symbol_identifierContext.prototype.constructor = Symbol_identifierContext; Symbol_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Symbol_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSymbol_identifier(this); } }; Symbol_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSymbol_identifier(this); } }; EParser.Symbol_identifierContext = Symbol_identifierContext; EParser.prototype.symbol_identifier = function() { var localctx = new Symbol_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 212, EParser.RULE_symbol_identifier); try { this.enterOuterAlt(localctx, 1); this.state = 1816; this.match(EParser.SYMBOL_IDENTIFIER); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Any_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_any_identifier; return this; } Any_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Any_identifierContext.prototype.constructor = Any_identifierContext; Any_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Any_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Any_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Any_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAny_identifier(this); } }; Any_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAny_identifier(this); } }; EParser.Any_identifierContext = Any_identifierContext; EParser.prototype.any_identifier = function() { var localctx = new Any_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 214, EParser.RULE_any_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1818; _la = this._input.LA(1); if(!(((((_la - 166)) & ~0x1f) == 0 && ((1 << (_la - 166)) & ((1 << (EParser.SYMBOL_IDENTIFIER - 166)) | (1 << (EParser.TYPE_IDENTIFIER - 166)) | (1 << (EParser.VARIABLE_IDENTIFIER - 166)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Argument_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_argument_list; return this; } Argument_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Argument_listContext.prototype.constructor = Argument_listContext; Argument_listContext.prototype.argument = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ArgumentContext); } else { return this.getTypedRuleContext(ArgumentContext,i); } }; Argument_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Argument_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterArgument_list(this); } }; Argument_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitArgument_list(this); } }; EParser.Argument_listContext = Argument_listContext; EParser.prototype.argument_list = function() { var localctx = new Argument_listContext(this, this._ctx, this.state); this.enterRule(localctx, 216, EParser.RULE_argument_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1820; this.argument(); this.state = 1825; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 1821; this.match(EParser.COMMA); this.state = 1822; this.argument(); this.state = 1827; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ArgumentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_argument; return this; } ArgumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ArgumentContext.prototype.constructor = ArgumentContext; ArgumentContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function OperatorArgumentContext(parser, ctx) { ArgumentContext.call(this, parser); this.arg = null; // Operator_argumentContext; ArgumentContext.prototype.copyFrom.call(this, ctx); return this; } OperatorArgumentContext.prototype = Object.create(ArgumentContext.prototype); OperatorArgumentContext.prototype.constructor = OperatorArgumentContext; EParser.OperatorArgumentContext = OperatorArgumentContext; OperatorArgumentContext.prototype.operator_argument = function() { return this.getTypedRuleContext(Operator_argumentContext,0); }; OperatorArgumentContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; OperatorArgumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorArgument(this); } }; OperatorArgumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorArgument(this); } }; function CodeArgumentContext(parser, ctx) { ArgumentContext.call(this, parser); this.arg = null; // Code_argumentContext; ArgumentContext.prototype.copyFrom.call(this, ctx); return this; } CodeArgumentContext.prototype = Object.create(ArgumentContext.prototype); CodeArgumentContext.prototype.constructor = CodeArgumentContext; EParser.CodeArgumentContext = CodeArgumentContext; CodeArgumentContext.prototype.code_argument = function() { return this.getTypedRuleContext(Code_argumentContext,0); }; CodeArgumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCodeArgument(this); } }; CodeArgumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCodeArgument(this); } }; EParser.ArgumentContext = ArgumentContext; EParser.prototype.argument = function() { var localctx = new ArgumentContext(this, this._ctx, this.state); this.enterRule(localctx, 218, EParser.RULE_argument); var _la = 0; // Token type try { this.state = 1833; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,134,this._ctx); switch(la_) { case 1: localctx = new CodeArgumentContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1828; localctx.arg = this.code_argument(); break; case 2: localctx = new OperatorArgumentContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1830; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 1829; this.match(EParser.MUTABLE); } this.state = 1832; localctx.arg = this.operator_argument(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Operator_argumentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_operator_argument; return this; } Operator_argumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Operator_argumentContext.prototype.constructor = Operator_argumentContext; Operator_argumentContext.prototype.named_argument = function() { return this.getTypedRuleContext(Named_argumentContext,0); }; Operator_argumentContext.prototype.typed_argument = function() { return this.getTypedRuleContext(Typed_argumentContext,0); }; Operator_argumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperator_argument(this); } }; Operator_argumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperator_argument(this); } }; EParser.Operator_argumentContext = Operator_argumentContext; EParser.prototype.operator_argument = function() { var localctx = new Operator_argumentContext(this, this._ctx, this.state); this.enterRule(localctx, 220, EParser.RULE_operator_argument); try { this.state = 1837; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.VARIABLE_IDENTIFIER: this.enterOuterAlt(localctx, 1); this.state = 1835; this.named_argument(); break; case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.ANY: case EParser.TYPE_IDENTIFIER: this.enterOuterAlt(localctx, 2); this.state = 1836; this.typed_argument(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Named_argumentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_named_argument; return this; } Named_argumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Named_argumentContext.prototype.constructor = Named_argumentContext; Named_argumentContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Named_argumentContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; Named_argumentContext.prototype.literal_expression = function() { return this.getTypedRuleContext(Literal_expressionContext,0); }; Named_argumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNamed_argument(this); } }; Named_argumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNamed_argument(this); } }; EParser.Named_argumentContext = Named_argumentContext; EParser.prototype.named_argument = function() { var localctx = new Named_argumentContext(this, this._ctx, this.state); this.enterRule(localctx, 222, EParser.RULE_named_argument); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1839; this.variable_identifier(); this.state = 1842; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.EQ) { this.state = 1840; this.match(EParser.EQ); this.state = 1841; this.literal_expression(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Code_argumentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_code_argument; this.name = null; // Variable_identifierContext return this; } Code_argumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Code_argumentContext.prototype.constructor = Code_argumentContext; Code_argumentContext.prototype.code_type = function() { return this.getTypedRuleContext(Code_typeContext,0); }; Code_argumentContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Code_argumentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCode_argument(this); } }; Code_argumentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCode_argument(this); } }; EParser.Code_argumentContext = Code_argumentContext; EParser.prototype.code_argument = function() { var localctx = new Code_argumentContext(this, this._ctx, this.state); this.enterRule(localctx, 224, EParser.RULE_code_argument); try { this.enterOuterAlt(localctx, 1); this.state = 1844; this.code_type(); this.state = 1845; localctx.name = this.variable_identifier(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Category_or_any_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_category_or_any_type; return this; } Category_or_any_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Category_or_any_typeContext.prototype.constructor = Category_or_any_typeContext; Category_or_any_typeContext.prototype.typedef = function() { return this.getTypedRuleContext(TypedefContext,0); }; Category_or_any_typeContext.prototype.any_type = function() { return this.getTypedRuleContext(Any_typeContext,0); }; Category_or_any_typeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCategory_or_any_type(this); } }; Category_or_any_typeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCategory_or_any_type(this); } }; EParser.Category_or_any_typeContext = Category_or_any_typeContext; EParser.prototype.category_or_any_type = function() { var localctx = new Category_or_any_typeContext(this, this._ctx, this.state); this.enterRule(localctx, 226, EParser.RULE_category_or_any_type); try { this.state = 1849; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.TYPE_IDENTIFIER: this.enterOuterAlt(localctx, 1); this.state = 1847; this.typedef(0); break; case EParser.ANY: this.enterOuterAlt(localctx, 2); this.state = 1848; this.any_type(0); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Any_typeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_any_type; return this; } Any_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Any_typeContext.prototype.constructor = Any_typeContext; Any_typeContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function AnyListTypeContext(parser, ctx) { Any_typeContext.call(this, parser); Any_typeContext.prototype.copyFrom.call(this, ctx); return this; } AnyListTypeContext.prototype = Object.create(Any_typeContext.prototype); AnyListTypeContext.prototype.constructor = AnyListTypeContext; EParser.AnyListTypeContext = AnyListTypeContext; AnyListTypeContext.prototype.any_type = function() { return this.getTypedRuleContext(Any_typeContext,0); }; AnyListTypeContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; AnyListTypeContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; AnyListTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAnyListType(this); } }; AnyListTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAnyListType(this); } }; function AnyTypeContext(parser, ctx) { Any_typeContext.call(this, parser); Any_typeContext.prototype.copyFrom.call(this, ctx); return this; } AnyTypeContext.prototype = Object.create(Any_typeContext.prototype); AnyTypeContext.prototype.constructor = AnyTypeContext; EParser.AnyTypeContext = AnyTypeContext; AnyTypeContext.prototype.ANY = function() { return this.getToken(EParser.ANY, 0); }; AnyTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAnyType(this); } }; AnyTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAnyType(this); } }; function AnyDictTypeContext(parser, ctx) { Any_typeContext.call(this, parser); Any_typeContext.prototype.copyFrom.call(this, ctx); return this; } AnyDictTypeContext.prototype = Object.create(Any_typeContext.prototype); AnyDictTypeContext.prototype.constructor = AnyDictTypeContext; EParser.AnyDictTypeContext = AnyDictTypeContext; AnyDictTypeContext.prototype.any_type = function() { return this.getTypedRuleContext(Any_typeContext,0); }; AnyDictTypeContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; AnyDictTypeContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; AnyDictTypeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAnyDictType(this); } }; AnyDictTypeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAnyDictType(this); } }; EParser.prototype.any_type = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Any_typeContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 228; this.enterRecursionRule(localctx, 228, EParser.RULE_any_type, _p); try { this.enterOuterAlt(localctx, 1); localctx = new AnyTypeContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 1852; this.match(EParser.ANY); this._ctx.stop = this._input.LT(-1); this.state = 1862; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,139,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; this.state = 1860; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); switch(la_) { case 1: localctx = new AnyListTypeContext(this, new Any_typeContext(this, _parentctx, _parentState)); this.pushNewRecursionContext(localctx, _startState, EParser.RULE_any_type); this.state = 1854; if (!( this.precpred(this._ctx, 2))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); } this.state = 1855; this.match(EParser.LBRAK); this.state = 1856; this.match(EParser.RBRAK); break; case 2: localctx = new AnyDictTypeContext(this, new Any_typeContext(this, _parentctx, _parentState)); this.pushNewRecursionContext(localctx, _startState, EParser.RULE_any_type); this.state = 1857; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 1858; this.match(EParser.LCURL); this.state = 1859; this.match(EParser.RCURL); break; } } this.state = 1864; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,139,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Member_method_declaration_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_member_method_declaration_list; return this; } Member_method_declaration_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Member_method_declaration_listContext.prototype.constructor = Member_method_declaration_listContext; Member_method_declaration_listContext.prototype.member_method_declaration = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Member_method_declarationContext); } else { return this.getTypedRuleContext(Member_method_declarationContext,i); } }; Member_method_declaration_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Member_method_declaration_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMember_method_declaration_list(this); } }; Member_method_declaration_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMember_method_declaration_list(this); } }; EParser.Member_method_declaration_listContext = Member_method_declaration_listContext; EParser.prototype.member_method_declaration_list = function() { var localctx = new Member_method_declaration_listContext(this, this._ctx, this.state); this.enterRule(localctx, 230, EParser.RULE_member_method_declaration_list); try { this.enterOuterAlt(localctx, 1); this.state = 1865; this.member_method_declaration(); this.state = 1871; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,140,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1866; this.lfp(); this.state = 1867; this.member_method_declaration(); } this.state = 1873; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,140,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Member_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_member_method_declaration; return this; } Member_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Member_method_declarationContext.prototype.constructor = Member_method_declarationContext; Member_method_declarationContext.prototype.setter_method_declaration = function() { return this.getTypedRuleContext(Setter_method_declarationContext,0); }; Member_method_declarationContext.prototype.getter_method_declaration = function() { return this.getTypedRuleContext(Getter_method_declarationContext,0); }; Member_method_declarationContext.prototype.concrete_method_declaration = function() { return this.getTypedRuleContext(Concrete_method_declarationContext,0); }; Member_method_declarationContext.prototype.abstract_method_declaration = function() { return this.getTypedRuleContext(Abstract_method_declarationContext,0); }; Member_method_declarationContext.prototype.operator_method_declaration = function() { return this.getTypedRuleContext(Operator_method_declarationContext,0); }; Member_method_declarationContext.prototype.comment_statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Comment_statementContext); } else { return this.getTypedRuleContext(Comment_statementContext,i); } }; Member_method_declarationContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Member_method_declarationContext.prototype.annotation_constructor = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Annotation_constructorContext); } else { return this.getTypedRuleContext(Annotation_constructorContext,i); } }; Member_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMember_method_declaration(this); } }; Member_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMember_method_declaration(this); } }; EParser.Member_method_declarationContext = Member_method_declarationContext; EParser.prototype.member_method_declaration = function() { var localctx = new Member_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 232, EParser.RULE_member_method_declaration); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1879; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMENT) { this.state = 1874; this.comment_statement(); this.state = 1875; this.lfp(); this.state = 1881; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 1887; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.ARONDBASE_IDENTIFIER) { this.state = 1882; this.annotation_constructor(); this.state = 1883; this.lfp(); this.state = 1889; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 1895; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,143,this._ctx); switch(la_) { case 1: this.state = 1890; this.setter_method_declaration(); break; case 2: this.state = 1891; this.getter_method_declaration(); break; case 3: this.state = 1892; this.concrete_method_declaration(); break; case 4: this.state = 1893; this.abstract_method_declaration(); break; case 5: this.state = 1894; this.operator_method_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_member_method_declaration_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_member_method_declaration_list; return this; } Native_member_method_declaration_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_member_method_declaration_listContext.prototype.constructor = Native_member_method_declaration_listContext; Native_member_method_declaration_listContext.prototype.native_member_method_declaration = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Native_member_method_declarationContext); } else { return this.getTypedRuleContext(Native_member_method_declarationContext,i); } }; Native_member_method_declaration_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Native_member_method_declaration_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_member_method_declaration_list(this); } }; Native_member_method_declaration_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_member_method_declaration_list(this); } }; EParser.Native_member_method_declaration_listContext = Native_member_method_declaration_listContext; EParser.prototype.native_member_method_declaration_list = function() { var localctx = new Native_member_method_declaration_listContext(this, this._ctx, this.state); this.enterRule(localctx, 234, EParser.RULE_native_member_method_declaration_list); try { this.enterOuterAlt(localctx, 1); this.state = 1897; this.native_member_method_declaration(); this.state = 1903; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,144,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1898; this.lfp(); this.state = 1899; this.native_member_method_declaration(); } this.state = 1905; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,144,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_member_method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_member_method_declaration; return this; } Native_member_method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_member_method_declarationContext.prototype.constructor = Native_member_method_declarationContext; Native_member_method_declarationContext.prototype.native_getter_declaration = function() { return this.getTypedRuleContext(Native_getter_declarationContext,0); }; Native_member_method_declarationContext.prototype.native_setter_declaration = function() { return this.getTypedRuleContext(Native_setter_declarationContext,0); }; Native_member_method_declarationContext.prototype.native_method_declaration = function() { return this.getTypedRuleContext(Native_method_declarationContext,0); }; Native_member_method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_member_method_declaration(this); } }; Native_member_method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_member_method_declaration(this); } }; EParser.Native_member_method_declarationContext = Native_member_method_declarationContext; EParser.prototype.native_member_method_declaration = function() { var localctx = new Native_member_method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 236, EParser.RULE_native_member_method_declaration); try { this.state = 1909; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 1906; this.native_getter_declaration(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 1907; this.native_setter_declaration(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 1908; this.native_method_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_category_bindingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_category_binding; return this; } Native_category_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_category_bindingContext.prototype.constructor = Native_category_bindingContext; Native_category_bindingContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function Python2CategoryBindingContext(parser, ctx) { Native_category_bindingContext.call(this, parser); this.binding = null; // Python_category_bindingContext; Native_category_bindingContext.prototype.copyFrom.call(this, ctx); return this; } Python2CategoryBindingContext.prototype = Object.create(Native_category_bindingContext.prototype); Python2CategoryBindingContext.prototype.constructor = Python2CategoryBindingContext; EParser.Python2CategoryBindingContext = Python2CategoryBindingContext; Python2CategoryBindingContext.prototype.PYTHON2 = function() { return this.getToken(EParser.PYTHON2, 0); }; Python2CategoryBindingContext.prototype.python_category_binding = function() { return this.getTypedRuleContext(Python_category_bindingContext,0); }; Python2CategoryBindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython2CategoryBinding(this); } }; Python2CategoryBindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython2CategoryBinding(this); } }; function Python3CategoryBindingContext(parser, ctx) { Native_category_bindingContext.call(this, parser); this.binding = null; // Python_category_bindingContext; Native_category_bindingContext.prototype.copyFrom.call(this, ctx); return this; } Python3CategoryBindingContext.prototype = Object.create(Native_category_bindingContext.prototype); Python3CategoryBindingContext.prototype.constructor = Python3CategoryBindingContext; EParser.Python3CategoryBindingContext = Python3CategoryBindingContext; Python3CategoryBindingContext.prototype.PYTHON3 = function() { return this.getToken(EParser.PYTHON3, 0); }; Python3CategoryBindingContext.prototype.python_category_binding = function() { return this.getTypedRuleContext(Python_category_bindingContext,0); }; Python3CategoryBindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython3CategoryBinding(this); } }; Python3CategoryBindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython3CategoryBinding(this); } }; function JavaCategoryBindingContext(parser, ctx) { Native_category_bindingContext.call(this, parser); this.binding = null; // Java_class_identifier_expressionContext; Native_category_bindingContext.prototype.copyFrom.call(this, ctx); return this; } JavaCategoryBindingContext.prototype = Object.create(Native_category_bindingContext.prototype); JavaCategoryBindingContext.prototype.constructor = JavaCategoryBindingContext; EParser.JavaCategoryBindingContext = JavaCategoryBindingContext; JavaCategoryBindingContext.prototype.JAVA = function() { return this.getToken(EParser.JAVA, 0); }; JavaCategoryBindingContext.prototype.java_class_identifier_expression = function() { return this.getTypedRuleContext(Java_class_identifier_expressionContext,0); }; JavaCategoryBindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaCategoryBinding(this); } }; JavaCategoryBindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaCategoryBinding(this); } }; function CSharpCategoryBindingContext(parser, ctx) { Native_category_bindingContext.call(this, parser); this.binding = null; // Csharp_identifier_expressionContext; Native_category_bindingContext.prototype.copyFrom.call(this, ctx); return this; } CSharpCategoryBindingContext.prototype = Object.create(Native_category_bindingContext.prototype); CSharpCategoryBindingContext.prototype.constructor = CSharpCategoryBindingContext; EParser.CSharpCategoryBindingContext = CSharpCategoryBindingContext; CSharpCategoryBindingContext.prototype.CSHARP = function() { return this.getToken(EParser.CSHARP, 0); }; CSharpCategoryBindingContext.prototype.csharp_identifier_expression = function() { return this.getTypedRuleContext(Csharp_identifier_expressionContext,0); }; CSharpCategoryBindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpCategoryBinding(this); } }; CSharpCategoryBindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpCategoryBinding(this); } }; function JavaScriptCategoryBindingContext(parser, ctx) { Native_category_bindingContext.call(this, parser); this.binding = null; // Javascript_category_bindingContext; Native_category_bindingContext.prototype.copyFrom.call(this, ctx); return this; } JavaScriptCategoryBindingContext.prototype = Object.create(Native_category_bindingContext.prototype); JavaScriptCategoryBindingContext.prototype.constructor = JavaScriptCategoryBindingContext; EParser.JavaScriptCategoryBindingContext = JavaScriptCategoryBindingContext; JavaScriptCategoryBindingContext.prototype.JAVASCRIPT = function() { return this.getToken(EParser.JAVASCRIPT, 0); }; JavaScriptCategoryBindingContext.prototype.javascript_category_binding = function() { return this.getTypedRuleContext(Javascript_category_bindingContext,0); }; JavaScriptCategoryBindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaScriptCategoryBinding(this); } }; JavaScriptCategoryBindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaScriptCategoryBinding(this); } }; EParser.Native_category_bindingContext = Native_category_bindingContext; EParser.prototype.native_category_binding = function() { var localctx = new Native_category_bindingContext(this, this._ctx, this.state); this.enterRule(localctx, 238, EParser.RULE_native_category_binding); try { this.state = 1921; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.JAVA: localctx = new JavaCategoryBindingContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 1911; this.match(EParser.JAVA); this.state = 1912; localctx.binding = this.java_class_identifier_expression(0); break; case EParser.CSHARP: localctx = new CSharpCategoryBindingContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 1913; this.match(EParser.CSHARP); this.state = 1914; localctx.binding = this.csharp_identifier_expression(0); break; case EParser.PYTHON2: localctx = new Python2CategoryBindingContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 1915; this.match(EParser.PYTHON2); this.state = 1916; localctx.binding = this.python_category_binding(); break; case EParser.PYTHON3: localctx = new Python3CategoryBindingContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 1917; this.match(EParser.PYTHON3); this.state = 1918; localctx.binding = this.python_category_binding(); break; case EParser.JAVASCRIPT: localctx = new JavaScriptCategoryBindingContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 1919; this.match(EParser.JAVASCRIPT); this.state = 1920; localctx.binding = this.javascript_category_binding(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_category_bindingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_category_binding; return this; } Python_category_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_category_bindingContext.prototype.constructor = Python_category_bindingContext; Python_category_bindingContext.prototype.identifier = function() { return this.getTypedRuleContext(IdentifierContext,0); }; Python_category_bindingContext.prototype.python_module = function() { return this.getTypedRuleContext(Python_moduleContext,0); }; Python_category_bindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_category_binding(this); } }; Python_category_bindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_category_binding(this); } }; EParser.Python_category_bindingContext = Python_category_bindingContext; EParser.prototype.python_category_binding = function() { var localctx = new Python_category_bindingContext(this, this._ctx, this.state); this.enterRule(localctx, 240, EParser.RULE_python_category_binding); try { this.enterOuterAlt(localctx, 1); this.state = 1923; this.identifier(); this.state = 1925; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,147,this._ctx); if(la_===1) { this.state = 1924; this.python_module(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_moduleContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_module; return this; } Python_moduleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_moduleContext.prototype.constructor = Python_moduleContext; Python_moduleContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Python_moduleContext.prototype.module_token = function() { return this.getTypedRuleContext(Module_tokenContext,0); }; Python_moduleContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Python_moduleContext.prototype.python_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Python_identifierContext); } else { return this.getTypedRuleContext(Python_identifierContext,i); } }; Python_moduleContext.prototype.DOT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.DOT); } else { return this.getToken(EParser.DOT, i); } }; Python_moduleContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_module(this); } }; Python_moduleContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_module(this); } }; EParser.Python_moduleContext = Python_moduleContext; EParser.prototype.python_module = function() { var localctx = new Python_moduleContext(this, this._ctx, this.state); this.enterRule(localctx, 242, EParser.RULE_python_module); try { this.enterOuterAlt(localctx, 1); this.state = 1927; this.match(EParser.FROM); this.state = 1928; this.module_token(); this.state = 1929; this.match(EParser.COLON); this.state = 1930; this.python_identifier(); this.state = 1935; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,148,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1931; this.match(EParser.DOT); this.state = 1932; this.python_identifier(); } this.state = 1937; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,148,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_category_bindingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_category_binding; return this; } Javascript_category_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_category_bindingContext.prototype.constructor = Javascript_category_bindingContext; Javascript_category_bindingContext.prototype.javascript_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Javascript_identifierContext); } else { return this.getTypedRuleContext(Javascript_identifierContext,i); } }; Javascript_category_bindingContext.prototype.DOT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.DOT); } else { return this.getToken(EParser.DOT, i); } }; Javascript_category_bindingContext.prototype.javascript_module = function() { return this.getTypedRuleContext(Javascript_moduleContext,0); }; Javascript_category_bindingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_category_binding(this); } }; Javascript_category_bindingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_category_binding(this); } }; EParser.Javascript_category_bindingContext = Javascript_category_bindingContext; EParser.prototype.javascript_category_binding = function() { var localctx = new Javascript_category_bindingContext(this, this._ctx, this.state); this.enterRule(localctx, 244, EParser.RULE_javascript_category_binding); try { this.enterOuterAlt(localctx, 1); this.state = 1938; this.javascript_identifier(); this.state = 1943; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,149,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1939; this.match(EParser.DOT); this.state = 1940; this.javascript_identifier(); } this.state = 1945; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,149,this._ctx); } this.state = 1947; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,150,this._ctx); if(la_===1) { this.state = 1946; this.javascript_module(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_moduleContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_module; return this; } Javascript_moduleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_moduleContext.prototype.constructor = Javascript_moduleContext; Javascript_moduleContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Javascript_moduleContext.prototype.module_token = function() { return this.getTypedRuleContext(Module_tokenContext,0); }; Javascript_moduleContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Javascript_moduleContext.prototype.javascript_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Javascript_identifierContext); } else { return this.getTypedRuleContext(Javascript_identifierContext,i); } }; Javascript_moduleContext.prototype.SLASH = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.SLASH); } else { return this.getToken(EParser.SLASH, i); } }; Javascript_moduleContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; Javascript_moduleContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_module(this); } }; Javascript_moduleContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_module(this); } }; EParser.Javascript_moduleContext = Javascript_moduleContext; EParser.prototype.javascript_module = function() { var localctx = new Javascript_moduleContext(this, this._ctx, this.state); this.enterRule(localctx, 246, EParser.RULE_javascript_module); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1949; this.match(EParser.FROM); this.state = 1950; this.module_token(); this.state = 1951; this.match(EParser.COLON); this.state = 1953; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.SLASH) { this.state = 1952; this.match(EParser.SLASH); } this.state = 1955; this.javascript_identifier(); this.state = 1960; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,152,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1956; this.match(EParser.SLASH); this.state = 1957; this.javascript_identifier(); } this.state = 1962; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,152,this._ctx); } this.state = 1965; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,153,this._ctx); if(la_===1) { this.state = 1963; this.match(EParser.DOT); this.state = 1964; this.javascript_identifier(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Variable_identifier_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_variable_identifier_list; return this; } Variable_identifier_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Variable_identifier_listContext.prototype.constructor = Variable_identifier_listContext; Variable_identifier_listContext.prototype.variable_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Variable_identifierContext); } else { return this.getTypedRuleContext(Variable_identifierContext,i); } }; Variable_identifier_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Variable_identifier_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterVariable_identifier_list(this); } }; Variable_identifier_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitVariable_identifier_list(this); } }; EParser.Variable_identifier_listContext = Variable_identifier_listContext; EParser.prototype.variable_identifier_list = function() { var localctx = new Variable_identifier_listContext(this, this._ctx, this.state); this.enterRule(localctx, 248, EParser.RULE_variable_identifier_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 1967; this.variable_identifier(); this.state = 1972; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 1968; this.match(EParser.COMMA); this.state = 1969; this.variable_identifier(); this.state = 1974; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Attribute_identifier_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_attribute_identifier_list; return this; } Attribute_identifier_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Attribute_identifier_listContext.prototype.constructor = Attribute_identifier_listContext; Attribute_identifier_listContext.prototype.attribute_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Attribute_identifierContext); } else { return this.getTypedRuleContext(Attribute_identifierContext,i); } }; Attribute_identifier_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Attribute_identifier_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAttribute_identifier_list(this); } }; Attribute_identifier_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAttribute_identifier_list(this); } }; EParser.Attribute_identifier_listContext = Attribute_identifier_listContext; EParser.prototype.attribute_identifier_list = function() { var localctx = new Attribute_identifier_listContext(this, this._ctx, this.state); this.enterRule(localctx, 250, EParser.RULE_attribute_identifier_list); try { this.enterOuterAlt(localctx, 1); this.state = 1975; this.attribute_identifier(); this.state = 1980; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,155,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1976; this.match(EParser.COMMA); this.state = 1977; this.attribute_identifier(); } this.state = 1982; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,155,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Method_declarationContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_method_declaration; return this; } Method_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Method_declarationContext.prototype.constructor = Method_declarationContext; Method_declarationContext.prototype.abstract_method_declaration = function() { return this.getTypedRuleContext(Abstract_method_declarationContext,0); }; Method_declarationContext.prototype.concrete_method_declaration = function() { return this.getTypedRuleContext(Concrete_method_declarationContext,0); }; Method_declarationContext.prototype.native_method_declaration = function() { return this.getTypedRuleContext(Native_method_declarationContext,0); }; Method_declarationContext.prototype.test_method_declaration = function() { return this.getTypedRuleContext(Test_method_declarationContext,0); }; Method_declarationContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMethod_declaration(this); } }; Method_declarationContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMethod_declaration(this); } }; EParser.Method_declarationContext = Method_declarationContext; EParser.prototype.method_declaration = function() { var localctx = new Method_declarationContext(this, this._ctx, this.state); this.enterRule(localctx, 252, EParser.RULE_method_declaration); try { this.state = 1987; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 1983; this.abstract_method_declaration(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 1984; this.concrete_method_declaration(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 1985; this.native_method_declaration(); break; case 4: this.enterOuterAlt(localctx, 4); this.state = 1986; this.test_method_declaration(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Comment_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_comment_statement; return this; } Comment_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Comment_statementContext.prototype.constructor = Comment_statementContext; Comment_statementContext.prototype.COMMENT = function() { return this.getToken(EParser.COMMENT, 0); }; Comment_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterComment_statement(this); } }; Comment_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitComment_statement(this); } }; EParser.Comment_statementContext = Comment_statementContext; EParser.prototype.comment_statement = function() { var localctx = new Comment_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 254, EParser.RULE_comment_statement); try { this.enterOuterAlt(localctx, 1); this.state = 1989; this.match(EParser.COMMENT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_statement_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_statement_list; return this; } Native_statement_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_statement_listContext.prototype.constructor = Native_statement_listContext; Native_statement_listContext.prototype.native_statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Native_statementContext); } else { return this.getTypedRuleContext(Native_statementContext,i); } }; Native_statement_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Native_statement_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNative_statement_list(this); } }; Native_statement_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNative_statement_list(this); } }; EParser.Native_statement_listContext = Native_statement_listContext; EParser.prototype.native_statement_list = function() { var localctx = new Native_statement_listContext(this, this._ctx, this.state); this.enterRule(localctx, 256, EParser.RULE_native_statement_list); try { this.enterOuterAlt(localctx, 1); this.state = 1991; this.native_statement(); this.state = 1997; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,157,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 1992; this.lfp(); this.state = 1993; this.native_statement(); } this.state = 1999; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,157,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Native_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_native_statement; return this; } Native_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Native_statementContext.prototype.constructor = Native_statementContext; Native_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpNativeStatementContext(parser, ctx) { Native_statementContext.call(this, parser); Native_statementContext.prototype.copyFrom.call(this, ctx); return this; } CSharpNativeStatementContext.prototype = Object.create(Native_statementContext.prototype); CSharpNativeStatementContext.prototype.constructor = CSharpNativeStatementContext; EParser.CSharpNativeStatementContext = CSharpNativeStatementContext; CSharpNativeStatementContext.prototype.CSHARP = function() { return this.getToken(EParser.CSHARP, 0); }; CSharpNativeStatementContext.prototype.csharp_statement = function() { return this.getTypedRuleContext(Csharp_statementContext,0); }; CSharpNativeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpNativeStatement(this); } }; CSharpNativeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpNativeStatement(this); } }; function JavaNativeStatementContext(parser, ctx) { Native_statementContext.call(this, parser); Native_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavaNativeStatementContext.prototype = Object.create(Native_statementContext.prototype); JavaNativeStatementContext.prototype.constructor = JavaNativeStatementContext; EParser.JavaNativeStatementContext = JavaNativeStatementContext; JavaNativeStatementContext.prototype.JAVA = function() { return this.getToken(EParser.JAVA, 0); }; JavaNativeStatementContext.prototype.java_statement = function() { return this.getTypedRuleContext(Java_statementContext,0); }; JavaNativeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaNativeStatement(this); } }; JavaNativeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaNativeStatement(this); } }; function JavaScriptNativeStatementContext(parser, ctx) { Native_statementContext.call(this, parser); Native_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavaScriptNativeStatementContext.prototype = Object.create(Native_statementContext.prototype); JavaScriptNativeStatementContext.prototype.constructor = JavaScriptNativeStatementContext; EParser.JavaScriptNativeStatementContext = JavaScriptNativeStatementContext; JavaScriptNativeStatementContext.prototype.JAVASCRIPT = function() { return this.getToken(EParser.JAVASCRIPT, 0); }; JavaScriptNativeStatementContext.prototype.javascript_native_statement = function() { return this.getTypedRuleContext(Javascript_native_statementContext,0); }; JavaScriptNativeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaScriptNativeStatement(this); } }; JavaScriptNativeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaScriptNativeStatement(this); } }; function Python2NativeStatementContext(parser, ctx) { Native_statementContext.call(this, parser); Native_statementContext.prototype.copyFrom.call(this, ctx); return this; } Python2NativeStatementContext.prototype = Object.create(Native_statementContext.prototype); Python2NativeStatementContext.prototype.constructor = Python2NativeStatementContext; EParser.Python2NativeStatementContext = Python2NativeStatementContext; Python2NativeStatementContext.prototype.PYTHON2 = function() { return this.getToken(EParser.PYTHON2, 0); }; Python2NativeStatementContext.prototype.python_native_statement = function() { return this.getTypedRuleContext(Python_native_statementContext,0); }; Python2NativeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython2NativeStatement(this); } }; Python2NativeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython2NativeStatement(this); } }; function Python3NativeStatementContext(parser, ctx) { Native_statementContext.call(this, parser); Native_statementContext.prototype.copyFrom.call(this, ctx); return this; } Python3NativeStatementContext.prototype = Object.create(Native_statementContext.prototype); Python3NativeStatementContext.prototype.constructor = Python3NativeStatementContext; EParser.Python3NativeStatementContext = Python3NativeStatementContext; Python3NativeStatementContext.prototype.PYTHON3 = function() { return this.getToken(EParser.PYTHON3, 0); }; Python3NativeStatementContext.prototype.python_native_statement = function() { return this.getTypedRuleContext(Python_native_statementContext,0); }; Python3NativeStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython3NativeStatement(this); } }; Python3NativeStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython3NativeStatement(this); } }; EParser.Native_statementContext = Native_statementContext; EParser.prototype.native_statement = function() { var localctx = new Native_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 258, EParser.RULE_native_statement); try { this.state = 2010; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.JAVA: localctx = new JavaNativeStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2000; this.match(EParser.JAVA); this.state = 2001; this.java_statement(); break; case EParser.CSHARP: localctx = new CSharpNativeStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2002; this.match(EParser.CSHARP); this.state = 2003; this.csharp_statement(); break; case EParser.PYTHON2: localctx = new Python2NativeStatementContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2004; this.match(EParser.PYTHON2); this.state = 2005; this.python_native_statement(); break; case EParser.PYTHON3: localctx = new Python3NativeStatementContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2006; this.match(EParser.PYTHON3); this.state = 2007; this.python_native_statement(); break; case EParser.JAVASCRIPT: localctx = new JavaScriptNativeStatementContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2008; this.match(EParser.JAVASCRIPT); this.state = 2009; this.javascript_native_statement(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_native_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_native_statement; return this; } Python_native_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_native_statementContext.prototype.constructor = Python_native_statementContext; Python_native_statementContext.prototype.python_statement = function() { return this.getTypedRuleContext(Python_statementContext,0); }; Python_native_statementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; Python_native_statementContext.prototype.python_module = function() { return this.getTypedRuleContext(Python_moduleContext,0); }; Python_native_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_native_statement(this); } }; Python_native_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_native_statement(this); } }; EParser.Python_native_statementContext = Python_native_statementContext; EParser.prototype.python_native_statement = function() { var localctx = new Python_native_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 260, EParser.RULE_python_native_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2012; this.python_statement(); this.state = 2014; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.SEMI) { this.state = 2013; this.match(EParser.SEMI); } this.state = 2017; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.FROM) { this.state = 2016; this.python_module(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_native_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_native_statement; return this; } Javascript_native_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_native_statementContext.prototype.constructor = Javascript_native_statementContext; Javascript_native_statementContext.prototype.javascript_statement = function() { return this.getTypedRuleContext(Javascript_statementContext,0); }; Javascript_native_statementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; Javascript_native_statementContext.prototype.javascript_module = function() { return this.getTypedRuleContext(Javascript_moduleContext,0); }; Javascript_native_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_native_statement(this); } }; Javascript_native_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_native_statement(this); } }; EParser.Javascript_native_statementContext = Javascript_native_statementContext; EParser.prototype.javascript_native_statement = function() { var localctx = new Javascript_native_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 262, EParser.RULE_javascript_native_statement); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2019; this.javascript_statement(); this.state = 2021; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.SEMI) { this.state = 2020; this.match(EParser.SEMI); } this.state = 2024; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.FROM) { this.state = 2023; this.javascript_module(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Statement_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_statement_list; return this; } Statement_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Statement_listContext.prototype.constructor = Statement_listContext; Statement_listContext.prototype.statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(StatementContext); } else { return this.getTypedRuleContext(StatementContext,i); } }; Statement_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Statement_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterStatement_list(this); } }; Statement_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitStatement_list(this); } }; EParser.Statement_listContext = Statement_listContext; EParser.prototype.statement_list = function() { var localctx = new Statement_listContext(this, this._ctx, this.state); this.enterRule(localctx, 264, EParser.RULE_statement_list); try { this.enterOuterAlt(localctx, 1); this.state = 2026; this.statement(); this.state = 2032; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,163,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2027; this.lfp(); this.state = 2028; this.statement(); } this.state = 2034; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,163,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Assertion_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assertion_list; return this; } Assertion_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Assertion_listContext.prototype.constructor = Assertion_listContext; Assertion_listContext.prototype.assertion = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(AssertionContext); } else { return this.getTypedRuleContext(AssertionContext,i); } }; Assertion_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Assertion_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssertion_list(this); } }; Assertion_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssertion_list(this); } }; EParser.Assertion_listContext = Assertion_listContext; EParser.prototype.assertion_list = function() { var localctx = new Assertion_listContext(this, this._ctx, this.state); this.enterRule(localctx, 266, EParser.RULE_assertion_list); try { this.enterOuterAlt(localctx, 1); this.state = 2035; this.assertion(); this.state = 2041; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,164,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2036; this.lfp(); this.state = 2037; this.assertion(); } this.state = 2043; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,164,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Switch_case_statement_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_switch_case_statement_list; return this; } Switch_case_statement_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Switch_case_statement_listContext.prototype.constructor = Switch_case_statement_listContext; Switch_case_statement_listContext.prototype.switch_case_statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Switch_case_statementContext); } else { return this.getTypedRuleContext(Switch_case_statementContext,i); } }; Switch_case_statement_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Switch_case_statement_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSwitch_case_statement_list(this); } }; Switch_case_statement_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSwitch_case_statement_list(this); } }; EParser.Switch_case_statement_listContext = Switch_case_statement_listContext; EParser.prototype.switch_case_statement_list = function() { var localctx = new Switch_case_statement_listContext(this, this._ctx, this.state); this.enterRule(localctx, 268, EParser.RULE_switch_case_statement_list); try { this.enterOuterAlt(localctx, 1); this.state = 2044; this.switch_case_statement(); this.state = 2050; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,165,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2045; this.lfp(); this.state = 2046; this.switch_case_statement(); } this.state = 2052; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,165,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Catch_statement_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_catch_statement_list; return this; } Catch_statement_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Catch_statement_listContext.prototype.constructor = Catch_statement_listContext; Catch_statement_listContext.prototype.catch_statement = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Catch_statementContext); } else { return this.getTypedRuleContext(Catch_statementContext,i); } }; Catch_statement_listContext.prototype.lfp = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(LfpContext); } else { return this.getTypedRuleContext(LfpContext,i); } }; Catch_statement_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCatch_statement_list(this); } }; Catch_statement_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCatch_statement_list(this); } }; EParser.Catch_statement_listContext = Catch_statement_listContext; EParser.prototype.catch_statement_list = function() { var localctx = new Catch_statement_listContext(this, this._ctx, this.state); this.enterRule(localctx, 270, EParser.RULE_catch_statement_list); try { this.enterOuterAlt(localctx, 1); this.state = 2053; this.catch_statement(); this.state = 2059; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,166,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2054; this.lfp(); this.state = 2055; this.catch_statement(); } this.state = 2061; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,166,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Literal_collectionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_literal_collection; return this; } Literal_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Literal_collectionContext.prototype.constructor = Literal_collectionContext; Literal_collectionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function LiteralListLiteralContext(parser, ctx) { Literal_collectionContext.call(this, parser); Literal_collectionContext.prototype.copyFrom.call(this, ctx); return this; } LiteralListLiteralContext.prototype = Object.create(Literal_collectionContext.prototype); LiteralListLiteralContext.prototype.constructor = LiteralListLiteralContext; EParser.LiteralListLiteralContext = LiteralListLiteralContext; LiteralListLiteralContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; LiteralListLiteralContext.prototype.literal_list_literal = function() { return this.getTypedRuleContext(Literal_list_literalContext,0); }; LiteralListLiteralContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; LiteralListLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteralListLiteral(this); } }; LiteralListLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteralListLiteral(this); } }; function LiteralRangeLiteralContext(parser, ctx) { Literal_collectionContext.call(this, parser); this.low = null; // Atomic_literalContext; this.high = null; // Atomic_literalContext; Literal_collectionContext.prototype.copyFrom.call(this, ctx); return this; } LiteralRangeLiteralContext.prototype = Object.create(Literal_collectionContext.prototype); LiteralRangeLiteralContext.prototype.constructor = LiteralRangeLiteralContext; EParser.LiteralRangeLiteralContext = LiteralRangeLiteralContext; LiteralRangeLiteralContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; LiteralRangeLiteralContext.prototype.RANGE = function() { return this.getToken(EParser.RANGE, 0); }; LiteralRangeLiteralContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; LiteralRangeLiteralContext.prototype.atomic_literal = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Atomic_literalContext); } else { return this.getTypedRuleContext(Atomic_literalContext,i); } }; LiteralRangeLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteralRangeLiteral(this); } }; LiteralRangeLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteralRangeLiteral(this); } }; function LiteralSetLiteralContext(parser, ctx) { Literal_collectionContext.call(this, parser); Literal_collectionContext.prototype.copyFrom.call(this, ctx); return this; } LiteralSetLiteralContext.prototype = Object.create(Literal_collectionContext.prototype); LiteralSetLiteralContext.prototype.constructor = LiteralSetLiteralContext; EParser.LiteralSetLiteralContext = LiteralSetLiteralContext; LiteralSetLiteralContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; LiteralSetLiteralContext.prototype.literal_list_literal = function() { return this.getTypedRuleContext(Literal_list_literalContext,0); }; LiteralSetLiteralContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; LiteralSetLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteralSetLiteral(this); } }; LiteralSetLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteralSetLiteral(this); } }; EParser.Literal_collectionContext = Literal_collectionContext; EParser.prototype.literal_collection = function() { var localctx = new Literal_collectionContext(this, this._ctx, this.state); this.enterRule(localctx, 272, EParser.RULE_literal_collection); try { this.state = 2076; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,167,this._ctx); switch(la_) { case 1: localctx = new LiteralRangeLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2062; this.match(EParser.LBRAK); this.state = 2063; localctx.low = this.atomic_literal(); this.state = 2064; this.match(EParser.RANGE); this.state = 2065; localctx.high = this.atomic_literal(); this.state = 2066; this.match(EParser.RBRAK); break; case 2: localctx = new LiteralListLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2068; this.match(EParser.LBRAK); this.state = 2069; this.literal_list_literal(); this.state = 2070; this.match(EParser.RBRAK); break; case 3: localctx = new LiteralSetLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2072; this.match(EParser.LT); this.state = 2073; this.literal_list_literal(); this.state = 2074; this.match(EParser.GT); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Atomic_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_atomic_literal; return this; } Atomic_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Atomic_literalContext.prototype.constructor = Atomic_literalContext; Atomic_literalContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function MinIntegerLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } MinIntegerLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); MinIntegerLiteralContext.prototype.constructor = MinIntegerLiteralContext; EParser.MinIntegerLiteralContext = MinIntegerLiteralContext; MinIntegerLiteralContext.prototype.MIN_INTEGER = function() { return this.getToken(EParser.MIN_INTEGER, 0); }; MinIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMinIntegerLiteral(this); } }; MinIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMinIntegerLiteral(this); } }; function DateLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } DateLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); DateLiteralContext.prototype.constructor = DateLiteralContext; EParser.DateLiteralContext = DateLiteralContext; DateLiteralContext.prototype.DATE_LITERAL = function() { return this.getToken(EParser.DATE_LITERAL, 0); }; DateLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDateLiteral(this); } }; DateLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDateLiteral(this); } }; function BooleanLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } BooleanLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); BooleanLiteralContext.prototype.constructor = BooleanLiteralContext; EParser.BooleanLiteralContext = BooleanLiteralContext; BooleanLiteralContext.prototype.BOOLEAN_LITERAL = function() { return this.getToken(EParser.BOOLEAN_LITERAL, 0); }; BooleanLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterBooleanLiteral(this); } }; BooleanLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitBooleanLiteral(this); } }; function VersionLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } VersionLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); VersionLiteralContext.prototype.constructor = VersionLiteralContext; EParser.VersionLiteralContext = VersionLiteralContext; VersionLiteralContext.prototype.VERSION_LITERAL = function() { return this.getToken(EParser.VERSION_LITERAL, 0); }; VersionLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterVersionLiteral(this); } }; VersionLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitVersionLiteral(this); } }; function HexadecimalLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } HexadecimalLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); HexadecimalLiteralContext.prototype.constructor = HexadecimalLiteralContext; EParser.HexadecimalLiteralContext = HexadecimalLiteralContext; HexadecimalLiteralContext.prototype.HEXA_LITERAL = function() { return this.getToken(EParser.HEXA_LITERAL, 0); }; HexadecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterHexadecimalLiteral(this); } }; HexadecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitHexadecimalLiteral(this); } }; function UUIDLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } UUIDLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); UUIDLiteralContext.prototype.constructor = UUIDLiteralContext; EParser.UUIDLiteralContext = UUIDLiteralContext; UUIDLiteralContext.prototype.UUID_LITERAL = function() { return this.getToken(EParser.UUID_LITERAL, 0); }; UUIDLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterUUIDLiteral(this); } }; UUIDLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitUUIDLiteral(this); } }; function MaxIntegerLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } MaxIntegerLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); MaxIntegerLiteralContext.prototype.constructor = MaxIntegerLiteralContext; EParser.MaxIntegerLiteralContext = MaxIntegerLiteralContext; MaxIntegerLiteralContext.prototype.MAX_INTEGER = function() { return this.getToken(EParser.MAX_INTEGER, 0); }; MaxIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMaxIntegerLiteral(this); } }; MaxIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMaxIntegerLiteral(this); } }; function DateTimeLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } DateTimeLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); DateTimeLiteralContext.prototype.constructor = DateTimeLiteralContext; EParser.DateTimeLiteralContext = DateTimeLiteralContext; DateTimeLiteralContext.prototype.DATETIME_LITERAL = function() { return this.getToken(EParser.DATETIME_LITERAL, 0); }; DateTimeLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDateTimeLiteral(this); } }; DateTimeLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDateTimeLiteral(this); } }; function PeriodLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } PeriodLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); PeriodLiteralContext.prototype.constructor = PeriodLiteralContext; EParser.PeriodLiteralContext = PeriodLiteralContext; PeriodLiteralContext.prototype.PERIOD_LITERAL = function() { return this.getToken(EParser.PERIOD_LITERAL, 0); }; PeriodLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPeriodLiteral(this); } }; PeriodLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPeriodLiteral(this); } }; function DecimalLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } DecimalLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); DecimalLiteralContext.prototype.constructor = DecimalLiteralContext; EParser.DecimalLiteralContext = DecimalLiteralContext; DecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { return this.getToken(EParser.DECIMAL_LITERAL, 0); }; DecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDecimalLiteral(this); } }; DecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDecimalLiteral(this); } }; function TextLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } TextLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); TextLiteralContext.prototype.constructor = TextLiteralContext; EParser.TextLiteralContext = TextLiteralContext; TextLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; TextLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTextLiteral(this); } }; TextLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTextLiteral(this); } }; function NullLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.n = null; // Null_literalContext; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } NullLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); NullLiteralContext.prototype.constructor = NullLiteralContext; EParser.NullLiteralContext = NullLiteralContext; NullLiteralContext.prototype.null_literal = function() { return this.getTypedRuleContext(Null_literalContext,0); }; NullLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNullLiteral(this); } }; NullLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNullLiteral(this); } }; function IntegerLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } IntegerLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); IntegerLiteralContext.prototype.constructor = IntegerLiteralContext; EParser.IntegerLiteralContext = IntegerLiteralContext; IntegerLiteralContext.prototype.INTEGER_LITERAL = function() { return this.getToken(EParser.INTEGER_LITERAL, 0); }; IntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIntegerLiteral(this); } }; IntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIntegerLiteral(this); } }; function TimeLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } TimeLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); TimeLiteralContext.prototype.constructor = TimeLiteralContext; EParser.TimeLiteralContext = TimeLiteralContext; TimeLiteralContext.prototype.TIME_LITERAL = function() { return this.getToken(EParser.TIME_LITERAL, 0); }; TimeLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTimeLiteral(this); } }; TimeLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTimeLiteral(this); } }; function CharacterLiteralContext(parser, ctx) { Atomic_literalContext.call(this, parser); this.t = null; // Token; Atomic_literalContext.prototype.copyFrom.call(this, ctx); return this; } CharacterLiteralContext.prototype = Object.create(Atomic_literalContext.prototype); CharacterLiteralContext.prototype.constructor = CharacterLiteralContext; EParser.CharacterLiteralContext = CharacterLiteralContext; CharacterLiteralContext.prototype.CHAR_LITERAL = function() { return this.getToken(EParser.CHAR_LITERAL, 0); }; CharacterLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCharacterLiteral(this); } }; CharacterLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCharacterLiteral(this); } }; EParser.Atomic_literalContext = Atomic_literalContext; EParser.prototype.atomic_literal = function() { var localctx = new Atomic_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 274, EParser.RULE_atomic_literal); try { this.state = 2093; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.MIN_INTEGER: localctx = new MinIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2078; localctx.t = this.match(EParser.MIN_INTEGER); break; case EParser.MAX_INTEGER: localctx = new MaxIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2079; localctx.t = this.match(EParser.MAX_INTEGER); break; case EParser.INTEGER_LITERAL: localctx = new IntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2080; localctx.t = this.match(EParser.INTEGER_LITERAL); break; case EParser.HEXA_LITERAL: localctx = new HexadecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2081; localctx.t = this.match(EParser.HEXA_LITERAL); break; case EParser.CHAR_LITERAL: localctx = new CharacterLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2082; localctx.t = this.match(EParser.CHAR_LITERAL); break; case EParser.DATE_LITERAL: localctx = new DateLiteralContext(this, localctx); this.enterOuterAlt(localctx, 6); this.state = 2083; localctx.t = this.match(EParser.DATE_LITERAL); break; case EParser.TIME_LITERAL: localctx = new TimeLiteralContext(this, localctx); this.enterOuterAlt(localctx, 7); this.state = 2084; localctx.t = this.match(EParser.TIME_LITERAL); break; case EParser.TEXT_LITERAL: localctx = new TextLiteralContext(this, localctx); this.enterOuterAlt(localctx, 8); this.state = 2085; localctx.t = this.match(EParser.TEXT_LITERAL); break; case EParser.DECIMAL_LITERAL: localctx = new DecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 9); this.state = 2086; localctx.t = this.match(EParser.DECIMAL_LITERAL); break; case EParser.DATETIME_LITERAL: localctx = new DateTimeLiteralContext(this, localctx); this.enterOuterAlt(localctx, 10); this.state = 2087; localctx.t = this.match(EParser.DATETIME_LITERAL); break; case EParser.BOOLEAN_LITERAL: localctx = new BooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 11); this.state = 2088; localctx.t = this.match(EParser.BOOLEAN_LITERAL); break; case EParser.PERIOD_LITERAL: localctx = new PeriodLiteralContext(this, localctx); this.enterOuterAlt(localctx, 12); this.state = 2089; localctx.t = this.match(EParser.PERIOD_LITERAL); break; case EParser.VERSION_LITERAL: localctx = new VersionLiteralContext(this, localctx); this.enterOuterAlt(localctx, 13); this.state = 2090; localctx.t = this.match(EParser.VERSION_LITERAL); break; case EParser.UUID_LITERAL: localctx = new UUIDLiteralContext(this, localctx); this.enterOuterAlt(localctx, 14); this.state = 2091; localctx.t = this.match(EParser.UUID_LITERAL); break; case EParser.NOTHING: localctx = new NullLiteralContext(this, localctx); this.enterOuterAlt(localctx, 15); this.state = 2092; localctx.n = this.null_literal(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Literal_list_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_literal_list_literal; return this; } Literal_list_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Literal_list_literalContext.prototype.constructor = Literal_list_literalContext; Literal_list_literalContext.prototype.atomic_literal = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Atomic_literalContext); } else { return this.getTypedRuleContext(Atomic_literalContext,i); } }; Literal_list_literalContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Literal_list_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteral_list_literal(this); } }; Literal_list_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteral_list_literal(this); } }; EParser.Literal_list_literalContext = Literal_list_literalContext; EParser.prototype.literal_list_literal = function() { var localctx = new Literal_list_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 276, EParser.RULE_literal_list_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2095; this.atomic_literal(); this.state = 2100; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 2096; this.match(EParser.COMMA); this.state = 2097; this.atomic_literal(); this.state = 2102; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function This_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_this_expression; return this; } This_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); This_expressionContext.prototype.constructor = This_expressionContext; This_expressionContext.prototype.SELF = function() { return this.getToken(EParser.SELF, 0); }; This_expressionContext.prototype.THIS = function() { return this.getToken(EParser.THIS, 0); }; This_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterThis_expression(this); } }; This_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitThis_expression(this); } }; EParser.This_expressionContext = This_expressionContext; EParser.prototype.this_expression = function() { var localctx = new This_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 278, EParser.RULE_this_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2103; _la = this._input.LA(1); if(!(_la===EParser.SELF || _la===EParser.THIS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Parenthesis_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_parenthesis_expression; return this; } Parenthesis_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Parenthesis_expressionContext.prototype.constructor = Parenthesis_expressionContext; Parenthesis_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Parenthesis_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Parenthesis_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Parenthesis_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterParenthesis_expression(this); } }; Parenthesis_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitParenthesis_expression(this); } }; EParser.Parenthesis_expressionContext = Parenthesis_expressionContext; EParser.prototype.parenthesis_expression = function() { var localctx = new Parenthesis_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 280, EParser.RULE_parenthesis_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2105; this.match(EParser.LPAR); this.state = 2106; this.expression(0); this.state = 2107; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Literal_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_literal_expression; return this; } Literal_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Literal_expressionContext.prototype.constructor = Literal_expressionContext; Literal_expressionContext.prototype.atomic_literal = function() { return this.getTypedRuleContext(Atomic_literalContext,0); }; Literal_expressionContext.prototype.collection_literal = function() { return this.getTypedRuleContext(Collection_literalContext,0); }; Literal_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterLiteral_expression(this); } }; Literal_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitLiteral_expression(this); } }; EParser.Literal_expressionContext = Literal_expressionContext; EParser.prototype.literal_expression = function() { var localctx = new Literal_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 282, EParser.RULE_literal_expression); try { this.state = 2111; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.NOTHING: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.MIN_INTEGER: case EParser.MAX_INTEGER: case EParser.TEXT_LITERAL: case EParser.UUID_LITERAL: case EParser.INTEGER_LITERAL: case EParser.HEXA_LITERAL: case EParser.DECIMAL_LITERAL: case EParser.DATETIME_LITERAL: case EParser.TIME_LITERAL: case EParser.DATE_LITERAL: case EParser.PERIOD_LITERAL: case EParser.VERSION_LITERAL: this.enterOuterAlt(localctx, 1); this.state = 2109; this.atomic_literal(); break; case EParser.LPAR: case EParser.LBRAK: case EParser.LCURL: case EParser.LT: case EParser.LTCOLONGT: case EParser.MUTABLE: this.enterOuterAlt(localctx, 2); this.state = 2110; this.collection_literal(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Collection_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_collection_literal; return this; } Collection_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Collection_literalContext.prototype.constructor = Collection_literalContext; Collection_literalContext.prototype.range_literal = function() { return this.getTypedRuleContext(Range_literalContext,0); }; Collection_literalContext.prototype.list_literal = function() { return this.getTypedRuleContext(List_literalContext,0); }; Collection_literalContext.prototype.set_literal = function() { return this.getTypedRuleContext(Set_literalContext,0); }; Collection_literalContext.prototype.dict_literal = function() { return this.getTypedRuleContext(Dict_literalContext,0); }; Collection_literalContext.prototype.document_literal = function() { return this.getTypedRuleContext(Document_literalContext,0); }; Collection_literalContext.prototype.tuple_literal = function() { return this.getTypedRuleContext(Tuple_literalContext,0); }; Collection_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCollection_literal(this); } }; Collection_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCollection_literal(this); } }; EParser.Collection_literalContext = Collection_literalContext; EParser.prototype.collection_literal = function() { var localctx = new Collection_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 284, EParser.RULE_collection_literal); try { this.state = 2119; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 2113; this.range_literal(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 2114; this.list_literal(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 2115; this.set_literal(); break; case 4: this.enterOuterAlt(localctx, 4); this.state = 2116; this.dict_literal(); break; case 5: this.enterOuterAlt(localctx, 5); this.state = 2117; this.document_literal(); break; case 6: this.enterOuterAlt(localctx, 6); this.state = 2118; this.tuple_literal(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Tuple_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_tuple_literal; return this; } Tuple_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Tuple_literalContext.prototype.constructor = Tuple_literalContext; Tuple_literalContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Tuple_literalContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Tuple_literalContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; Tuple_literalContext.prototype.expression_tuple = function() { return this.getTypedRuleContext(Expression_tupleContext,0); }; Tuple_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterTuple_literal(this); } }; Tuple_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitTuple_literal(this); } }; EParser.Tuple_literalContext = Tuple_literalContext; EParser.prototype.tuple_literal = function() { var localctx = new Tuple_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 286, EParser.RULE_tuple_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2122; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 2121; this.match(EParser.MUTABLE); } this.state = 2124; this.match(EParser.LPAR); this.state = 2126; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 2125; this.expression_tuple(); } this.state = 2128; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Dict_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_dict_literal; return this; } Dict_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dict_literalContext.prototype.constructor = Dict_literalContext; Dict_literalContext.prototype.LTCOLONGT = function() { return this.getToken(EParser.LTCOLONGT, 0); }; Dict_literalContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; Dict_literalContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Dict_literalContext.prototype.dict_entry_list = function() { return this.getTypedRuleContext(Dict_entry_listContext,0); }; Dict_literalContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Dict_literalContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Dict_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDict_literal(this); } }; Dict_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDict_literal(this); } }; EParser.Dict_literalContext = Dict_literalContext; EParser.prototype.dict_literal = function() { var localctx = new Dict_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 288, EParser.RULE_dict_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2131; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.MUTABLE) { this.state = 2130; this.match(EParser.MUTABLE); } this.state = 2141; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); switch(la_) { case 1: this.state = 2133; this.match(EParser.LT); this.state = 2134; this.dict_entry_list(); this.state = 2135; this.match(EParser.GT); break; case 2: this.state = 2137; this.match(EParser.LTCOLONGT); break; case 3: this.state = 2138; this.match(EParser.LT); this.state = 2139; this.match(EParser.COLON); this.state = 2140; this.match(EParser.GT); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Document_literalContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_document_literal; return this; } Document_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Document_literalContext.prototype.constructor = Document_literalContext; Document_literalContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; Document_literalContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; Document_literalContext.prototype.dict_entry_list = function() { return this.getTypedRuleContext(Dict_entry_listContext,0); }; Document_literalContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDocument_literal(this); } }; Document_literalContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDocument_literal(this); } }; EParser.Document_literalContext = Document_literalContext; EParser.prototype.document_literal = function() { var localctx = new Document_literalContext(this, this._ctx, this.state); this.enterRule(localctx, 290, EParser.RULE_document_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2143; this.match(EParser.LCURL); this.state = 2145; this._errHandler.sync(this); _la = this._input.LA(1); if(((((_la - 166)) & ~0x1f) == 0 && ((1 << (_la - 166)) & ((1 << (EParser.SYMBOL_IDENTIFIER - 166)) | (1 << (EParser.TYPE_IDENTIFIER - 166)) | (1 << (EParser.VARIABLE_IDENTIFIER - 166)) | (1 << (EParser.TEXT_LITERAL - 166)))) !== 0)) { this.state = 2144; this.dict_entry_list(); } this.state = 2147; this.match(EParser.RCURL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Expression_tupleContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_expression_tuple; return this; } Expression_tupleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Expression_tupleContext.prototype.constructor = Expression_tupleContext; Expression_tupleContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; Expression_tupleContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Expression_tupleContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterExpression_tuple(this); } }; Expression_tupleContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitExpression_tuple(this); } }; EParser.Expression_tupleContext = Expression_tupleContext; EParser.prototype.expression_tuple = function() { var localctx = new Expression_tupleContext(this, this._ctx, this.state); this.enterRule(localctx, 292, EParser.RULE_expression_tuple); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2149; this.expression(0); this.state = 2150; this.match(EParser.COMMA); this.state = 2159; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 2151; this.expression(0); this.state = 2156; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 2152; this.match(EParser.COMMA); this.state = 2153; this.expression(0); this.state = 2158; this._errHandler.sync(this); _la = this._input.LA(1); } } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Dict_entry_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_dict_entry_list; return this; } Dict_entry_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dict_entry_listContext.prototype.constructor = Dict_entry_listContext; Dict_entry_listContext.prototype.dict_entry = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Dict_entryContext); } else { return this.getTypedRuleContext(Dict_entryContext,i); } }; Dict_entry_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Dict_entry_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDict_entry_list(this); } }; Dict_entry_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDict_entry_list(this); } }; EParser.Dict_entry_listContext = Dict_entry_listContext; EParser.prototype.dict_entry_list = function() { var localctx = new Dict_entry_listContext(this, this._ctx, this.state); this.enterRule(localctx, 294, EParser.RULE_dict_entry_list); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2161; this.dict_entry(); this.state = 2166; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.COMMA) { this.state = 2162; this.match(EParser.COMMA); this.state = 2163; this.dict_entry(); this.state = 2168; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Dict_entryContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_dict_entry; this.key = null; // Dict_keyContext this.value = null; // ExpressionContext return this; } Dict_entryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dict_entryContext.prototype.constructor = Dict_entryContext; Dict_entryContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Dict_entryContext.prototype.dict_key = function() { return this.getTypedRuleContext(Dict_keyContext,0); }; Dict_entryContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Dict_entryContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDict_entry(this); } }; Dict_entryContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDict_entry(this); } }; EParser.Dict_entryContext = Dict_entryContext; EParser.prototype.dict_entry = function() { var localctx = new Dict_entryContext(this, this._ctx, this.state); this.enterRule(localctx, 296, EParser.RULE_dict_entry); try { this.enterOuterAlt(localctx, 1); this.state = 2169; localctx.key = this.dict_key(); this.state = 2170; this.match(EParser.COLON); this.state = 2171; localctx.value = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Dict_keyContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_dict_key; return this; } Dict_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dict_keyContext.prototype.constructor = Dict_keyContext; Dict_keyContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function DictKeyIdentifierContext(parser, ctx) { Dict_keyContext.call(this, parser); this.name = null; // Any_identifierContext; Dict_keyContext.prototype.copyFrom.call(this, ctx); return this; } DictKeyIdentifierContext.prototype = Object.create(Dict_keyContext.prototype); DictKeyIdentifierContext.prototype.constructor = DictKeyIdentifierContext; EParser.DictKeyIdentifierContext = DictKeyIdentifierContext; DictKeyIdentifierContext.prototype.any_identifier = function() { return this.getTypedRuleContext(Any_identifierContext,0); }; DictKeyIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDictKeyIdentifier(this); } }; DictKeyIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDictKeyIdentifier(this); } }; function DictKeyTextContext(parser, ctx) { Dict_keyContext.call(this, parser); this.name = null; // Token; Dict_keyContext.prototype.copyFrom.call(this, ctx); return this; } DictKeyTextContext.prototype = Object.create(Dict_keyContext.prototype); DictKeyTextContext.prototype.constructor = DictKeyTextContext; EParser.DictKeyTextContext = DictKeyTextContext; DictKeyTextContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; DictKeyTextContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDictKeyText(this); } }; DictKeyTextContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDictKeyText(this); } }; EParser.Dict_keyContext = Dict_keyContext; EParser.prototype.dict_key = function() { var localctx = new Dict_keyContext(this, this._ctx, this.state); this.enterRule(localctx, 298, EParser.RULE_dict_key); try { this.state = 2175; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: localctx = new DictKeyIdentifierContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2173; localctx.name = this.any_identifier(); break; case EParser.TEXT_LITERAL: localctx = new DictKeyTextContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2174; localctx.name = this.match(EParser.TEXT_LITERAL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Slice_argumentsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_slice_arguments; return this; } Slice_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Slice_argumentsContext.prototype.constructor = Slice_argumentsContext; Slice_argumentsContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function SliceFirstAndLastContext(parser, ctx) { Slice_argumentsContext.call(this, parser); this.first = null; // ExpressionContext; this.last = null; // ExpressionContext; Slice_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } SliceFirstAndLastContext.prototype = Object.create(Slice_argumentsContext.prototype); SliceFirstAndLastContext.prototype.constructor = SliceFirstAndLastContext; EParser.SliceFirstAndLastContext = SliceFirstAndLastContext; SliceFirstAndLastContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; SliceFirstAndLastContext.prototype.expression = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressionContext); } else { return this.getTypedRuleContext(ExpressionContext,i); } }; SliceFirstAndLastContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSliceFirstAndLast(this); } }; SliceFirstAndLastContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSliceFirstAndLast(this); } }; function SliceLastOnlyContext(parser, ctx) { Slice_argumentsContext.call(this, parser); this.last = null; // ExpressionContext; Slice_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } SliceLastOnlyContext.prototype = Object.create(Slice_argumentsContext.prototype); SliceLastOnlyContext.prototype.constructor = SliceLastOnlyContext; EParser.SliceLastOnlyContext = SliceLastOnlyContext; SliceLastOnlyContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; SliceLastOnlyContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; SliceLastOnlyContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSliceLastOnly(this); } }; SliceLastOnlyContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSliceLastOnly(this); } }; function SliceFirstOnlyContext(parser, ctx) { Slice_argumentsContext.call(this, parser); this.first = null; // ExpressionContext; Slice_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } SliceFirstOnlyContext.prototype = Object.create(Slice_argumentsContext.prototype); SliceFirstOnlyContext.prototype.constructor = SliceFirstOnlyContext; EParser.SliceFirstOnlyContext = SliceFirstOnlyContext; SliceFirstOnlyContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; SliceFirstOnlyContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; SliceFirstOnlyContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSliceFirstOnly(this); } }; SliceFirstOnlyContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSliceFirstOnly(this); } }; EParser.Slice_argumentsContext = Slice_argumentsContext; EParser.prototype.slice_arguments = function() { var localctx = new Slice_argumentsContext(this, this._ctx, this.state); this.enterRule(localctx, 300, EParser.RULE_slice_arguments); try { this.state = 2186; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,181,this._ctx); switch(la_) { case 1: localctx = new SliceFirstAndLastContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2177; localctx.first = this.expression(0); this.state = 2178; this.match(EParser.COLON); this.state = 2179; localctx.last = this.expression(0); break; case 2: localctx = new SliceFirstOnlyContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2181; localctx.first = this.expression(0); this.state = 2182; this.match(EParser.COLON); break; case 3: localctx = new SliceLastOnlyContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2184; this.match(EParser.COLON); this.state = 2185; localctx.last = this.expression(0); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Assign_variable_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assign_variable_statement; return this; } Assign_variable_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Assign_variable_statementContext.prototype.constructor = Assign_variable_statementContext; Assign_variable_statementContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; Assign_variable_statementContext.prototype.assign = function() { return this.getTypedRuleContext(AssignContext,0); }; Assign_variable_statementContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Assign_variable_statementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssign_variable_statement(this); } }; Assign_variable_statementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssign_variable_statement(this); } }; EParser.Assign_variable_statementContext = Assign_variable_statementContext; EParser.prototype.assign_variable_statement = function() { var localctx = new Assign_variable_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 302, EParser.RULE_assign_variable_statement); try { this.enterOuterAlt(localctx, 1); this.state = 2188; this.variable_identifier(); this.state = 2189; this.assign(); this.state = 2190; this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Assignable_instanceContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assignable_instance; return this; } Assignable_instanceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Assignable_instanceContext.prototype.constructor = Assignable_instanceContext; Assignable_instanceContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function ChildInstanceContext(parser, ctx) { Assignable_instanceContext.call(this, parser); Assignable_instanceContext.prototype.copyFrom.call(this, ctx); return this; } ChildInstanceContext.prototype = Object.create(Assignable_instanceContext.prototype); ChildInstanceContext.prototype.constructor = ChildInstanceContext; EParser.ChildInstanceContext = ChildInstanceContext; ChildInstanceContext.prototype.assignable_instance = function() { return this.getTypedRuleContext(Assignable_instanceContext,0); }; ChildInstanceContext.prototype.child_instance = function() { return this.getTypedRuleContext(Child_instanceContext,0); }; ChildInstanceContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterChildInstance(this); } }; ChildInstanceContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitChildInstance(this); } }; function RootInstanceContext(parser, ctx) { Assignable_instanceContext.call(this, parser); Assignable_instanceContext.prototype.copyFrom.call(this, ctx); return this; } RootInstanceContext.prototype = Object.create(Assignable_instanceContext.prototype); RootInstanceContext.prototype.constructor = RootInstanceContext; EParser.RootInstanceContext = RootInstanceContext; RootInstanceContext.prototype.variable_identifier = function() { return this.getTypedRuleContext(Variable_identifierContext,0); }; RootInstanceContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRootInstance(this); } }; RootInstanceContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRootInstance(this); } }; EParser.prototype.assignable_instance = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Assignable_instanceContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 304; this.enterRecursionRule(localctx, 304, EParser.RULE_assignable_instance, _p); try { this.enterOuterAlt(localctx, 1); localctx = new RootInstanceContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2193; this.variable_identifier(); this._ctx.stop = this._input.LT(-1); this.state = 2199; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,182,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new ChildInstanceContext(this, new Assignable_instanceContext(this, _parentctx, _parentState)); this.pushNewRecursionContext(localctx, _startState, EParser.RULE_assignable_instance); this.state = 2195; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2196; this.child_instance(); } this.state = 2201; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,182,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Is_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_is_expression; return this; } Is_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Is_expressionContext.prototype.constructor = Is_expressionContext; Is_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function IsATypeExpressionContext(parser, ctx) { Is_expressionContext.call(this, parser); Is_expressionContext.prototype.copyFrom.call(this, ctx); return this; } IsATypeExpressionContext.prototype = Object.create(Is_expressionContext.prototype); IsATypeExpressionContext.prototype.constructor = IsATypeExpressionContext; EParser.IsATypeExpressionContext = IsATypeExpressionContext; IsATypeExpressionContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; IsATypeExpressionContext.prototype.category_or_any_type = function() { return this.getTypedRuleContext(Category_or_any_typeContext,0); }; IsATypeExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIsATypeExpression(this); } }; IsATypeExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIsATypeExpression(this); } }; function IsOtherExpressionContext(parser, ctx) { Is_expressionContext.call(this, parser); Is_expressionContext.prototype.copyFrom.call(this, ctx); return this; } IsOtherExpressionContext.prototype = Object.create(Is_expressionContext.prototype); IsOtherExpressionContext.prototype.constructor = IsOtherExpressionContext; EParser.IsOtherExpressionContext = IsOtherExpressionContext; IsOtherExpressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; IsOtherExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIsOtherExpression(this); } }; IsOtherExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIsOtherExpression(this); } }; EParser.Is_expressionContext = Is_expressionContext; EParser.prototype.is_expression = function() { var localctx = new Is_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 306, EParser.RULE_is_expression); try { this.state = 2206; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); switch(la_) { case 1: localctx = new IsATypeExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2202; if (!( this.willBeAOrAn())) { throw new antlr4.error.FailedPredicateException(this, "$parser.willBeAOrAn()"); } this.state = 2203; this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2204; this.category_or_any_type(); break; case 2: localctx = new IsOtherExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2205; this.expression(0); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Read_all_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_read_all_expression; this.source = null; // ExpressionContext return this; } Read_all_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Read_all_expressionContext.prototype.constructor = Read_all_expressionContext; Read_all_expressionContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Read_all_expressionContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; Read_all_expressionContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Read_all_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Read_all_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRead_all_expression(this); } }; Read_all_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRead_all_expression(this); } }; EParser.Read_all_expressionContext = Read_all_expressionContext; EParser.prototype.read_all_expression = function() { var localctx = new Read_all_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 308, EParser.RULE_read_all_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2208; this.match(EParser.READ); this.state = 2209; this.match(EParser.ALL); this.state = 2210; this.match(EParser.FROM); this.state = 2211; localctx.source = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Read_one_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_read_one_expression; this.source = null; // ExpressionContext return this; } Read_one_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Read_one_expressionContext.prototype.constructor = Read_one_expressionContext; Read_one_expressionContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Read_one_expressionContext.prototype.ONE = function() { return this.getToken(EParser.ONE, 0); }; Read_one_expressionContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; Read_one_expressionContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; Read_one_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterRead_one_expression(this); } }; Read_one_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitRead_one_expression(this); } }; EParser.Read_one_expressionContext = Read_one_expressionContext; EParser.prototype.read_one_expression = function() { var localctx = new Read_one_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 310, EParser.RULE_read_one_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2213; this.match(EParser.READ); this.state = 2214; this.match(EParser.ONE); this.state = 2215; this.match(EParser.FROM); this.state = 2216; localctx.source = this.expression(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Order_by_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_order_by_list; return this; } Order_by_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Order_by_listContext.prototype.constructor = Order_by_listContext; Order_by_listContext.prototype.order_by = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Order_byContext); } else { return this.getTypedRuleContext(Order_byContext,i); } }; Order_by_listContext.prototype.COMMA = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COMMA); } else { return this.getToken(EParser.COMMA, i); } }; Order_by_listContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOrder_by_list(this); } }; Order_by_listContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOrder_by_list(this); } }; EParser.Order_by_listContext = Order_by_listContext; EParser.prototype.order_by_list = function() { var localctx = new Order_by_listContext(this, this._ctx, this.state); this.enterRule(localctx, 312, EParser.RULE_order_by_list); try { this.enterOuterAlt(localctx, 1); this.state = 2218; this.order_by(); this.state = 2223; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,184,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2219; this.match(EParser.COMMA); this.state = 2220; this.order_by(); } this.state = 2225; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,184,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Order_byContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_order_by; return this; } Order_byContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Order_byContext.prototype.constructor = Order_byContext; Order_byContext.prototype.variable_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Variable_identifierContext); } else { return this.getTypedRuleContext(Variable_identifierContext,i); } }; Order_byContext.prototype.DOT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.DOT); } else { return this.getToken(EParser.DOT, i); } }; Order_byContext.prototype.ASC = function() { return this.getToken(EParser.ASC, 0); }; Order_byContext.prototype.DESC = function() { return this.getToken(EParser.DESC, 0); }; Order_byContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOrder_by(this); } }; Order_byContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOrder_by(this); } }; EParser.Order_byContext = Order_byContext; EParser.prototype.order_by = function() { var localctx = new Order_byContext(this, this._ctx, this.state); this.enterRule(localctx, 314, EParser.RULE_order_by); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2226; this.variable_identifier(); this.state = 2231; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,185,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2227; this.match(EParser.DOT); this.state = 2228; this.variable_identifier(); } this.state = 2233; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,185,this._ctx); } this.state = 2235; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); if(la_===1) { this.state = 2234; _la = this._input.LA(1); if(!(_la===EParser.ASC || _la===EParser.DESC)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function OperatorContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_operator; return this; } OperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); OperatorContext.prototype.constructor = OperatorContext; OperatorContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function OperatorPlusContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorPlusContext.prototype = Object.create(OperatorContext.prototype); OperatorPlusContext.prototype.constructor = OperatorPlusContext; EParser.OperatorPlusContext = OperatorPlusContext; OperatorPlusContext.prototype.PLUS = function() { return this.getToken(EParser.PLUS, 0); }; OperatorPlusContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorPlus(this); } }; OperatorPlusContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorPlus(this); } }; function OperatorDivideContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorDivideContext.prototype = Object.create(OperatorContext.prototype); OperatorDivideContext.prototype.constructor = OperatorDivideContext; EParser.OperatorDivideContext = OperatorDivideContext; OperatorDivideContext.prototype.divide = function() { return this.getTypedRuleContext(DivideContext,0); }; OperatorDivideContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorDivide(this); } }; OperatorDivideContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorDivide(this); } }; function OperatorIDivideContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorIDivideContext.prototype = Object.create(OperatorContext.prototype); OperatorIDivideContext.prototype.constructor = OperatorIDivideContext; EParser.OperatorIDivideContext = OperatorIDivideContext; OperatorIDivideContext.prototype.idivide = function() { return this.getTypedRuleContext(IdivideContext,0); }; OperatorIDivideContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorIDivide(this); } }; OperatorIDivideContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorIDivide(this); } }; function OperatorMultiplyContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorMultiplyContext.prototype = Object.create(OperatorContext.prototype); OperatorMultiplyContext.prototype.constructor = OperatorMultiplyContext; EParser.OperatorMultiplyContext = OperatorMultiplyContext; OperatorMultiplyContext.prototype.multiply = function() { return this.getTypedRuleContext(MultiplyContext,0); }; OperatorMultiplyContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorMultiply(this); } }; OperatorMultiplyContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorMultiply(this); } }; function OperatorMinusContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorMinusContext.prototype = Object.create(OperatorContext.prototype); OperatorMinusContext.prototype.constructor = OperatorMinusContext; EParser.OperatorMinusContext = OperatorMinusContext; OperatorMinusContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; OperatorMinusContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorMinus(this); } }; OperatorMinusContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorMinus(this); } }; function OperatorModuloContext(parser, ctx) { OperatorContext.call(this, parser); OperatorContext.prototype.copyFrom.call(this, ctx); return this; } OperatorModuloContext.prototype = Object.create(OperatorContext.prototype); OperatorModuloContext.prototype.constructor = OperatorModuloContext; EParser.OperatorModuloContext = OperatorModuloContext; OperatorModuloContext.prototype.modulo = function() { return this.getTypedRuleContext(ModuloContext,0); }; OperatorModuloContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterOperatorModulo(this); } }; OperatorModuloContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitOperatorModulo(this); } }; EParser.OperatorContext = OperatorContext; EParser.prototype.operator = function() { var localctx = new OperatorContext(this, this._ctx, this.state); this.enterRule(localctx, 316, EParser.RULE_operator); try { this.state = 2243; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.PLUS: localctx = new OperatorPlusContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2237; this.match(EParser.PLUS); break; case EParser.MINUS: localctx = new OperatorMinusContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2238; this.match(EParser.MINUS); break; case EParser.STAR: localctx = new OperatorMultiplyContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2239; this.multiply(); break; case EParser.SLASH: localctx = new OperatorDivideContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2240; this.divide(); break; case EParser.BSLASH: localctx = new OperatorIDivideContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2241; this.idivide(); break; case EParser.PERCENT: case EParser.MODULO: localctx = new OperatorModuloContext(this, localctx); this.enterOuterAlt(localctx, 6); this.state = 2242; this.modulo(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function KeywordContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_keyword; return this; } KeywordContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); KeywordContext.prototype.constructor = KeywordContext; KeywordContext.prototype.JAVA = function() { return this.getToken(EParser.JAVA, 0); }; KeywordContext.prototype.CSHARP = function() { return this.getToken(EParser.CSHARP, 0); }; KeywordContext.prototype.PYTHON2 = function() { return this.getToken(EParser.PYTHON2, 0); }; KeywordContext.prototype.PYTHON3 = function() { return this.getToken(EParser.PYTHON3, 0); }; KeywordContext.prototype.JAVASCRIPT = function() { return this.getToken(EParser.JAVASCRIPT, 0); }; KeywordContext.prototype.SWIFT = function() { return this.getToken(EParser.SWIFT, 0); }; KeywordContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; KeywordContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; KeywordContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; KeywordContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; KeywordContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; KeywordContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; KeywordContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; KeywordContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; KeywordContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; KeywordContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; KeywordContext.prototype.METHOD_T = function() { return this.getToken(EParser.METHOD_T, 0); }; KeywordContext.prototype.CODE = function() { return this.getToken(EParser.CODE, 0); }; KeywordContext.prototype.DOCUMENT = function() { return this.getToken(EParser.DOCUMENT, 0); }; KeywordContext.prototype.BLOB = function() { return this.getToken(EParser.BLOB, 0); }; KeywordContext.prototype.IMAGE = function() { return this.getToken(EParser.IMAGE, 0); }; KeywordContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; KeywordContext.prototype.ITERATOR = function() { return this.getToken(EParser.ITERATOR, 0); }; KeywordContext.prototype.CURSOR = function() { return this.getToken(EParser.CURSOR, 0); }; KeywordContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; KeywordContext.prototype.ABSTRACT = function() { return this.getToken(EParser.ABSTRACT, 0); }; KeywordContext.prototype.ALL = function() { return this.getToken(EParser.ALL, 0); }; KeywordContext.prototype.ALWAYS = function() { return this.getToken(EParser.ALWAYS, 0); }; KeywordContext.prototype.AND = function() { return this.getToken(EParser.AND, 0); }; KeywordContext.prototype.ANY = function() { return this.getToken(EParser.ANY, 0); }; KeywordContext.prototype.AS = function() { return this.getToken(EParser.AS, 0); }; KeywordContext.prototype.ASC = function() { return this.getToken(EParser.ASC, 0); }; KeywordContext.prototype.ATTR = function() { return this.getToken(EParser.ATTR, 0); }; KeywordContext.prototype.ATTRIBUTE = function() { return this.getToken(EParser.ATTRIBUTE, 0); }; KeywordContext.prototype.ATTRIBUTES = function() { return this.getToken(EParser.ATTRIBUTES, 0); }; KeywordContext.prototype.BINDINGS = function() { return this.getToken(EParser.BINDINGS, 0); }; KeywordContext.prototype.BREAK = function() { return this.getToken(EParser.BREAK, 0); }; KeywordContext.prototype.BY = function() { return this.getToken(EParser.BY, 0); }; KeywordContext.prototype.CASE = function() { return this.getToken(EParser.CASE, 0); }; KeywordContext.prototype.CATCH = function() { return this.getToken(EParser.CATCH, 0); }; KeywordContext.prototype.CATEGORY = function() { return this.getToken(EParser.CATEGORY, 0); }; KeywordContext.prototype.CLASS = function() { return this.getToken(EParser.CLASS, 0); }; KeywordContext.prototype.CLOSE = function() { return this.getToken(EParser.CLOSE, 0); }; KeywordContext.prototype.CONTAINS = function() { return this.getToken(EParser.CONTAINS, 0); }; KeywordContext.prototype.DEF = function() { return this.getToken(EParser.DEF, 0); }; KeywordContext.prototype.DEFAULT = function() { return this.getToken(EParser.DEFAULT, 0); }; KeywordContext.prototype.DEFINE = function() { return this.getToken(EParser.DEFINE, 0); }; KeywordContext.prototype.DELETE = function() { return this.getToken(EParser.DELETE, 0); }; KeywordContext.prototype.DESC = function() { return this.getToken(EParser.DESC, 0); }; KeywordContext.prototype.DO = function() { return this.getToken(EParser.DO, 0); }; KeywordContext.prototype.DOING = function() { return this.getToken(EParser.DOING, 0); }; KeywordContext.prototype.EACH = function() { return this.getToken(EParser.EACH, 0); }; KeywordContext.prototype.ELSE = function() { return this.getToken(EParser.ELSE, 0); }; KeywordContext.prototype.ENUM = function() { return this.getToken(EParser.ENUM, 0); }; KeywordContext.prototype.ENUMERATED = function() { return this.getToken(EParser.ENUMERATED, 0); }; KeywordContext.prototype.EXCEPT = function() { return this.getToken(EParser.EXCEPT, 0); }; KeywordContext.prototype.EXECUTE = function() { return this.getToken(EParser.EXECUTE, 0); }; KeywordContext.prototype.EXPECTING = function() { return this.getToken(EParser.EXPECTING, 0); }; KeywordContext.prototype.EXTENDS = function() { return this.getToken(EParser.EXTENDS, 0); }; KeywordContext.prototype.FETCH = function() { return this.getToken(EParser.FETCH, 0); }; KeywordContext.prototype.FILTERED = function() { return this.getToken(EParser.FILTERED, 0); }; KeywordContext.prototype.FINALLY = function() { return this.getToken(EParser.FINALLY, 0); }; KeywordContext.prototype.FLUSH = function() { return this.getToken(EParser.FLUSH, 0); }; KeywordContext.prototype.FOR = function() { return this.getToken(EParser.FOR, 0); }; KeywordContext.prototype.FROM = function() { return this.getToken(EParser.FROM, 0); }; KeywordContext.prototype.GETTER = function() { return this.getToken(EParser.GETTER, 0); }; KeywordContext.prototype.HAS = function() { return this.getToken(EParser.HAS, 0); }; KeywordContext.prototype.IF = function() { return this.getToken(EParser.IF, 0); }; KeywordContext.prototype.IN = function() { return this.getToken(EParser.IN, 0); }; KeywordContext.prototype.INDEX = function() { return this.getToken(EParser.INDEX, 0); }; KeywordContext.prototype.INVOKE = function() { return this.getToken(EParser.INVOKE, 0); }; KeywordContext.prototype.IS = function() { return this.getToken(EParser.IS, 0); }; KeywordContext.prototype.MATCHING = function() { return this.getToken(EParser.MATCHING, 0); }; KeywordContext.prototype.METHOD = function() { return this.getToken(EParser.METHOD, 0); }; KeywordContext.prototype.METHODS = function() { return this.getToken(EParser.METHODS, 0); }; KeywordContext.prototype.MODULO = function() { return this.getToken(EParser.MODULO, 0); }; KeywordContext.prototype.MUTABLE = function() { return this.getToken(EParser.MUTABLE, 0); }; KeywordContext.prototype.NATIVE = function() { return this.getToken(EParser.NATIVE, 0); }; KeywordContext.prototype.NONE = function() { return this.getToken(EParser.NONE, 0); }; KeywordContext.prototype.NOT = function() { return this.getToken(EParser.NOT, 0); }; KeywordContext.prototype.NOTHING = function() { return this.getToken(EParser.NOTHING, 0); }; KeywordContext.prototype.NULL = function() { return this.getToken(EParser.NULL, 0); }; KeywordContext.prototype.ON = function() { return this.getToken(EParser.ON, 0); }; KeywordContext.prototype.ONE = function() { return this.getToken(EParser.ONE, 0); }; KeywordContext.prototype.OPEN = function() { return this.getToken(EParser.OPEN, 0); }; KeywordContext.prototype.OPERATOR = function() { return this.getToken(EParser.OPERATOR, 0); }; KeywordContext.prototype.OR = function() { return this.getToken(EParser.OR, 0); }; KeywordContext.prototype.ORDER = function() { return this.getToken(EParser.ORDER, 0); }; KeywordContext.prototype.OTHERWISE = function() { return this.getToken(EParser.OTHERWISE, 0); }; KeywordContext.prototype.PASS = function() { return this.getToken(EParser.PASS, 0); }; KeywordContext.prototype.RAISE = function() { return this.getToken(EParser.RAISE, 0); }; KeywordContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; KeywordContext.prototype.RECEIVING = function() { return this.getToken(EParser.RECEIVING, 0); }; KeywordContext.prototype.RESOURCE = function() { return this.getToken(EParser.RESOURCE, 0); }; KeywordContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; KeywordContext.prototype.RETURNING = function() { return this.getToken(EParser.RETURNING, 0); }; KeywordContext.prototype.ROWS = function() { return this.getToken(EParser.ROWS, 0); }; KeywordContext.prototype.SELF = function() { return this.getToken(EParser.SELF, 0); }; KeywordContext.prototype.SETTER = function() { return this.getToken(EParser.SETTER, 0); }; KeywordContext.prototype.SINGLETON = function() { return this.getToken(EParser.SINGLETON, 0); }; KeywordContext.prototype.SORTED = function() { return this.getToken(EParser.SORTED, 0); }; KeywordContext.prototype.STORABLE = function() { return this.getToken(EParser.STORABLE, 0); }; KeywordContext.prototype.STORE = function() { return this.getToken(EParser.STORE, 0); }; KeywordContext.prototype.SWITCH = function() { return this.getToken(EParser.SWITCH, 0); }; KeywordContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; KeywordContext.prototype.THIS = function() { return this.getToken(EParser.THIS, 0); }; KeywordContext.prototype.THROW = function() { return this.getToken(EParser.THROW, 0); }; KeywordContext.prototype.TO = function() { return this.getToken(EParser.TO, 0); }; KeywordContext.prototype.TRY = function() { return this.getToken(EParser.TRY, 0); }; KeywordContext.prototype.VERIFYING = function() { return this.getToken(EParser.VERIFYING, 0); }; KeywordContext.prototype.WIDGET = function() { return this.getToken(EParser.WIDGET, 0); }; KeywordContext.prototype.WITH = function() { return this.getToken(EParser.WITH, 0); }; KeywordContext.prototype.WHEN = function() { return this.getToken(EParser.WHEN, 0); }; KeywordContext.prototype.WHERE = function() { return this.getToken(EParser.WHERE, 0); }; KeywordContext.prototype.WHILE = function() { return this.getToken(EParser.WHILE, 0); }; KeywordContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; KeywordContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterKeyword(this); } }; KeywordContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitKeyword(this); } }; EParser.KeywordContext = KeywordContext; EParser.prototype.keyword = function() { var localctx = new KeywordContext(this, this._ctx, this.state); this.enterRule(localctx, 318, EParser.RULE_keyword); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2245; _la = this._input.LA(1); if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.JAVA) | (1 << EParser.CSHARP) | (1 << EParser.PYTHON2) | (1 << EParser.PYTHON3) | (1 << EParser.JAVASCRIPT) | (1 << EParser.SWIFT))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.METHOD_T - 51)) | (1 << (EParser.CODE - 51)) | (1 << (EParser.DOCUMENT - 51)) | (1 << (EParser.BLOB - 51)) | (1 << (EParser.IMAGE - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.ITERATOR - 51)) | (1 << (EParser.CURSOR - 51)) | (1 << (EParser.HTML - 51)) | (1 << (EParser.ABSTRACT - 51)) | (1 << (EParser.ALL - 51)) | (1 << (EParser.ALWAYS - 51)) | (1 << (EParser.AND - 51)) | (1 << (EParser.ANY - 51)) | (1 << (EParser.AS - 51)) | (1 << (EParser.ASC - 51)) | (1 << (EParser.ATTR - 51)) | (1 << (EParser.ATTRIBUTE - 51)) | (1 << (EParser.ATTRIBUTES - 51)) | (1 << (EParser.BINDINGS - 51)) | (1 << (EParser.BREAK - 51)) | (1 << (EParser.BY - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (EParser.CASE - 83)) | (1 << (EParser.CATCH - 83)) | (1 << (EParser.CATEGORY - 83)) | (1 << (EParser.CLASS - 83)) | (1 << (EParser.CLOSE - 83)) | (1 << (EParser.CONTAINS - 83)) | (1 << (EParser.DEF - 83)) | (1 << (EParser.DEFAULT - 83)) | (1 << (EParser.DEFINE - 83)) | (1 << (EParser.DELETE - 83)) | (1 << (EParser.DESC - 83)) | (1 << (EParser.DO - 83)) | (1 << (EParser.DOING - 83)) | (1 << (EParser.EACH - 83)) | (1 << (EParser.ELSE - 83)) | (1 << (EParser.ENUM - 83)) | (1 << (EParser.ENUMERATED - 83)) | (1 << (EParser.EXCEPT - 83)) | (1 << (EParser.EXECUTE - 83)) | (1 << (EParser.EXPECTING - 83)) | (1 << (EParser.EXTENDS - 83)) | (1 << (EParser.FETCH - 83)) | (1 << (EParser.FILTERED - 83)) | (1 << (EParser.FINALLY - 83)) | (1 << (EParser.FLUSH - 83)) | (1 << (EParser.FOR - 83)) | (1 << (EParser.FROM - 83)) | (1 << (EParser.GETTER - 83)) | (1 << (EParser.HAS - 83)) | (1 << (EParser.IF - 83)) | (1 << (EParser.IN - 83)) | (1 << (EParser.INDEX - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (EParser.INVOKE - 115)) | (1 << (EParser.IS - 115)) | (1 << (EParser.MATCHING - 115)) | (1 << (EParser.METHOD - 115)) | (1 << (EParser.METHODS - 115)) | (1 << (EParser.MODULO - 115)) | (1 << (EParser.MUTABLE - 115)) | (1 << (EParser.NATIVE - 115)) | (1 << (EParser.NONE - 115)) | (1 << (EParser.NOT - 115)) | (1 << (EParser.NOTHING - 115)) | (1 << (EParser.NULL - 115)) | (1 << (EParser.ON - 115)) | (1 << (EParser.ONE - 115)) | (1 << (EParser.OPEN - 115)) | (1 << (EParser.OPERATOR - 115)) | (1 << (EParser.OR - 115)) | (1 << (EParser.ORDER - 115)) | (1 << (EParser.OTHERWISE - 115)) | (1 << (EParser.PASS - 115)) | (1 << (EParser.RAISE - 115)) | (1 << (EParser.READ - 115)) | (1 << (EParser.RECEIVING - 115)) | (1 << (EParser.RESOURCE - 115)) | (1 << (EParser.RETURN - 115)) | (1 << (EParser.RETURNING - 115)) | (1 << (EParser.ROWS - 115)) | (1 << (EParser.SELF - 115)) | (1 << (EParser.SETTER - 115)) | (1 << (EParser.SINGLETON - 115)) | (1 << (EParser.SORTED - 115)) | (1 << (EParser.STORABLE - 115)))) !== 0) || ((((_la - 147)) & ~0x1f) == 0 && ((1 << (_la - 147)) & ((1 << (EParser.STORE - 147)) | (1 << (EParser.SWITCH - 147)) | (1 << (EParser.TEST - 147)) | (1 << (EParser.THIS - 147)) | (1 << (EParser.THROW - 147)) | (1 << (EParser.TO - 147)) | (1 << (EParser.TRY - 147)) | (1 << (EParser.VERIFYING - 147)) | (1 << (EParser.WIDGET - 147)) | (1 << (EParser.WITH - 147)) | (1 << (EParser.WHEN - 147)) | (1 << (EParser.WHERE - 147)) | (1 << (EParser.WHILE - 147)) | (1 << (EParser.WRITE - 147)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function New_tokenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_new_token; this.i1 = null; // Token return this; } New_tokenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); New_tokenContext.prototype.constructor = New_tokenContext; New_tokenContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; New_tokenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterNew_token(this); } }; New_tokenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitNew_token(this); } }; EParser.New_tokenContext = New_tokenContext; EParser.prototype.new_token = function() { var localctx = new New_tokenContext(this, this._ctx, this.state); this.enterRule(localctx, 320, EParser.RULE_new_token); try { this.enterOuterAlt(localctx, 1); this.state = 2247; localctx.i1 = this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2248; if (!( this.isText(localctx.i1,"new"))) { throw new antlr4.error.FailedPredicateException(this, "$parser.isText($i1,\"new\")"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Key_tokenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_key_token; this.i1 = null; // Token return this; } Key_tokenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Key_tokenContext.prototype.constructor = Key_tokenContext; Key_tokenContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Key_tokenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterKey_token(this); } }; Key_tokenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitKey_token(this); } }; EParser.Key_tokenContext = Key_tokenContext; EParser.prototype.key_token = function() { var localctx = new Key_tokenContext(this, this._ctx, this.state); this.enterRule(localctx, 322, EParser.RULE_key_token); try { this.enterOuterAlt(localctx, 1); this.state = 2250; localctx.i1 = this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2251; if (!( this.isText(localctx.i1,"key"))) { throw new antlr4.error.FailedPredicateException(this, "$parser.isText($i1,\"key\")"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Module_tokenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_module_token; this.i1 = null; // Token return this; } Module_tokenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Module_tokenContext.prototype.constructor = Module_tokenContext; Module_tokenContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Module_tokenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterModule_token(this); } }; Module_tokenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitModule_token(this); } }; EParser.Module_tokenContext = Module_tokenContext; EParser.prototype.module_token = function() { var localctx = new Module_tokenContext(this, this._ctx, this.state); this.enterRule(localctx, 324, EParser.RULE_module_token); try { this.enterOuterAlt(localctx, 1); this.state = 2253; localctx.i1 = this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2254; if (!( this.isText(localctx.i1,"module"))) { throw new antlr4.error.FailedPredicateException(this, "$parser.isText($i1,\"module\")"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Value_tokenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_value_token; this.i1 = null; // Token return this; } Value_tokenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Value_tokenContext.prototype.constructor = Value_tokenContext; Value_tokenContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Value_tokenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterValue_token(this); } }; Value_tokenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitValue_token(this); } }; EParser.Value_tokenContext = Value_tokenContext; EParser.prototype.value_token = function() { var localctx = new Value_tokenContext(this, this._ctx, this.state); this.enterRule(localctx, 326, EParser.RULE_value_token); try { this.enterOuterAlt(localctx, 1); this.state = 2256; localctx.i1 = this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2257; if (!( this.isText(localctx.i1,"value"))) { throw new antlr4.error.FailedPredicateException(this, "$parser.isText($i1,\"value\")"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Symbols_tokenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_symbols_token; this.i1 = null; // Token return this; } Symbols_tokenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Symbols_tokenContext.prototype.constructor = Symbols_tokenContext; Symbols_tokenContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Symbols_tokenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterSymbols_token(this); } }; Symbols_tokenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitSymbols_token(this); } }; EParser.Symbols_tokenContext = Symbols_tokenContext; EParser.prototype.symbols_token = function() { var localctx = new Symbols_tokenContext(this, this._ctx, this.state); this.enterRule(localctx, 328, EParser.RULE_symbols_token); try { this.enterOuterAlt(localctx, 1); this.state = 2259; localctx.i1 = this.match(EParser.VARIABLE_IDENTIFIER); this.state = 2260; if (!( this.isText(localctx.i1,"symbols"))) { throw new antlr4.error.FailedPredicateException(this, "$parser.isText($i1,\"symbols\")"); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function AssignContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_assign; return this; } AssignContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); AssignContext.prototype.constructor = AssignContext; AssignContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; AssignContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterAssign(this); } }; AssignContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitAssign(this); } }; EParser.AssignContext = AssignContext; EParser.prototype.assign = function() { var localctx = new AssignContext(this, this._ctx, this.state); this.enterRule(localctx, 330, EParser.RULE_assign); try { this.enterOuterAlt(localctx, 1); this.state = 2262; this.match(EParser.EQ); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function MultiplyContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_multiply; return this; } MultiplyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); MultiplyContext.prototype.constructor = MultiplyContext; MultiplyContext.prototype.STAR = function() { return this.getToken(EParser.STAR, 0); }; MultiplyContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterMultiply(this); } }; MultiplyContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitMultiply(this); } }; EParser.MultiplyContext = MultiplyContext; EParser.prototype.multiply = function() { var localctx = new MultiplyContext(this, this._ctx, this.state); this.enterRule(localctx, 332, EParser.RULE_multiply); try { this.enterOuterAlt(localctx, 1); this.state = 2264; this.match(EParser.STAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DivideContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_divide; return this; } DivideContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DivideContext.prototype.constructor = DivideContext; DivideContext.prototype.SLASH = function() { return this.getToken(EParser.SLASH, 0); }; DivideContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterDivide(this); } }; DivideContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitDivide(this); } }; EParser.DivideContext = DivideContext; EParser.prototype.divide = function() { var localctx = new DivideContext(this, this._ctx, this.state); this.enterRule(localctx, 334, EParser.RULE_divide); try { this.enterOuterAlt(localctx, 1); this.state = 2266; this.match(EParser.SLASH); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function IdivideContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_idivide; return this; } IdivideContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); IdivideContext.prototype.constructor = IdivideContext; IdivideContext.prototype.BSLASH = function() { return this.getToken(EParser.BSLASH, 0); }; IdivideContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterIdivide(this); } }; IdivideContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitIdivide(this); } }; EParser.IdivideContext = IdivideContext; EParser.prototype.idivide = function() { var localctx = new IdivideContext(this, this._ctx, this.state); this.enterRule(localctx, 336, EParser.RULE_idivide); try { this.enterOuterAlt(localctx, 1); this.state = 2268; this.match(EParser.BSLASH); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ModuloContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_modulo; return this; } ModuloContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ModuloContext.prototype.constructor = ModuloContext; ModuloContext.prototype.PERCENT = function() { return this.getToken(EParser.PERCENT, 0); }; ModuloContext.prototype.MODULO = function() { return this.getToken(EParser.MODULO, 0); }; ModuloContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterModulo(this); } }; ModuloContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitModulo(this); } }; EParser.ModuloContext = ModuloContext; EParser.prototype.modulo = function() { var localctx = new ModuloContext(this, this._ctx, this.state); this.enterRule(localctx, 338, EParser.RULE_modulo); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2270; _la = this._input.LA(1); if(!(_la===EParser.PERCENT || _la===EParser.MODULO)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_statement; return this; } Javascript_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_statementContext.prototype.constructor = Javascript_statementContext; Javascript_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavascriptStatementContext(parser, ctx) { Javascript_statementContext.call(this, parser); this.exp = null; // Javascript_expressionContext; Javascript_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptStatementContext.prototype = Object.create(Javascript_statementContext.prototype); JavascriptStatementContext.prototype.constructor = JavascriptStatementContext; EParser.JavascriptStatementContext = JavascriptStatementContext; JavascriptStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; JavascriptStatementContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; JavascriptStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptStatement(this); } }; JavascriptStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptStatement(this); } }; function JavascriptReturnStatementContext(parser, ctx) { Javascript_statementContext.call(this, parser); this.exp = null; // Javascript_expressionContext; Javascript_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptReturnStatementContext.prototype = Object.create(Javascript_statementContext.prototype); JavascriptReturnStatementContext.prototype.constructor = JavascriptReturnStatementContext; EParser.JavascriptReturnStatementContext = JavascriptReturnStatementContext; JavascriptReturnStatementContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; JavascriptReturnStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; JavascriptReturnStatementContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; JavascriptReturnStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptReturnStatement(this); } }; JavascriptReturnStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptReturnStatement(this); } }; EParser.Javascript_statementContext = Javascript_statementContext; EParser.prototype.javascript_statement = function() { var localctx = new Javascript_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 340, EParser.RULE_javascript_statement); try { this.state = 2279; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.RETURN: localctx = new JavascriptReturnStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2272; this.match(EParser.RETURN); this.state = 2273; localctx.exp = this.javascript_expression(0); this.state = 2274; this.match(EParser.SEMI); break; case EParser.LPAR: case EParser.LBRAK: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.SELF: case EParser.TEST: case EParser.THIS: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.INTEGER_LITERAL: case EParser.DECIMAL_LITERAL: localctx = new JavascriptStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2276; localctx.exp = this.javascript_expression(0); this.state = 2277; this.match(EParser.SEMI); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_expression; return this; } Javascript_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_expressionContext.prototype.constructor = Javascript_expressionContext; Javascript_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavascriptSelectorExpressionContext(parser, ctx) { Javascript_expressionContext.call(this, parser); this.parent = null; // Javascript_expressionContext; this.child = null; // Javascript_selector_expressionContext; Javascript_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptSelectorExpressionContext.prototype = Object.create(Javascript_expressionContext.prototype); JavascriptSelectorExpressionContext.prototype.constructor = JavascriptSelectorExpressionContext; EParser.JavascriptSelectorExpressionContext = JavascriptSelectorExpressionContext; JavascriptSelectorExpressionContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; JavascriptSelectorExpressionContext.prototype.javascript_selector_expression = function() { return this.getTypedRuleContext(Javascript_selector_expressionContext,0); }; JavascriptSelectorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptSelectorExpression(this); } }; JavascriptSelectorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptSelectorExpression(this); } }; function JavascriptPrimaryExpressionContext(parser, ctx) { Javascript_expressionContext.call(this, parser); this.exp = null; // Javascript_primary_expressionContext; Javascript_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptPrimaryExpressionContext.prototype = Object.create(Javascript_expressionContext.prototype); JavascriptPrimaryExpressionContext.prototype.constructor = JavascriptPrimaryExpressionContext; EParser.JavascriptPrimaryExpressionContext = JavascriptPrimaryExpressionContext; JavascriptPrimaryExpressionContext.prototype.javascript_primary_expression = function() { return this.getTypedRuleContext(Javascript_primary_expressionContext,0); }; JavascriptPrimaryExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptPrimaryExpression(this); } }; JavascriptPrimaryExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptPrimaryExpression(this); } }; EParser.prototype.javascript_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Javascript_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 342; this.enterRecursionRule(localctx, 342, EParser.RULE_javascript_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavascriptPrimaryExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2282; localctx.exp = this.javascript_primary_expression(); this._ctx.stop = this._input.LT(-1); this.state = 2288; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,189,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavascriptSelectorExpressionContext(this, new Javascript_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_javascript_expression); this.state = 2284; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2285; localctx.child = this.javascript_selector_expression(); } this.state = 2290; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,189,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Javascript_primary_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_primary_expression; return this; } Javascript_primary_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_primary_expressionContext.prototype.constructor = Javascript_primary_expressionContext; Javascript_primary_expressionContext.prototype.javascript_this_expression = function() { return this.getTypedRuleContext(Javascript_this_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_new_expression = function() { return this.getTypedRuleContext(Javascript_new_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_parenthesis_expression = function() { return this.getTypedRuleContext(Javascript_parenthesis_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_identifier_expression = function() { return this.getTypedRuleContext(Javascript_identifier_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_literal_expression = function() { return this.getTypedRuleContext(Javascript_literal_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_method_expression = function() { return this.getTypedRuleContext(Javascript_method_expressionContext,0); }; Javascript_primary_expressionContext.prototype.javascript_item_expression = function() { return this.getTypedRuleContext(Javascript_item_expressionContext,0); }; Javascript_primary_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_primary_expression(this); } }; Javascript_primary_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_primary_expression(this); } }; EParser.Javascript_primary_expressionContext = Javascript_primary_expressionContext; EParser.prototype.javascript_primary_expression = function() { var localctx = new Javascript_primary_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 344, EParser.RULE_javascript_primary_expression); try { this.state = 2298; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 2291; this.javascript_this_expression(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 2292; this.javascript_new_expression(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 2293; this.javascript_parenthesis_expression(); break; case 4: this.enterOuterAlt(localctx, 4); this.state = 2294; this.javascript_identifier_expression(); break; case 5: this.enterOuterAlt(localctx, 5); this.state = 2295; this.javascript_literal_expression(); break; case 6: this.enterOuterAlt(localctx, 6); this.state = 2296; this.javascript_method_expression(); break; case 7: this.enterOuterAlt(localctx, 7); this.state = 2297; this.javascript_item_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_this_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_this_expression; return this; } Javascript_this_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_this_expressionContext.prototype.constructor = Javascript_this_expressionContext; Javascript_this_expressionContext.prototype.this_expression = function() { return this.getTypedRuleContext(This_expressionContext,0); }; Javascript_this_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_this_expression(this); } }; Javascript_this_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_this_expression(this); } }; EParser.Javascript_this_expressionContext = Javascript_this_expressionContext; EParser.prototype.javascript_this_expression = function() { var localctx = new Javascript_this_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 346, EParser.RULE_javascript_this_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2300; this.this_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_new_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_new_expression; return this; } Javascript_new_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_new_expressionContext.prototype.constructor = Javascript_new_expressionContext; Javascript_new_expressionContext.prototype.new_token = function() { return this.getTypedRuleContext(New_tokenContext,0); }; Javascript_new_expressionContext.prototype.javascript_method_expression = function() { return this.getTypedRuleContext(Javascript_method_expressionContext,0); }; Javascript_new_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_new_expression(this); } }; Javascript_new_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_new_expression(this); } }; EParser.Javascript_new_expressionContext = Javascript_new_expressionContext; EParser.prototype.javascript_new_expression = function() { var localctx = new Javascript_new_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 348, EParser.RULE_javascript_new_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2302; this.new_token(); this.state = 2303; this.javascript_method_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_selector_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_selector_expression; return this; } Javascript_selector_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_selector_expressionContext.prototype.constructor = Javascript_selector_expressionContext; Javascript_selector_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaScriptMemberExpressionContext(parser, ctx) { Javascript_selector_expressionContext.call(this, parser); this.name = null; // Javascript_identifierContext; Javascript_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaScriptMemberExpressionContext.prototype = Object.create(Javascript_selector_expressionContext.prototype); JavaScriptMemberExpressionContext.prototype.constructor = JavaScriptMemberExpressionContext; EParser.JavaScriptMemberExpressionContext = JavaScriptMemberExpressionContext; JavaScriptMemberExpressionContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; JavaScriptMemberExpressionContext.prototype.javascript_identifier = function() { return this.getTypedRuleContext(Javascript_identifierContext,0); }; JavaScriptMemberExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaScriptMemberExpression(this); } }; JavaScriptMemberExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaScriptMemberExpression(this); } }; function JavaScriptItemExpressionContext(parser, ctx) { Javascript_selector_expressionContext.call(this, parser); this.exp = null; // Javascript_item_expressionContext; Javascript_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaScriptItemExpressionContext.prototype = Object.create(Javascript_selector_expressionContext.prototype); JavaScriptItemExpressionContext.prototype.constructor = JavaScriptItemExpressionContext; EParser.JavaScriptItemExpressionContext = JavaScriptItemExpressionContext; JavaScriptItemExpressionContext.prototype.javascript_item_expression = function() { return this.getTypedRuleContext(Javascript_item_expressionContext,0); }; JavaScriptItemExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaScriptItemExpression(this); } }; JavaScriptItemExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaScriptItemExpression(this); } }; function JavaScriptMethodExpressionContext(parser, ctx) { Javascript_selector_expressionContext.call(this, parser); this.method = null; // Javascript_method_expressionContext; Javascript_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaScriptMethodExpressionContext.prototype = Object.create(Javascript_selector_expressionContext.prototype); JavaScriptMethodExpressionContext.prototype.constructor = JavaScriptMethodExpressionContext; EParser.JavaScriptMethodExpressionContext = JavaScriptMethodExpressionContext; JavaScriptMethodExpressionContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; JavaScriptMethodExpressionContext.prototype.javascript_method_expression = function() { return this.getTypedRuleContext(Javascript_method_expressionContext,0); }; JavaScriptMethodExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaScriptMethodExpression(this); } }; JavaScriptMethodExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaScriptMethodExpression(this); } }; EParser.Javascript_selector_expressionContext = Javascript_selector_expressionContext; EParser.prototype.javascript_selector_expression = function() { var localctx = new Javascript_selector_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 350, EParser.RULE_javascript_selector_expression); try { this.state = 2310; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,191,this._ctx); switch(la_) { case 1: localctx = new JavaScriptMethodExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2305; this.match(EParser.DOT); this.state = 2306; localctx.method = this.javascript_method_expression(); break; case 2: localctx = new JavaScriptMemberExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2307; this.match(EParser.DOT); this.state = 2308; localctx.name = this.javascript_identifier(); break; case 3: localctx = new JavaScriptItemExpressionContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2309; localctx.exp = this.javascript_item_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_method_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_method_expression; this.name = null; // Javascript_identifierContext this.args = null; // Javascript_argumentsContext return this; } Javascript_method_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_method_expressionContext.prototype.constructor = Javascript_method_expressionContext; Javascript_method_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Javascript_method_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Javascript_method_expressionContext.prototype.javascript_identifier = function() { return this.getTypedRuleContext(Javascript_identifierContext,0); }; Javascript_method_expressionContext.prototype.javascript_arguments = function() { return this.getTypedRuleContext(Javascript_argumentsContext,0); }; Javascript_method_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_method_expression(this); } }; Javascript_method_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_method_expression(this); } }; EParser.Javascript_method_expressionContext = Javascript_method_expressionContext; EParser.prototype.javascript_method_expression = function() { var localctx = new Javascript_method_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 352, EParser.RULE_javascript_method_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2312; localctx.name = this.javascript_identifier(); this.state = 2313; this.match(EParser.LPAR); this.state = 2315; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.LPAR || _la===EParser.LBRAK || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)) | (1 << (EParser.THIS - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.BOOLEAN_LITERAL - 161)) | (1 << (EParser.CHAR_LITERAL - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)) | (1 << (EParser.TEXT_LITERAL - 161)) | (1 << (EParser.INTEGER_LITERAL - 161)) | (1 << (EParser.DECIMAL_LITERAL - 161)))) !== 0)) { this.state = 2314; localctx.args = this.javascript_arguments(0); } this.state = 2317; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_argumentsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_arguments; return this; } Javascript_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_argumentsContext.prototype.constructor = Javascript_argumentsContext; Javascript_argumentsContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavascriptArgumentListContext(parser, ctx) { Javascript_argumentsContext.call(this, parser); this.item = null; // Javascript_expressionContext; Javascript_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptArgumentListContext.prototype = Object.create(Javascript_argumentsContext.prototype); JavascriptArgumentListContext.prototype.constructor = JavascriptArgumentListContext; EParser.JavascriptArgumentListContext = JavascriptArgumentListContext; JavascriptArgumentListContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; JavascriptArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptArgumentList(this); } }; JavascriptArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptArgumentList(this); } }; function JavascriptArgumentListItemContext(parser, ctx) { Javascript_argumentsContext.call(this, parser); this.items = null; // Javascript_argumentsContext; this.item = null; // Javascript_expressionContext; Javascript_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptArgumentListItemContext.prototype = Object.create(Javascript_argumentsContext.prototype); JavascriptArgumentListItemContext.prototype.constructor = JavascriptArgumentListItemContext; EParser.JavascriptArgumentListItemContext = JavascriptArgumentListItemContext; JavascriptArgumentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; JavascriptArgumentListItemContext.prototype.javascript_arguments = function() { return this.getTypedRuleContext(Javascript_argumentsContext,0); }; JavascriptArgumentListItemContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; JavascriptArgumentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptArgumentListItem(this); } }; JavascriptArgumentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptArgumentListItem(this); } }; EParser.prototype.javascript_arguments = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Javascript_argumentsContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 354; this.enterRecursionRule(localctx, 354, EParser.RULE_javascript_arguments, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavascriptArgumentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2320; localctx.item = this.javascript_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2327; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,193,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavascriptArgumentListItemContext(this, new Javascript_argumentsContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_javascript_arguments); this.state = 2322; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2323; this.match(EParser.COMMA); this.state = 2324; localctx.item = this.javascript_expression(0); } this.state = 2329; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,193,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Javascript_item_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_item_expression; this.exp = null; // Javascript_expressionContext return this; } Javascript_item_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_item_expressionContext.prototype.constructor = Javascript_item_expressionContext; Javascript_item_expressionContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; Javascript_item_expressionContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; Javascript_item_expressionContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; Javascript_item_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_item_expression(this); } }; Javascript_item_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_item_expression(this); } }; EParser.Javascript_item_expressionContext = Javascript_item_expressionContext; EParser.prototype.javascript_item_expression = function() { var localctx = new Javascript_item_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 356, EParser.RULE_javascript_item_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2330; this.match(EParser.LBRAK); this.state = 2331; localctx.exp = this.javascript_expression(0); this.state = 2332; this.match(EParser.RBRAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_parenthesis_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_parenthesis_expression; this.exp = null; // Javascript_expressionContext return this; } Javascript_parenthesis_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_parenthesis_expressionContext.prototype.constructor = Javascript_parenthesis_expressionContext; Javascript_parenthesis_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Javascript_parenthesis_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Javascript_parenthesis_expressionContext.prototype.javascript_expression = function() { return this.getTypedRuleContext(Javascript_expressionContext,0); }; Javascript_parenthesis_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_parenthesis_expression(this); } }; Javascript_parenthesis_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_parenthesis_expression(this); } }; EParser.Javascript_parenthesis_expressionContext = Javascript_parenthesis_expressionContext; EParser.prototype.javascript_parenthesis_expression = function() { var localctx = new Javascript_parenthesis_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 358, EParser.RULE_javascript_parenthesis_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2334; this.match(EParser.LPAR); this.state = 2335; localctx.exp = this.javascript_expression(0); this.state = 2336; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_identifier_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_identifier_expression; this.name = null; // Javascript_identifierContext return this; } Javascript_identifier_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_identifier_expressionContext.prototype.constructor = Javascript_identifier_expressionContext; Javascript_identifier_expressionContext.prototype.javascript_identifier = function() { return this.getTypedRuleContext(Javascript_identifierContext,0); }; Javascript_identifier_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_identifier_expression(this); } }; Javascript_identifier_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_identifier_expression(this); } }; EParser.Javascript_identifier_expressionContext = Javascript_identifier_expressionContext; EParser.prototype.javascript_identifier_expression = function() { var localctx = new Javascript_identifier_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 360, EParser.RULE_javascript_identifier_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2338; localctx.name = this.javascript_identifier(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_literal_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_literal_expression; return this; } Javascript_literal_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_literal_expressionContext.prototype.constructor = Javascript_literal_expressionContext; Javascript_literal_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavascriptIntegerLiteralContext(parser, ctx) { Javascript_literal_expressionContext.call(this, parser); this.t = null; // Token; Javascript_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptIntegerLiteralContext.prototype = Object.create(Javascript_literal_expressionContext.prototype); JavascriptIntegerLiteralContext.prototype.constructor = JavascriptIntegerLiteralContext; EParser.JavascriptIntegerLiteralContext = JavascriptIntegerLiteralContext; JavascriptIntegerLiteralContext.prototype.INTEGER_LITERAL = function() { return this.getToken(EParser.INTEGER_LITERAL, 0); }; JavascriptIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptIntegerLiteral(this); } }; JavascriptIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptIntegerLiteral(this); } }; function JavascriptBooleanLiteralContext(parser, ctx) { Javascript_literal_expressionContext.call(this, parser); this.t = null; // Token; Javascript_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptBooleanLiteralContext.prototype = Object.create(Javascript_literal_expressionContext.prototype); JavascriptBooleanLiteralContext.prototype.constructor = JavascriptBooleanLiteralContext; EParser.JavascriptBooleanLiteralContext = JavascriptBooleanLiteralContext; JavascriptBooleanLiteralContext.prototype.BOOLEAN_LITERAL = function() { return this.getToken(EParser.BOOLEAN_LITERAL, 0); }; JavascriptBooleanLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptBooleanLiteral(this); } }; JavascriptBooleanLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptBooleanLiteral(this); } }; function JavascriptCharacterLiteralContext(parser, ctx) { Javascript_literal_expressionContext.call(this, parser); this.t = null; // Token; Javascript_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptCharacterLiteralContext.prototype = Object.create(Javascript_literal_expressionContext.prototype); JavascriptCharacterLiteralContext.prototype.constructor = JavascriptCharacterLiteralContext; EParser.JavascriptCharacterLiteralContext = JavascriptCharacterLiteralContext; JavascriptCharacterLiteralContext.prototype.CHAR_LITERAL = function() { return this.getToken(EParser.CHAR_LITERAL, 0); }; JavascriptCharacterLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptCharacterLiteral(this); } }; JavascriptCharacterLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptCharacterLiteral(this); } }; function JavascriptTextLiteralContext(parser, ctx) { Javascript_literal_expressionContext.call(this, parser); this.t = null; // Token; Javascript_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptTextLiteralContext.prototype = Object.create(Javascript_literal_expressionContext.prototype); JavascriptTextLiteralContext.prototype.constructor = JavascriptTextLiteralContext; EParser.JavascriptTextLiteralContext = JavascriptTextLiteralContext; JavascriptTextLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; JavascriptTextLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptTextLiteral(this); } }; JavascriptTextLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptTextLiteral(this); } }; function JavascriptDecimalLiteralContext(parser, ctx) { Javascript_literal_expressionContext.call(this, parser); this.t = null; // Token; Javascript_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavascriptDecimalLiteralContext.prototype = Object.create(Javascript_literal_expressionContext.prototype); JavascriptDecimalLiteralContext.prototype.constructor = JavascriptDecimalLiteralContext; EParser.JavascriptDecimalLiteralContext = JavascriptDecimalLiteralContext; JavascriptDecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { return this.getToken(EParser.DECIMAL_LITERAL, 0); }; JavascriptDecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascriptDecimalLiteral(this); } }; JavascriptDecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascriptDecimalLiteral(this); } }; EParser.Javascript_literal_expressionContext = Javascript_literal_expressionContext; EParser.prototype.javascript_literal_expression = function() { var localctx = new Javascript_literal_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 362, EParser.RULE_javascript_literal_expression); try { this.state = 2345; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.INTEGER_LITERAL: localctx = new JavascriptIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2340; localctx.t = this.match(EParser.INTEGER_LITERAL); break; case EParser.DECIMAL_LITERAL: localctx = new JavascriptDecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2341; localctx.t = this.match(EParser.DECIMAL_LITERAL); break; case EParser.TEXT_LITERAL: localctx = new JavascriptTextLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2342; localctx.t = this.match(EParser.TEXT_LITERAL); break; case EParser.BOOLEAN_LITERAL: localctx = new JavascriptBooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2343; localctx.t = this.match(EParser.BOOLEAN_LITERAL); break; case EParser.CHAR_LITERAL: localctx = new JavascriptCharacterLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2344; localctx.t = this.match(EParser.CHAR_LITERAL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Javascript_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_javascript_identifier; return this; } Javascript_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Javascript_identifierContext.prototype.constructor = Javascript_identifierContext; Javascript_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Javascript_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Javascript_identifierContext.prototype.DOLLAR_IDENTIFIER = function() { return this.getToken(EParser.DOLLAR_IDENTIFIER, 0); }; Javascript_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Javascript_identifierContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; Javascript_identifierContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; Javascript_identifierContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; Javascript_identifierContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; Javascript_identifierContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; Javascript_identifierContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; Javascript_identifierContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; Javascript_identifierContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; Javascript_identifierContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; Javascript_identifierContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; Javascript_identifierContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; Javascript_identifierContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; Javascript_identifierContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Javascript_identifierContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; Javascript_identifierContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; Javascript_identifierContext.prototype.SELF = function() { return this.getToken(EParser.SELF, 0); }; Javascript_identifierContext.prototype.NONE = function() { return this.getToken(EParser.NONE, 0); }; Javascript_identifierContext.prototype.NULL = function() { return this.getToken(EParser.NULL, 0); }; Javascript_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavascript_identifier(this); } }; Javascript_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavascript_identifier(this); } }; EParser.Javascript_identifierContext = Javascript_identifierContext; EParser.prototype.javascript_identifier = function() { var localctx = new Javascript_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 364, EParser.RULE_javascript_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2347; _la = this._input.LA(1); if(!(((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_statement; return this; } Python_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_statementContext.prototype.constructor = Python_statementContext; Python_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonStatementContext(parser, ctx) { Python_statementContext.call(this, parser); this.exp = null; // Python_expressionContext; Python_statementContext.prototype.copyFrom.call(this, ctx); return this; } PythonStatementContext.prototype = Object.create(Python_statementContext.prototype); PythonStatementContext.prototype.constructor = PythonStatementContext; EParser.PythonStatementContext = PythonStatementContext; PythonStatementContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonStatement(this); } }; PythonStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonStatement(this); } }; function PythonReturnStatementContext(parser, ctx) { Python_statementContext.call(this, parser); this.exp = null; // Python_expressionContext; Python_statementContext.prototype.copyFrom.call(this, ctx); return this; } PythonReturnStatementContext.prototype = Object.create(Python_statementContext.prototype); PythonReturnStatementContext.prototype.constructor = PythonReturnStatementContext; EParser.PythonReturnStatementContext = PythonReturnStatementContext; PythonReturnStatementContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; PythonReturnStatementContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonReturnStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonReturnStatement(this); } }; PythonReturnStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonReturnStatement(this); } }; EParser.Python_statementContext = Python_statementContext; EParser.prototype.python_statement = function() { var localctx = new Python_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 366, EParser.RULE_python_statement); try { this.state = 2352; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.RETURN: localctx = new PythonReturnStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2349; this.match(EParser.RETURN); this.state = 2350; localctx.exp = this.python_expression(0); break; case EParser.LPAR: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.SELF: case EParser.TEST: case EParser.THIS: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.INTEGER_LITERAL: case EParser.DECIMAL_LITERAL: localctx = new PythonStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2351; localctx.exp = this.python_expression(0); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_expression; return this; } Python_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_expressionContext.prototype.constructor = Python_expressionContext; Python_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonSelectorExpressionContext(parser, ctx) { Python_expressionContext.call(this, parser); this.parent = null; // Python_expressionContext; this.child = null; // Python_selector_expressionContext; Python_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonSelectorExpressionContext.prototype = Object.create(Python_expressionContext.prototype); PythonSelectorExpressionContext.prototype.constructor = PythonSelectorExpressionContext; EParser.PythonSelectorExpressionContext = PythonSelectorExpressionContext; PythonSelectorExpressionContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonSelectorExpressionContext.prototype.python_selector_expression = function() { return this.getTypedRuleContext(Python_selector_expressionContext,0); }; PythonSelectorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonSelectorExpression(this); } }; PythonSelectorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonSelectorExpression(this); } }; function PythonPrimaryExpressionContext(parser, ctx) { Python_expressionContext.call(this, parser); this.exp = null; // Python_primary_expressionContext; Python_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonPrimaryExpressionContext.prototype = Object.create(Python_expressionContext.prototype); PythonPrimaryExpressionContext.prototype.constructor = PythonPrimaryExpressionContext; EParser.PythonPrimaryExpressionContext = PythonPrimaryExpressionContext; PythonPrimaryExpressionContext.prototype.python_primary_expression = function() { return this.getTypedRuleContext(Python_primary_expressionContext,0); }; PythonPrimaryExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonPrimaryExpression(this); } }; PythonPrimaryExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonPrimaryExpression(this); } }; EParser.prototype.python_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Python_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 368; this.enterRecursionRule(localctx, 368, EParser.RULE_python_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new PythonPrimaryExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2355; localctx.exp = this.python_primary_expression(); this._ctx.stop = this._input.LT(-1); this.state = 2361; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,196,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new PythonSelectorExpressionContext(this, new Python_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_python_expression); this.state = 2357; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2358; localctx.child = this.python_selector_expression(); } this.state = 2363; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,196,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Python_primary_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_primary_expression; return this; } Python_primary_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_primary_expressionContext.prototype.constructor = Python_primary_expressionContext; Python_primary_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonParenthesisExpressionContext(parser, ctx) { Python_primary_expressionContext.call(this, parser); this.exp = null; // Python_parenthesis_expressionContext; Python_primary_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonParenthesisExpressionContext.prototype = Object.create(Python_primary_expressionContext.prototype); PythonParenthesisExpressionContext.prototype.constructor = PythonParenthesisExpressionContext; EParser.PythonParenthesisExpressionContext = PythonParenthesisExpressionContext; PythonParenthesisExpressionContext.prototype.python_parenthesis_expression = function() { return this.getTypedRuleContext(Python_parenthesis_expressionContext,0); }; PythonParenthesisExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonParenthesisExpression(this); } }; PythonParenthesisExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonParenthesisExpression(this); } }; function PythonIdentifierExpressionContext(parser, ctx) { Python_primary_expressionContext.call(this, parser); this.exp = null; // Python_identifier_expressionContext; Python_primary_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonIdentifierExpressionContext.prototype = Object.create(Python_primary_expressionContext.prototype); PythonIdentifierExpressionContext.prototype.constructor = PythonIdentifierExpressionContext; EParser.PythonIdentifierExpressionContext = PythonIdentifierExpressionContext; PythonIdentifierExpressionContext.prototype.python_identifier_expression = function() { return this.getTypedRuleContext(Python_identifier_expressionContext,0); }; PythonIdentifierExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonIdentifierExpression(this); } }; PythonIdentifierExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonIdentifierExpression(this); } }; function PythonSelfExpressionContext(parser, ctx) { Python_primary_expressionContext.call(this, parser); this.exp = null; // Python_self_expressionContext; Python_primary_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonSelfExpressionContext.prototype = Object.create(Python_primary_expressionContext.prototype); PythonSelfExpressionContext.prototype.constructor = PythonSelfExpressionContext; EParser.PythonSelfExpressionContext = PythonSelfExpressionContext; PythonSelfExpressionContext.prototype.python_self_expression = function() { return this.getTypedRuleContext(Python_self_expressionContext,0); }; PythonSelfExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonSelfExpression(this); } }; PythonSelfExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonSelfExpression(this); } }; function PythonLiteralExpressionContext(parser, ctx) { Python_primary_expressionContext.call(this, parser); this.exp = null; // Python_literal_expressionContext; Python_primary_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonLiteralExpressionContext.prototype = Object.create(Python_primary_expressionContext.prototype); PythonLiteralExpressionContext.prototype.constructor = PythonLiteralExpressionContext; EParser.PythonLiteralExpressionContext = PythonLiteralExpressionContext; PythonLiteralExpressionContext.prototype.python_literal_expression = function() { return this.getTypedRuleContext(Python_literal_expressionContext,0); }; PythonLiteralExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonLiteralExpression(this); } }; PythonLiteralExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonLiteralExpression(this); } }; function PythonGlobalMethodExpressionContext(parser, ctx) { Python_primary_expressionContext.call(this, parser); this.exp = null; // Python_method_expressionContext; Python_primary_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonGlobalMethodExpressionContext.prototype = Object.create(Python_primary_expressionContext.prototype); PythonGlobalMethodExpressionContext.prototype.constructor = PythonGlobalMethodExpressionContext; EParser.PythonGlobalMethodExpressionContext = PythonGlobalMethodExpressionContext; PythonGlobalMethodExpressionContext.prototype.python_method_expression = function() { return this.getTypedRuleContext(Python_method_expressionContext,0); }; PythonGlobalMethodExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonGlobalMethodExpression(this); } }; PythonGlobalMethodExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonGlobalMethodExpression(this); } }; EParser.Python_primary_expressionContext = Python_primary_expressionContext; EParser.prototype.python_primary_expression = function() { var localctx = new Python_primary_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 370, EParser.RULE_python_primary_expression); try { this.state = 2369; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,197,this._ctx); switch(la_) { case 1: localctx = new PythonSelfExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2364; localctx.exp = this.python_self_expression(); break; case 2: localctx = new PythonParenthesisExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2365; localctx.exp = this.python_parenthesis_expression(); break; case 3: localctx = new PythonIdentifierExpressionContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2366; localctx.exp = this.python_identifier_expression(0); break; case 4: localctx = new PythonLiteralExpressionContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2367; localctx.exp = this.python_literal_expression(); break; case 5: localctx = new PythonGlobalMethodExpressionContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2368; localctx.exp = this.python_method_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_self_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_self_expression; return this; } Python_self_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_self_expressionContext.prototype.constructor = Python_self_expressionContext; Python_self_expressionContext.prototype.this_expression = function() { return this.getTypedRuleContext(This_expressionContext,0); }; Python_self_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_self_expression(this); } }; Python_self_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_self_expression(this); } }; EParser.Python_self_expressionContext = Python_self_expressionContext; EParser.prototype.python_self_expression = function() { var localctx = new Python_self_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 372, EParser.RULE_python_self_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2371; this.this_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_selector_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_selector_expression; return this; } Python_selector_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_selector_expressionContext.prototype.constructor = Python_selector_expressionContext; Python_selector_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonMethodExpressionContext(parser, ctx) { Python_selector_expressionContext.call(this, parser); this.exp = null; // Python_method_expressionContext; Python_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonMethodExpressionContext.prototype = Object.create(Python_selector_expressionContext.prototype); PythonMethodExpressionContext.prototype.constructor = PythonMethodExpressionContext; EParser.PythonMethodExpressionContext = PythonMethodExpressionContext; PythonMethodExpressionContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; PythonMethodExpressionContext.prototype.python_method_expression = function() { return this.getTypedRuleContext(Python_method_expressionContext,0); }; PythonMethodExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonMethodExpression(this); } }; PythonMethodExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonMethodExpression(this); } }; function PythonItemExpressionContext(parser, ctx) { Python_selector_expressionContext.call(this, parser); this.exp = null; // Python_expressionContext; Python_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonItemExpressionContext.prototype = Object.create(Python_selector_expressionContext.prototype); PythonItemExpressionContext.prototype.constructor = PythonItemExpressionContext; EParser.PythonItemExpressionContext = PythonItemExpressionContext; PythonItemExpressionContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; PythonItemExpressionContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; PythonItemExpressionContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonItemExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonItemExpression(this); } }; PythonItemExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonItemExpression(this); } }; EParser.Python_selector_expressionContext = Python_selector_expressionContext; EParser.prototype.python_selector_expression = function() { var localctx = new Python_selector_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 374, EParser.RULE_python_selector_expression); try { this.state = 2379; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DOT: localctx = new PythonMethodExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2373; this.match(EParser.DOT); this.state = 2374; localctx.exp = this.python_method_expression(); break; case EParser.LBRAK: localctx = new PythonItemExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2375; this.match(EParser.LBRAK); this.state = 2376; localctx.exp = this.python_expression(0); this.state = 2377; this.match(EParser.RBRAK); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_method_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_method_expression; this.name = null; // Python_identifierContext this.args = null; // Python_argument_listContext return this; } Python_method_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_method_expressionContext.prototype.constructor = Python_method_expressionContext; Python_method_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Python_method_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Python_method_expressionContext.prototype.python_identifier = function() { return this.getTypedRuleContext(Python_identifierContext,0); }; Python_method_expressionContext.prototype.python_argument_list = function() { return this.getTypedRuleContext(Python_argument_listContext,0); }; Python_method_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_method_expression(this); } }; Python_method_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_method_expression(this); } }; EParser.Python_method_expressionContext = Python_method_expressionContext; EParser.prototype.python_method_expression = function() { var localctx = new Python_method_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 376, EParser.RULE_python_method_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2381; localctx.name = this.python_identifier(); this.state = 2382; this.match(EParser.LPAR); this.state = 2384; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.LPAR || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)) | (1 << (EParser.THIS - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.BOOLEAN_LITERAL - 161)) | (1 << (EParser.CHAR_LITERAL - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)) | (1 << (EParser.TEXT_LITERAL - 161)) | (1 << (EParser.INTEGER_LITERAL - 161)) | (1 << (EParser.DECIMAL_LITERAL - 161)))) !== 0)) { this.state = 2383; localctx.args = this.python_argument_list(); } this.state = 2386; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_argument_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_argument_list; return this; } Python_argument_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_argument_listContext.prototype.constructor = Python_argument_listContext; Python_argument_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonOrdinalOnlyArgumentListContext(parser, ctx) { Python_argument_listContext.call(this, parser); this.ordinal = null; // Python_ordinal_argument_listContext; Python_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonOrdinalOnlyArgumentListContext.prototype = Object.create(Python_argument_listContext.prototype); PythonOrdinalOnlyArgumentListContext.prototype.constructor = PythonOrdinalOnlyArgumentListContext; EParser.PythonOrdinalOnlyArgumentListContext = PythonOrdinalOnlyArgumentListContext; PythonOrdinalOnlyArgumentListContext.prototype.python_ordinal_argument_list = function() { return this.getTypedRuleContext(Python_ordinal_argument_listContext,0); }; PythonOrdinalOnlyArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonOrdinalOnlyArgumentList(this); } }; PythonOrdinalOnlyArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonOrdinalOnlyArgumentList(this); } }; function PythonNamedOnlyArgumentListContext(parser, ctx) { Python_argument_listContext.call(this, parser); this.named = null; // Python_named_argument_listContext; Python_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonNamedOnlyArgumentListContext.prototype = Object.create(Python_argument_listContext.prototype); PythonNamedOnlyArgumentListContext.prototype.constructor = PythonNamedOnlyArgumentListContext; EParser.PythonNamedOnlyArgumentListContext = PythonNamedOnlyArgumentListContext; PythonNamedOnlyArgumentListContext.prototype.python_named_argument_list = function() { return this.getTypedRuleContext(Python_named_argument_listContext,0); }; PythonNamedOnlyArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonNamedOnlyArgumentList(this); } }; PythonNamedOnlyArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonNamedOnlyArgumentList(this); } }; function PythonArgumentListContext(parser, ctx) { Python_argument_listContext.call(this, parser); this.ordinal = null; // Python_ordinal_argument_listContext; this.named = null; // Python_named_argument_listContext; Python_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonArgumentListContext.prototype = Object.create(Python_argument_listContext.prototype); PythonArgumentListContext.prototype.constructor = PythonArgumentListContext; EParser.PythonArgumentListContext = PythonArgumentListContext; PythonArgumentListContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; PythonArgumentListContext.prototype.python_ordinal_argument_list = function() { return this.getTypedRuleContext(Python_ordinal_argument_listContext,0); }; PythonArgumentListContext.prototype.python_named_argument_list = function() { return this.getTypedRuleContext(Python_named_argument_listContext,0); }; PythonArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonArgumentList(this); } }; PythonArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonArgumentList(this); } }; EParser.Python_argument_listContext = Python_argument_listContext; EParser.prototype.python_argument_list = function() { var localctx = new Python_argument_listContext(this, this._ctx, this.state); this.enterRule(localctx, 378, EParser.RULE_python_argument_list); try { this.state = 2394; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,200,this._ctx); switch(la_) { case 1: localctx = new PythonOrdinalOnlyArgumentListContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2388; localctx.ordinal = this.python_ordinal_argument_list(0); break; case 2: localctx = new PythonNamedOnlyArgumentListContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2389; localctx.named = this.python_named_argument_list(0); break; case 3: localctx = new PythonArgumentListContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2390; localctx.ordinal = this.python_ordinal_argument_list(0); this.state = 2391; this.match(EParser.COMMA); this.state = 2392; localctx.named = this.python_named_argument_list(0); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_ordinal_argument_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_ordinal_argument_list; return this; } Python_ordinal_argument_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_ordinal_argument_listContext.prototype.constructor = Python_ordinal_argument_listContext; Python_ordinal_argument_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonOrdinalArgumentListContext(parser, ctx) { Python_ordinal_argument_listContext.call(this, parser); this.item = null; // Python_expressionContext; Python_ordinal_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonOrdinalArgumentListContext.prototype = Object.create(Python_ordinal_argument_listContext.prototype); PythonOrdinalArgumentListContext.prototype.constructor = PythonOrdinalArgumentListContext; EParser.PythonOrdinalArgumentListContext = PythonOrdinalArgumentListContext; PythonOrdinalArgumentListContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonOrdinalArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonOrdinalArgumentList(this); } }; PythonOrdinalArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonOrdinalArgumentList(this); } }; function PythonOrdinalArgumentListItemContext(parser, ctx) { Python_ordinal_argument_listContext.call(this, parser); this.items = null; // Python_ordinal_argument_listContext; this.item = null; // Python_expressionContext; Python_ordinal_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonOrdinalArgumentListItemContext.prototype = Object.create(Python_ordinal_argument_listContext.prototype); PythonOrdinalArgumentListItemContext.prototype.constructor = PythonOrdinalArgumentListItemContext; EParser.PythonOrdinalArgumentListItemContext = PythonOrdinalArgumentListItemContext; PythonOrdinalArgumentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; PythonOrdinalArgumentListItemContext.prototype.python_ordinal_argument_list = function() { return this.getTypedRuleContext(Python_ordinal_argument_listContext,0); }; PythonOrdinalArgumentListItemContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonOrdinalArgumentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonOrdinalArgumentListItem(this); } }; PythonOrdinalArgumentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonOrdinalArgumentListItem(this); } }; EParser.prototype.python_ordinal_argument_list = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Python_ordinal_argument_listContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 380; this.enterRecursionRule(localctx, 380, EParser.RULE_python_ordinal_argument_list, _p); try { this.enterOuterAlt(localctx, 1); localctx = new PythonOrdinalArgumentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2397; localctx.item = this.python_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2404; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,201,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new PythonOrdinalArgumentListItemContext(this, new Python_ordinal_argument_listContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_python_ordinal_argument_list); this.state = 2399; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2400; this.match(EParser.COMMA); this.state = 2401; localctx.item = this.python_expression(0); } this.state = 2406; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,201,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Python_named_argument_listContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_named_argument_list; return this; } Python_named_argument_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_named_argument_listContext.prototype.constructor = Python_named_argument_listContext; Python_named_argument_listContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonNamedArgumentListContext(parser, ctx) { Python_named_argument_listContext.call(this, parser); this.name = null; // Python_identifierContext; this.exp = null; // Python_expressionContext; Python_named_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonNamedArgumentListContext.prototype = Object.create(Python_named_argument_listContext.prototype); PythonNamedArgumentListContext.prototype.constructor = PythonNamedArgumentListContext; EParser.PythonNamedArgumentListContext = PythonNamedArgumentListContext; PythonNamedArgumentListContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; PythonNamedArgumentListContext.prototype.python_identifier = function() { return this.getTypedRuleContext(Python_identifierContext,0); }; PythonNamedArgumentListContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonNamedArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonNamedArgumentList(this); } }; PythonNamedArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonNamedArgumentList(this); } }; function PythonNamedArgumentListItemContext(parser, ctx) { Python_named_argument_listContext.call(this, parser); this.items = null; // Python_named_argument_listContext; this.name = null; // Python_identifierContext; this.exp = null; // Python_expressionContext; Python_named_argument_listContext.prototype.copyFrom.call(this, ctx); return this; } PythonNamedArgumentListItemContext.prototype = Object.create(Python_named_argument_listContext.prototype); PythonNamedArgumentListItemContext.prototype.constructor = PythonNamedArgumentListItemContext; EParser.PythonNamedArgumentListItemContext = PythonNamedArgumentListItemContext; PythonNamedArgumentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; PythonNamedArgumentListItemContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; PythonNamedArgumentListItemContext.prototype.python_named_argument_list = function() { return this.getTypedRuleContext(Python_named_argument_listContext,0); }; PythonNamedArgumentListItemContext.prototype.python_identifier = function() { return this.getTypedRuleContext(Python_identifierContext,0); }; PythonNamedArgumentListItemContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; PythonNamedArgumentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonNamedArgumentListItem(this); } }; PythonNamedArgumentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonNamedArgumentListItem(this); } }; EParser.prototype.python_named_argument_list = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Python_named_argument_listContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 382; this.enterRecursionRule(localctx, 382, EParser.RULE_python_named_argument_list, _p); try { this.enterOuterAlt(localctx, 1); localctx = new PythonNamedArgumentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2408; localctx.name = this.python_identifier(); this.state = 2409; this.match(EParser.EQ); this.state = 2410; localctx.exp = this.python_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2420; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,202,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new PythonNamedArgumentListItemContext(this, new Python_named_argument_listContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_python_named_argument_list); this.state = 2412; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2413; this.match(EParser.COMMA); this.state = 2414; localctx.name = this.python_identifier(); this.state = 2415; this.match(EParser.EQ); this.state = 2416; localctx.exp = this.python_expression(0); } this.state = 2422; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,202,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Python_parenthesis_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_parenthesis_expression; this.exp = null; // Python_expressionContext return this; } Python_parenthesis_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_parenthesis_expressionContext.prototype.constructor = Python_parenthesis_expressionContext; Python_parenthesis_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Python_parenthesis_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Python_parenthesis_expressionContext.prototype.python_expression = function() { return this.getTypedRuleContext(Python_expressionContext,0); }; Python_parenthesis_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_parenthesis_expression(this); } }; Python_parenthesis_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_parenthesis_expression(this); } }; EParser.Python_parenthesis_expressionContext = Python_parenthesis_expressionContext; EParser.prototype.python_parenthesis_expression = function() { var localctx = new Python_parenthesis_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 384, EParser.RULE_python_parenthesis_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2423; this.match(EParser.LPAR); this.state = 2424; localctx.exp = this.python_expression(0); this.state = 2425; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_identifier_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_identifier_expression; return this; } Python_identifier_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_identifier_expressionContext.prototype.constructor = Python_identifier_expressionContext; Python_identifier_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonChildIdentifierContext(parser, ctx) { Python_identifier_expressionContext.call(this, parser); this.parent = null; // Python_identifier_expressionContext; this.name = null; // Python_identifierContext; Python_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonChildIdentifierContext.prototype = Object.create(Python_identifier_expressionContext.prototype); PythonChildIdentifierContext.prototype.constructor = PythonChildIdentifierContext; EParser.PythonChildIdentifierContext = PythonChildIdentifierContext; PythonChildIdentifierContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; PythonChildIdentifierContext.prototype.python_identifier_expression = function() { return this.getTypedRuleContext(Python_identifier_expressionContext,0); }; PythonChildIdentifierContext.prototype.python_identifier = function() { return this.getTypedRuleContext(Python_identifierContext,0); }; PythonChildIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonChildIdentifier(this); } }; PythonChildIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonChildIdentifier(this); } }; function PythonPromptoIdentifierContext(parser, ctx) { Python_identifier_expressionContext.call(this, parser); Python_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonPromptoIdentifierContext.prototype = Object.create(Python_identifier_expressionContext.prototype); PythonPromptoIdentifierContext.prototype.constructor = PythonPromptoIdentifierContext; EParser.PythonPromptoIdentifierContext = PythonPromptoIdentifierContext; PythonPromptoIdentifierContext.prototype.DOLLAR_IDENTIFIER = function() { return this.getToken(EParser.DOLLAR_IDENTIFIER, 0); }; PythonPromptoIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonPromptoIdentifier(this); } }; PythonPromptoIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonPromptoIdentifier(this); } }; function PythonIdentifierContext(parser, ctx) { Python_identifier_expressionContext.call(this, parser); this.name = null; // Python_identifierContext; Python_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonIdentifierContext.prototype = Object.create(Python_identifier_expressionContext.prototype); PythonIdentifierContext.prototype.constructor = PythonIdentifierContext; EParser.PythonIdentifierContext = PythonIdentifierContext; PythonIdentifierContext.prototype.python_identifier = function() { return this.getTypedRuleContext(Python_identifierContext,0); }; PythonIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonIdentifier(this); } }; PythonIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonIdentifier(this); } }; EParser.prototype.python_identifier_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Python_identifier_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 386; this.enterRecursionRule(localctx, 386, EParser.RULE_python_identifier_expression, _p); try { this.enterOuterAlt(localctx, 1); this.state = 2430; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DOLLAR_IDENTIFIER: localctx = new PythonPromptoIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2428; this.match(EParser.DOLLAR_IDENTIFIER); break; case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.TEST: case EParser.THIS: case EParser.WRITE: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: localctx = new PythonIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2429; localctx.name = this.python_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } this._ctx.stop = this._input.LT(-1); this.state = 2437; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,204,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new PythonChildIdentifierContext(this, new Python_identifier_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_python_identifier_expression); this.state = 2432; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2433; this.match(EParser.DOT); this.state = 2434; localctx.name = this.python_identifier(); } this.state = 2439; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,204,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Python_literal_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_literal_expression; return this; } Python_literal_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_literal_expressionContext.prototype.constructor = Python_literal_expressionContext; Python_literal_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function PythonIntegerLiteralContext(parser, ctx) { Python_literal_expressionContext.call(this, parser); this.t = null; // Token; Python_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonIntegerLiteralContext.prototype = Object.create(Python_literal_expressionContext.prototype); PythonIntegerLiteralContext.prototype.constructor = PythonIntegerLiteralContext; EParser.PythonIntegerLiteralContext = PythonIntegerLiteralContext; PythonIntegerLiteralContext.prototype.INTEGER_LITERAL = function() { return this.getToken(EParser.INTEGER_LITERAL, 0); }; PythonIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonIntegerLiteral(this); } }; PythonIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonIntegerLiteral(this); } }; function PythonBooleanLiteralContext(parser, ctx) { Python_literal_expressionContext.call(this, parser); this.t = null; // Token; Python_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonBooleanLiteralContext.prototype = Object.create(Python_literal_expressionContext.prototype); PythonBooleanLiteralContext.prototype.constructor = PythonBooleanLiteralContext; EParser.PythonBooleanLiteralContext = PythonBooleanLiteralContext; PythonBooleanLiteralContext.prototype.BOOLEAN_LITERAL = function() { return this.getToken(EParser.BOOLEAN_LITERAL, 0); }; PythonBooleanLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonBooleanLiteral(this); } }; PythonBooleanLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonBooleanLiteral(this); } }; function PythonCharacterLiteralContext(parser, ctx) { Python_literal_expressionContext.call(this, parser); this.t = null; // Token; Python_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonCharacterLiteralContext.prototype = Object.create(Python_literal_expressionContext.prototype); PythonCharacterLiteralContext.prototype.constructor = PythonCharacterLiteralContext; EParser.PythonCharacterLiteralContext = PythonCharacterLiteralContext; PythonCharacterLiteralContext.prototype.CHAR_LITERAL = function() { return this.getToken(EParser.CHAR_LITERAL, 0); }; PythonCharacterLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonCharacterLiteral(this); } }; PythonCharacterLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonCharacterLiteral(this); } }; function PythonTextLiteralContext(parser, ctx) { Python_literal_expressionContext.call(this, parser); this.t = null; // Token; Python_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonTextLiteralContext.prototype = Object.create(Python_literal_expressionContext.prototype); PythonTextLiteralContext.prototype.constructor = PythonTextLiteralContext; EParser.PythonTextLiteralContext = PythonTextLiteralContext; PythonTextLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; PythonTextLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonTextLiteral(this); } }; PythonTextLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonTextLiteral(this); } }; function PythonDecimalLiteralContext(parser, ctx) { Python_literal_expressionContext.call(this, parser); this.t = null; // Token; Python_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } PythonDecimalLiteralContext.prototype = Object.create(Python_literal_expressionContext.prototype); PythonDecimalLiteralContext.prototype.constructor = PythonDecimalLiteralContext; EParser.PythonDecimalLiteralContext = PythonDecimalLiteralContext; PythonDecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { return this.getToken(EParser.DECIMAL_LITERAL, 0); }; PythonDecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPythonDecimalLiteral(this); } }; PythonDecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPythonDecimalLiteral(this); } }; EParser.Python_literal_expressionContext = Python_literal_expressionContext; EParser.prototype.python_literal_expression = function() { var localctx = new Python_literal_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 388, EParser.RULE_python_literal_expression); try { this.state = 2445; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.INTEGER_LITERAL: localctx = new PythonIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2440; localctx.t = this.match(EParser.INTEGER_LITERAL); break; case EParser.DECIMAL_LITERAL: localctx = new PythonDecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2441; localctx.t = this.match(EParser.DECIMAL_LITERAL); break; case EParser.TEXT_LITERAL: localctx = new PythonTextLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2442; localctx.t = this.match(EParser.TEXT_LITERAL); break; case EParser.BOOLEAN_LITERAL: localctx = new PythonBooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2443; localctx.t = this.match(EParser.BOOLEAN_LITERAL); break; case EParser.CHAR_LITERAL: localctx = new PythonCharacterLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2444; localctx.t = this.match(EParser.CHAR_LITERAL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Python_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_python_identifier; return this; } Python_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Python_identifierContext.prototype.constructor = Python_identifierContext; Python_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Python_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Python_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Python_identifierContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; Python_identifierContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; Python_identifierContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; Python_identifierContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; Python_identifierContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; Python_identifierContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; Python_identifierContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; Python_identifierContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; Python_identifierContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; Python_identifierContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; Python_identifierContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; Python_identifierContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; Python_identifierContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Python_identifierContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; Python_identifierContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; Python_identifierContext.prototype.THIS = function() { return this.getToken(EParser.THIS, 0); }; Python_identifierContext.prototype.NONE = function() { return this.getToken(EParser.NONE, 0); }; Python_identifierContext.prototype.NULL = function() { return this.getToken(EParser.NULL, 0); }; Python_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterPython_identifier(this); } }; Python_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitPython_identifier(this); } }; EParser.Python_identifierContext = Python_identifierContext; EParser.prototype.python_identifier = function() { var localctx = new Python_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 390, EParser.RULE_python_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2447; _la = this._input.LA(1); if(!(((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.TEST - 123)) | (1 << (EParser.THIS - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_statement; return this; } Java_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_statementContext.prototype.constructor = Java_statementContext; Java_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaReturnStatementContext(parser, ctx) { Java_statementContext.call(this, parser); this.exp = null; // Java_expressionContext; Java_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavaReturnStatementContext.prototype = Object.create(Java_statementContext.prototype); JavaReturnStatementContext.prototype.constructor = JavaReturnStatementContext; EParser.JavaReturnStatementContext = JavaReturnStatementContext; JavaReturnStatementContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; JavaReturnStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; JavaReturnStatementContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; JavaReturnStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaReturnStatement(this); } }; JavaReturnStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaReturnStatement(this); } }; function JavaStatementContext(parser, ctx) { Java_statementContext.call(this, parser); this.exp = null; // Java_expressionContext; Java_statementContext.prototype.copyFrom.call(this, ctx); return this; } JavaStatementContext.prototype = Object.create(Java_statementContext.prototype); JavaStatementContext.prototype.constructor = JavaStatementContext; EParser.JavaStatementContext = JavaStatementContext; JavaStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; JavaStatementContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; JavaStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaStatement(this); } }; JavaStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaStatement(this); } }; EParser.Java_statementContext = Java_statementContext; EParser.prototype.java_statement = function() { var localctx = new Java_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 392, EParser.RULE_java_statement); try { this.state = 2456; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.RETURN: localctx = new JavaReturnStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2449; this.match(EParser.RETURN); this.state = 2450; localctx.exp = this.java_expression(0); this.state = 2451; this.match(EParser.SEMI); break; case EParser.LPAR: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.SELF: case EParser.TEST: case EParser.THIS: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.NATIVE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.INTEGER_LITERAL: case EParser.DECIMAL_LITERAL: localctx = new JavaStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2453; localctx.exp = this.java_expression(0); this.state = 2454; this.match(EParser.SEMI); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_expression; return this; } Java_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_expressionContext.prototype.constructor = Java_expressionContext; Java_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaSelectorExpressionContext(parser, ctx) { Java_expressionContext.call(this, parser); this.parent = null; // Java_expressionContext; this.child = null; // Java_selector_expressionContext; Java_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaSelectorExpressionContext.prototype = Object.create(Java_expressionContext.prototype); JavaSelectorExpressionContext.prototype.constructor = JavaSelectorExpressionContext; EParser.JavaSelectorExpressionContext = JavaSelectorExpressionContext; JavaSelectorExpressionContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; JavaSelectorExpressionContext.prototype.java_selector_expression = function() { return this.getTypedRuleContext(Java_selector_expressionContext,0); }; JavaSelectorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaSelectorExpression(this); } }; JavaSelectorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaSelectorExpression(this); } }; function JavaPrimaryExpressionContext(parser, ctx) { Java_expressionContext.call(this, parser); this.exp = null; // Java_primary_expressionContext; Java_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaPrimaryExpressionContext.prototype = Object.create(Java_expressionContext.prototype); JavaPrimaryExpressionContext.prototype.constructor = JavaPrimaryExpressionContext; EParser.JavaPrimaryExpressionContext = JavaPrimaryExpressionContext; JavaPrimaryExpressionContext.prototype.java_primary_expression = function() { return this.getTypedRuleContext(Java_primary_expressionContext,0); }; JavaPrimaryExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaPrimaryExpression(this); } }; JavaPrimaryExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaPrimaryExpression(this); } }; EParser.prototype.java_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Java_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 394; this.enterRecursionRule(localctx, 394, EParser.RULE_java_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavaPrimaryExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2459; localctx.exp = this.java_primary_expression(); this._ctx.stop = this._input.LT(-1); this.state = 2465; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,207,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavaSelectorExpressionContext(this, new Java_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_java_expression); this.state = 2461; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2462; localctx.child = this.java_selector_expression(); } this.state = 2467; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,207,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Java_primary_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_primary_expression; return this; } Java_primary_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_primary_expressionContext.prototype.constructor = Java_primary_expressionContext; Java_primary_expressionContext.prototype.java_this_expression = function() { return this.getTypedRuleContext(Java_this_expressionContext,0); }; Java_primary_expressionContext.prototype.java_new_expression = function() { return this.getTypedRuleContext(Java_new_expressionContext,0); }; Java_primary_expressionContext.prototype.java_parenthesis_expression = function() { return this.getTypedRuleContext(Java_parenthesis_expressionContext,0); }; Java_primary_expressionContext.prototype.java_identifier_expression = function() { return this.getTypedRuleContext(Java_identifier_expressionContext,0); }; Java_primary_expressionContext.prototype.java_literal_expression = function() { return this.getTypedRuleContext(Java_literal_expressionContext,0); }; Java_primary_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_primary_expression(this); } }; Java_primary_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_primary_expression(this); } }; EParser.Java_primary_expressionContext = Java_primary_expressionContext; EParser.prototype.java_primary_expression = function() { var localctx = new Java_primary_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 396, EParser.RULE_java_primary_expression); try { this.state = 2473; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,208,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 2468; this.java_this_expression(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 2469; this.java_new_expression(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 2470; this.java_parenthesis_expression(); break; case 4: this.enterOuterAlt(localctx, 4); this.state = 2471; this.java_identifier_expression(0); break; case 5: this.enterOuterAlt(localctx, 5); this.state = 2472; this.java_literal_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_this_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_this_expression; return this; } Java_this_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_this_expressionContext.prototype.constructor = Java_this_expressionContext; Java_this_expressionContext.prototype.this_expression = function() { return this.getTypedRuleContext(This_expressionContext,0); }; Java_this_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_this_expression(this); } }; Java_this_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_this_expression(this); } }; EParser.Java_this_expressionContext = Java_this_expressionContext; EParser.prototype.java_this_expression = function() { var localctx = new Java_this_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 398, EParser.RULE_java_this_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2475; this.this_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_new_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_new_expression; return this; } Java_new_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_new_expressionContext.prototype.constructor = Java_new_expressionContext; Java_new_expressionContext.prototype.new_token = function() { return this.getTypedRuleContext(New_tokenContext,0); }; Java_new_expressionContext.prototype.java_method_expression = function() { return this.getTypedRuleContext(Java_method_expressionContext,0); }; Java_new_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_new_expression(this); } }; Java_new_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_new_expression(this); } }; EParser.Java_new_expressionContext = Java_new_expressionContext; EParser.prototype.java_new_expression = function() { var localctx = new Java_new_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 400, EParser.RULE_java_new_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2477; this.new_token(); this.state = 2478; this.java_method_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_selector_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_selector_expression; return this; } Java_selector_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_selector_expressionContext.prototype.constructor = Java_selector_expressionContext; Java_selector_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaItemExpressionContext(parser, ctx) { Java_selector_expressionContext.call(this, parser); this.exp = null; // Java_item_expressionContext; Java_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaItemExpressionContext.prototype = Object.create(Java_selector_expressionContext.prototype); JavaItemExpressionContext.prototype.constructor = JavaItemExpressionContext; EParser.JavaItemExpressionContext = JavaItemExpressionContext; JavaItemExpressionContext.prototype.java_item_expression = function() { return this.getTypedRuleContext(Java_item_expressionContext,0); }; JavaItemExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaItemExpression(this); } }; JavaItemExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaItemExpression(this); } }; function JavaMethodExpressionContext(parser, ctx) { Java_selector_expressionContext.call(this, parser); this.exp = null; // Java_method_expressionContext; Java_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaMethodExpressionContext.prototype = Object.create(Java_selector_expressionContext.prototype); JavaMethodExpressionContext.prototype.constructor = JavaMethodExpressionContext; EParser.JavaMethodExpressionContext = JavaMethodExpressionContext; JavaMethodExpressionContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; JavaMethodExpressionContext.prototype.java_method_expression = function() { return this.getTypedRuleContext(Java_method_expressionContext,0); }; JavaMethodExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaMethodExpression(this); } }; JavaMethodExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaMethodExpression(this); } }; EParser.Java_selector_expressionContext = Java_selector_expressionContext; EParser.prototype.java_selector_expression = function() { var localctx = new Java_selector_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 402, EParser.RULE_java_selector_expression); try { this.state = 2483; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DOT: localctx = new JavaMethodExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2480; this.match(EParser.DOT); this.state = 2481; localctx.exp = this.java_method_expression(); break; case EParser.LBRAK: localctx = new JavaItemExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2482; localctx.exp = this.java_item_expression(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_method_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_method_expression; this.name = null; // Java_identifierContext this.args = null; // Java_argumentsContext return this; } Java_method_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_method_expressionContext.prototype.constructor = Java_method_expressionContext; Java_method_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Java_method_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Java_method_expressionContext.prototype.java_identifier = function() { return this.getTypedRuleContext(Java_identifierContext,0); }; Java_method_expressionContext.prototype.java_arguments = function() { return this.getTypedRuleContext(Java_argumentsContext,0); }; Java_method_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_method_expression(this); } }; Java_method_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_method_expression(this); } }; EParser.Java_method_expressionContext = Java_method_expressionContext; EParser.prototype.java_method_expression = function() { var localctx = new Java_method_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 404, EParser.RULE_java_method_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2485; localctx.name = this.java_identifier(); this.state = 2486; this.match(EParser.LPAR); this.state = 2488; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.LPAR || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)) | (1 << (EParser.THIS - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.BOOLEAN_LITERAL - 161)) | (1 << (EParser.CHAR_LITERAL - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.NATIVE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)) | (1 << (EParser.TEXT_LITERAL - 161)) | (1 << (EParser.INTEGER_LITERAL - 161)) | (1 << (EParser.DECIMAL_LITERAL - 161)))) !== 0)) { this.state = 2487; localctx.args = this.java_arguments(0); } this.state = 2490; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_argumentsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_arguments; return this; } Java_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_argumentsContext.prototype.constructor = Java_argumentsContext; Java_argumentsContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaArgumentListItemContext(parser, ctx) { Java_argumentsContext.call(this, parser); this.items = null; // Java_argumentsContext; this.item = null; // Java_expressionContext; Java_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } JavaArgumentListItemContext.prototype = Object.create(Java_argumentsContext.prototype); JavaArgumentListItemContext.prototype.constructor = JavaArgumentListItemContext; EParser.JavaArgumentListItemContext = JavaArgumentListItemContext; JavaArgumentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; JavaArgumentListItemContext.prototype.java_arguments = function() { return this.getTypedRuleContext(Java_argumentsContext,0); }; JavaArgumentListItemContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; JavaArgumentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaArgumentListItem(this); } }; JavaArgumentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaArgumentListItem(this); } }; function JavaArgumentListContext(parser, ctx) { Java_argumentsContext.call(this, parser); this.item = null; // Java_expressionContext; Java_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } JavaArgumentListContext.prototype = Object.create(Java_argumentsContext.prototype); JavaArgumentListContext.prototype.constructor = JavaArgumentListContext; EParser.JavaArgumentListContext = JavaArgumentListContext; JavaArgumentListContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; JavaArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaArgumentList(this); } }; JavaArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaArgumentList(this); } }; EParser.prototype.java_arguments = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Java_argumentsContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 406; this.enterRecursionRule(localctx, 406, EParser.RULE_java_arguments, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavaArgumentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2493; localctx.item = this.java_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2500; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,211,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavaArgumentListItemContext(this, new Java_argumentsContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_java_arguments); this.state = 2495; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2496; this.match(EParser.COMMA); this.state = 2497; localctx.item = this.java_expression(0); } this.state = 2502; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,211,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Java_item_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_item_expression; this.exp = null; // Java_expressionContext return this; } Java_item_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_item_expressionContext.prototype.constructor = Java_item_expressionContext; Java_item_expressionContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; Java_item_expressionContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; Java_item_expressionContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; Java_item_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_item_expression(this); } }; Java_item_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_item_expression(this); } }; EParser.Java_item_expressionContext = Java_item_expressionContext; EParser.prototype.java_item_expression = function() { var localctx = new Java_item_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 408, EParser.RULE_java_item_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2503; this.match(EParser.LBRAK); this.state = 2504; localctx.exp = this.java_expression(0); this.state = 2505; this.match(EParser.RBRAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_parenthesis_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_parenthesis_expression; this.exp = null; // Java_expressionContext return this; } Java_parenthesis_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_parenthesis_expressionContext.prototype.constructor = Java_parenthesis_expressionContext; Java_parenthesis_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Java_parenthesis_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Java_parenthesis_expressionContext.prototype.java_expression = function() { return this.getTypedRuleContext(Java_expressionContext,0); }; Java_parenthesis_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_parenthesis_expression(this); } }; Java_parenthesis_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_parenthesis_expression(this); } }; EParser.Java_parenthesis_expressionContext = Java_parenthesis_expressionContext; EParser.prototype.java_parenthesis_expression = function() { var localctx = new Java_parenthesis_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 410, EParser.RULE_java_parenthesis_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2507; this.match(EParser.LPAR); this.state = 2508; localctx.exp = this.java_expression(0); this.state = 2509; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_identifier_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_identifier_expression; return this; } Java_identifier_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_identifier_expressionContext.prototype.constructor = Java_identifier_expressionContext; Java_identifier_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaIdentifierContext(parser, ctx) { Java_identifier_expressionContext.call(this, parser); this.name = null; // Java_identifierContext; Java_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaIdentifierContext.prototype = Object.create(Java_identifier_expressionContext.prototype); JavaIdentifierContext.prototype.constructor = JavaIdentifierContext; EParser.JavaIdentifierContext = JavaIdentifierContext; JavaIdentifierContext.prototype.java_identifier = function() { return this.getTypedRuleContext(Java_identifierContext,0); }; JavaIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaIdentifier(this); } }; JavaIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaIdentifier(this); } }; function JavaChildIdentifierContext(parser, ctx) { Java_identifier_expressionContext.call(this, parser); this.parent = null; // Java_identifier_expressionContext; this.name = null; // Java_identifierContext; Java_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaChildIdentifierContext.prototype = Object.create(Java_identifier_expressionContext.prototype); JavaChildIdentifierContext.prototype.constructor = JavaChildIdentifierContext; EParser.JavaChildIdentifierContext = JavaChildIdentifierContext; JavaChildIdentifierContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; JavaChildIdentifierContext.prototype.java_identifier_expression = function() { return this.getTypedRuleContext(Java_identifier_expressionContext,0); }; JavaChildIdentifierContext.prototype.java_identifier = function() { return this.getTypedRuleContext(Java_identifierContext,0); }; JavaChildIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaChildIdentifier(this); } }; JavaChildIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaChildIdentifier(this); } }; EParser.prototype.java_identifier_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Java_identifier_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 412; this.enterRecursionRule(localctx, 412, EParser.RULE_java_identifier_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavaIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2512; localctx.name = this.java_identifier(); this._ctx.stop = this._input.LT(-1); this.state = 2519; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,212,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavaChildIdentifierContext(this, new Java_identifier_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_java_identifier_expression); this.state = 2514; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2515; this.match(EParser.DOT); this.state = 2516; localctx.name = this.java_identifier(); } this.state = 2521; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,212,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Java_class_identifier_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_class_identifier_expression; return this; } Java_class_identifier_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_class_identifier_expressionContext.prototype.constructor = Java_class_identifier_expressionContext; Java_class_identifier_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaClassIdentifierContext(parser, ctx) { Java_class_identifier_expressionContext.call(this, parser); this.klass = null; // Java_identifier_expressionContext; Java_class_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaClassIdentifierContext.prototype = Object.create(Java_class_identifier_expressionContext.prototype); JavaClassIdentifierContext.prototype.constructor = JavaClassIdentifierContext; EParser.JavaClassIdentifierContext = JavaClassIdentifierContext; JavaClassIdentifierContext.prototype.java_identifier_expression = function() { return this.getTypedRuleContext(Java_identifier_expressionContext,0); }; JavaClassIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaClassIdentifier(this); } }; JavaClassIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaClassIdentifier(this); } }; function JavaChildClassIdentifierContext(parser, ctx) { Java_class_identifier_expressionContext.call(this, parser); this.parent = null; // Java_class_identifier_expressionContext; this.name = null; // Token; Java_class_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaChildClassIdentifierContext.prototype = Object.create(Java_class_identifier_expressionContext.prototype); JavaChildClassIdentifierContext.prototype.constructor = JavaChildClassIdentifierContext; EParser.JavaChildClassIdentifierContext = JavaChildClassIdentifierContext; JavaChildClassIdentifierContext.prototype.java_class_identifier_expression = function() { return this.getTypedRuleContext(Java_class_identifier_expressionContext,0); }; JavaChildClassIdentifierContext.prototype.DOLLAR_IDENTIFIER = function() { return this.getToken(EParser.DOLLAR_IDENTIFIER, 0); }; JavaChildClassIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaChildClassIdentifier(this); } }; JavaChildClassIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaChildClassIdentifier(this); } }; EParser.prototype.java_class_identifier_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Java_class_identifier_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 414; this.enterRecursionRule(localctx, 414, EParser.RULE_java_class_identifier_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new JavaClassIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2523; localctx.klass = this.java_identifier_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2529; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,213,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new JavaChildClassIdentifierContext(this, new Java_class_identifier_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_java_class_identifier_expression); this.state = 2525; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2526; localctx.name = this.match(EParser.DOLLAR_IDENTIFIER); } this.state = 2531; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,213,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Java_literal_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_literal_expression; return this; } Java_literal_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_literal_expressionContext.prototype.constructor = Java_literal_expressionContext; Java_literal_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JavaBooleanLiteralContext(parser, ctx) { Java_literal_expressionContext.call(this, parser); this.t = null; // Token; Java_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaBooleanLiteralContext.prototype = Object.create(Java_literal_expressionContext.prototype); JavaBooleanLiteralContext.prototype.constructor = JavaBooleanLiteralContext; EParser.JavaBooleanLiteralContext = JavaBooleanLiteralContext; JavaBooleanLiteralContext.prototype.BOOLEAN_LITERAL = function() { return this.getToken(EParser.BOOLEAN_LITERAL, 0); }; JavaBooleanLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaBooleanLiteral(this); } }; JavaBooleanLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaBooleanLiteral(this); } }; function JavaCharacterLiteralContext(parser, ctx) { Java_literal_expressionContext.call(this, parser); this.t = null; // Token; Java_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaCharacterLiteralContext.prototype = Object.create(Java_literal_expressionContext.prototype); JavaCharacterLiteralContext.prototype.constructor = JavaCharacterLiteralContext; EParser.JavaCharacterLiteralContext = JavaCharacterLiteralContext; JavaCharacterLiteralContext.prototype.CHAR_LITERAL = function() { return this.getToken(EParser.CHAR_LITERAL, 0); }; JavaCharacterLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaCharacterLiteral(this); } }; JavaCharacterLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaCharacterLiteral(this); } }; function JavaIntegerLiteralContext(parser, ctx) { Java_literal_expressionContext.call(this, parser); this.t = null; // Token; Java_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaIntegerLiteralContext.prototype = Object.create(Java_literal_expressionContext.prototype); JavaIntegerLiteralContext.prototype.constructor = JavaIntegerLiteralContext; EParser.JavaIntegerLiteralContext = JavaIntegerLiteralContext; JavaIntegerLiteralContext.prototype.INTEGER_LITERAL = function() { return this.getToken(EParser.INTEGER_LITERAL, 0); }; JavaIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaIntegerLiteral(this); } }; JavaIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaIntegerLiteral(this); } }; function JavaTextLiteralContext(parser, ctx) { Java_literal_expressionContext.call(this, parser); this.t = null; // Token; Java_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaTextLiteralContext.prototype = Object.create(Java_literal_expressionContext.prototype); JavaTextLiteralContext.prototype.constructor = JavaTextLiteralContext; EParser.JavaTextLiteralContext = JavaTextLiteralContext; JavaTextLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; JavaTextLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaTextLiteral(this); } }; JavaTextLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaTextLiteral(this); } }; function JavaDecimalLiteralContext(parser, ctx) { Java_literal_expressionContext.call(this, parser); this.t = null; // Token; Java_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } JavaDecimalLiteralContext.prototype = Object.create(Java_literal_expressionContext.prototype); JavaDecimalLiteralContext.prototype.constructor = JavaDecimalLiteralContext; EParser.JavaDecimalLiteralContext = JavaDecimalLiteralContext; JavaDecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { return this.getToken(EParser.DECIMAL_LITERAL, 0); }; JavaDecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJavaDecimalLiteral(this); } }; JavaDecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJavaDecimalLiteral(this); } }; EParser.Java_literal_expressionContext = Java_literal_expressionContext; EParser.prototype.java_literal_expression = function() { var localctx = new Java_literal_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 416, EParser.RULE_java_literal_expression); try { this.state = 2537; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.INTEGER_LITERAL: localctx = new JavaIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2532; localctx.t = this.match(EParser.INTEGER_LITERAL); break; case EParser.DECIMAL_LITERAL: localctx = new JavaDecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2533; localctx.t = this.match(EParser.DECIMAL_LITERAL); break; case EParser.TEXT_LITERAL: localctx = new JavaTextLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2534; localctx.t = this.match(EParser.TEXT_LITERAL); break; case EParser.BOOLEAN_LITERAL: localctx = new JavaBooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2535; localctx.t = this.match(EParser.BOOLEAN_LITERAL); break; case EParser.CHAR_LITERAL: localctx = new JavaCharacterLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2536; localctx.t = this.match(EParser.CHAR_LITERAL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Java_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_java_identifier; return this; } Java_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Java_identifierContext.prototype.constructor = Java_identifierContext; Java_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Java_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Java_identifierContext.prototype.NATIVE_IDENTIFIER = function() { return this.getToken(EParser.NATIVE_IDENTIFIER, 0); }; Java_identifierContext.prototype.DOLLAR_IDENTIFIER = function() { return this.getToken(EParser.DOLLAR_IDENTIFIER, 0); }; Java_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Java_identifierContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; Java_identifierContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; Java_identifierContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; Java_identifierContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; Java_identifierContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; Java_identifierContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; Java_identifierContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; Java_identifierContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; Java_identifierContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; Java_identifierContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; Java_identifierContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; Java_identifierContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; Java_identifierContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Java_identifierContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; Java_identifierContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; Java_identifierContext.prototype.SELF = function() { return this.getToken(EParser.SELF, 0); }; Java_identifierContext.prototype.NONE = function() { return this.getToken(EParser.NONE, 0); }; Java_identifierContext.prototype.NULL = function() { return this.getToken(EParser.NULL, 0); }; Java_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJava_identifier(this); } }; Java_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJava_identifier(this); } }; EParser.Java_identifierContext = Java_identifierContext; EParser.prototype.java_identifier = function() { var localctx = new Java_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 418, EParser.RULE_java_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2539; _la = this._input.LA(1); if(!(((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.NATIVE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_statementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_statement; return this; } Csharp_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_statementContext.prototype.constructor = Csharp_statementContext; Csharp_statementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpReturnStatementContext(parser, ctx) { Csharp_statementContext.call(this, parser); this.exp = null; // Csharp_expressionContext; Csharp_statementContext.prototype.copyFrom.call(this, ctx); return this; } CSharpReturnStatementContext.prototype = Object.create(Csharp_statementContext.prototype); CSharpReturnStatementContext.prototype.constructor = CSharpReturnStatementContext; EParser.CSharpReturnStatementContext = CSharpReturnStatementContext; CSharpReturnStatementContext.prototype.RETURN = function() { return this.getToken(EParser.RETURN, 0); }; CSharpReturnStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; CSharpReturnStatementContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; CSharpReturnStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpReturnStatement(this); } }; CSharpReturnStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpReturnStatement(this); } }; function CSharpStatementContext(parser, ctx) { Csharp_statementContext.call(this, parser); this.exp = null; // Csharp_expressionContext; Csharp_statementContext.prototype.copyFrom.call(this, ctx); return this; } CSharpStatementContext.prototype = Object.create(Csharp_statementContext.prototype); CSharpStatementContext.prototype.constructor = CSharpStatementContext; EParser.CSharpStatementContext = CSharpStatementContext; CSharpStatementContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; CSharpStatementContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; CSharpStatementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpStatement(this); } }; CSharpStatementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpStatement(this); } }; EParser.Csharp_statementContext = Csharp_statementContext; EParser.prototype.csharp_statement = function() { var localctx = new Csharp_statementContext(this, this._ctx, this.state); this.enterRule(localctx, 420, EParser.RULE_csharp_statement); try { this.state = 2548; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.RETURN: localctx = new CSharpReturnStatementContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2541; this.match(EParser.RETURN); this.state = 2542; localctx.exp = this.csharp_expression(0); this.state = 2543; this.match(EParser.SEMI); break; case EParser.LPAR: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.SELF: case EParser.TEST: case EParser.THIS: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.INTEGER_LITERAL: case EParser.DECIMAL_LITERAL: localctx = new CSharpStatementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2545; localctx.exp = this.csharp_expression(0); this.state = 2546; this.match(EParser.SEMI); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_expression; return this; } Csharp_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_expressionContext.prototype.constructor = Csharp_expressionContext; Csharp_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpSelectorExpressionContext(parser, ctx) { Csharp_expressionContext.call(this, parser); this.parent = null; // Csharp_expressionContext; this.child = null; // Csharp_selector_expressionContext; Csharp_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpSelectorExpressionContext.prototype = Object.create(Csharp_expressionContext.prototype); CSharpSelectorExpressionContext.prototype.constructor = CSharpSelectorExpressionContext; EParser.CSharpSelectorExpressionContext = CSharpSelectorExpressionContext; CSharpSelectorExpressionContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; CSharpSelectorExpressionContext.prototype.csharp_selector_expression = function() { return this.getTypedRuleContext(Csharp_selector_expressionContext,0); }; CSharpSelectorExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpSelectorExpression(this); } }; CSharpSelectorExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpSelectorExpression(this); } }; function CSharpPrimaryExpressionContext(parser, ctx) { Csharp_expressionContext.call(this, parser); this.exp = null; // Csharp_primary_expressionContext; Csharp_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpPrimaryExpressionContext.prototype = Object.create(Csharp_expressionContext.prototype); CSharpPrimaryExpressionContext.prototype.constructor = CSharpPrimaryExpressionContext; EParser.CSharpPrimaryExpressionContext = CSharpPrimaryExpressionContext; CSharpPrimaryExpressionContext.prototype.csharp_primary_expression = function() { return this.getTypedRuleContext(Csharp_primary_expressionContext,0); }; CSharpPrimaryExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpPrimaryExpression(this); } }; CSharpPrimaryExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpPrimaryExpression(this); } }; EParser.prototype.csharp_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Csharp_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 422; this.enterRecursionRule(localctx, 422, EParser.RULE_csharp_expression, _p); try { this.enterOuterAlt(localctx, 1); localctx = new CSharpPrimaryExpressionContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2551; localctx.exp = this.csharp_primary_expression(); this._ctx.stop = this._input.LT(-1); this.state = 2557; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,216,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new CSharpSelectorExpressionContext(this, new Csharp_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_csharp_expression); this.state = 2553; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2554; localctx.child = this.csharp_selector_expression(); } this.state = 2559; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,216,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Csharp_primary_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_primary_expression; return this; } Csharp_primary_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_primary_expressionContext.prototype.constructor = Csharp_primary_expressionContext; Csharp_primary_expressionContext.prototype.csharp_this_expression = function() { return this.getTypedRuleContext(Csharp_this_expressionContext,0); }; Csharp_primary_expressionContext.prototype.csharp_new_expression = function() { return this.getTypedRuleContext(Csharp_new_expressionContext,0); }; Csharp_primary_expressionContext.prototype.csharp_parenthesis_expression = function() { return this.getTypedRuleContext(Csharp_parenthesis_expressionContext,0); }; Csharp_primary_expressionContext.prototype.csharp_identifier_expression = function() { return this.getTypedRuleContext(Csharp_identifier_expressionContext,0); }; Csharp_primary_expressionContext.prototype.csharp_literal_expression = function() { return this.getTypedRuleContext(Csharp_literal_expressionContext,0); }; Csharp_primary_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_primary_expression(this); } }; Csharp_primary_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_primary_expression(this); } }; EParser.Csharp_primary_expressionContext = Csharp_primary_expressionContext; EParser.prototype.csharp_primary_expression = function() { var localctx = new Csharp_primary_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 424, EParser.RULE_csharp_primary_expression); try { this.state = 2565; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,217,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 2560; this.csharp_this_expression(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 2561; this.csharp_new_expression(); break; case 3: this.enterOuterAlt(localctx, 3); this.state = 2562; this.csharp_parenthesis_expression(); break; case 4: this.enterOuterAlt(localctx, 4); this.state = 2563; this.csharp_identifier_expression(0); break; case 5: this.enterOuterAlt(localctx, 5); this.state = 2564; this.csharp_literal_expression(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_this_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_this_expression; return this; } Csharp_this_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_this_expressionContext.prototype.constructor = Csharp_this_expressionContext; Csharp_this_expressionContext.prototype.this_expression = function() { return this.getTypedRuleContext(This_expressionContext,0); }; Csharp_this_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_this_expression(this); } }; Csharp_this_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_this_expression(this); } }; EParser.Csharp_this_expressionContext = Csharp_this_expressionContext; EParser.prototype.csharp_this_expression = function() { var localctx = new Csharp_this_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 426, EParser.RULE_csharp_this_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2567; this.this_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_new_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_new_expression; return this; } Csharp_new_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_new_expressionContext.prototype.constructor = Csharp_new_expressionContext; Csharp_new_expressionContext.prototype.new_token = function() { return this.getTypedRuleContext(New_tokenContext,0); }; Csharp_new_expressionContext.prototype.csharp_method_expression = function() { return this.getTypedRuleContext(Csharp_method_expressionContext,0); }; Csharp_new_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_new_expression(this); } }; Csharp_new_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_new_expression(this); } }; EParser.Csharp_new_expressionContext = Csharp_new_expressionContext; EParser.prototype.csharp_new_expression = function() { var localctx = new Csharp_new_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 428, EParser.RULE_csharp_new_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2569; this.new_token(); this.state = 2570; this.csharp_method_expression(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_selector_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_selector_expression; return this; } Csharp_selector_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_selector_expressionContext.prototype.constructor = Csharp_selector_expressionContext; Csharp_selector_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpMethodExpressionContext(parser, ctx) { Csharp_selector_expressionContext.call(this, parser); this.exp = null; // Csharp_method_expressionContext; Csharp_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpMethodExpressionContext.prototype = Object.create(Csharp_selector_expressionContext.prototype); CSharpMethodExpressionContext.prototype.constructor = CSharpMethodExpressionContext; EParser.CSharpMethodExpressionContext = CSharpMethodExpressionContext; CSharpMethodExpressionContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; CSharpMethodExpressionContext.prototype.csharp_method_expression = function() { return this.getTypedRuleContext(Csharp_method_expressionContext,0); }; CSharpMethodExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpMethodExpression(this); } }; CSharpMethodExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpMethodExpression(this); } }; function CSharpItemExpressionContext(parser, ctx) { Csharp_selector_expressionContext.call(this, parser); this.exp = null; // Csharp_item_expressionContext; Csharp_selector_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpItemExpressionContext.prototype = Object.create(Csharp_selector_expressionContext.prototype); CSharpItemExpressionContext.prototype.constructor = CSharpItemExpressionContext; EParser.CSharpItemExpressionContext = CSharpItemExpressionContext; CSharpItemExpressionContext.prototype.csharp_item_expression = function() { return this.getTypedRuleContext(Csharp_item_expressionContext,0); }; CSharpItemExpressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpItemExpression(this); } }; CSharpItemExpressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpItemExpression(this); } }; EParser.Csharp_selector_expressionContext = Csharp_selector_expressionContext; EParser.prototype.csharp_selector_expression = function() { var localctx = new Csharp_selector_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 430, EParser.RULE_csharp_selector_expression); try { this.state = 2575; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DOT: localctx = new CSharpMethodExpressionContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2572; this.match(EParser.DOT); this.state = 2573; localctx.exp = this.csharp_method_expression(); break; case EParser.LBRAK: localctx = new CSharpItemExpressionContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2574; localctx.exp = this.csharp_item_expression(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_method_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_method_expression; this.name = null; // Csharp_identifierContext this.args = null; // Csharp_argumentsContext return this; } Csharp_method_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_method_expressionContext.prototype.constructor = Csharp_method_expressionContext; Csharp_method_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Csharp_method_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Csharp_method_expressionContext.prototype.csharp_identifier = function() { return this.getTypedRuleContext(Csharp_identifierContext,0); }; Csharp_method_expressionContext.prototype.csharp_arguments = function() { return this.getTypedRuleContext(Csharp_argumentsContext,0); }; Csharp_method_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_method_expression(this); } }; Csharp_method_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_method_expression(this); } }; EParser.Csharp_method_expressionContext = Csharp_method_expressionContext; EParser.prototype.csharp_method_expression = function() { var localctx = new Csharp_method_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 432, EParser.RULE_csharp_method_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2577; localctx.name = this.csharp_identifier(); this.state = 2578; this.match(EParser.LPAR); this.state = 2580; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.LPAR || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)) | (1 << (EParser.THIS - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.BOOLEAN_LITERAL - 161)) | (1 << (EParser.CHAR_LITERAL - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)) | (1 << (EParser.DOLLAR_IDENTIFIER - 161)) | (1 << (EParser.TEXT_LITERAL - 161)) | (1 << (EParser.INTEGER_LITERAL - 161)) | (1 << (EParser.DECIMAL_LITERAL - 161)))) !== 0)) { this.state = 2579; localctx.args = this.csharp_arguments(0); } this.state = 2582; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_argumentsContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_arguments; return this; } Csharp_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_argumentsContext.prototype.constructor = Csharp_argumentsContext; Csharp_argumentsContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpArgumentListContext(parser, ctx) { Csharp_argumentsContext.call(this, parser); this.item = null; // Csharp_expressionContext; Csharp_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } CSharpArgumentListContext.prototype = Object.create(Csharp_argumentsContext.prototype); CSharpArgumentListContext.prototype.constructor = CSharpArgumentListContext; EParser.CSharpArgumentListContext = CSharpArgumentListContext; CSharpArgumentListContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; CSharpArgumentListContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpArgumentList(this); } }; CSharpArgumentListContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpArgumentList(this); } }; function CSharpArgumentListItemContext(parser, ctx) { Csharp_argumentsContext.call(this, parser); this.items = null; // Csharp_argumentsContext; this.item = null; // Csharp_expressionContext; Csharp_argumentsContext.prototype.copyFrom.call(this, ctx); return this; } CSharpArgumentListItemContext.prototype = Object.create(Csharp_argumentsContext.prototype); CSharpArgumentListItemContext.prototype.constructor = CSharpArgumentListItemContext; EParser.CSharpArgumentListItemContext = CSharpArgumentListItemContext; CSharpArgumentListItemContext.prototype.COMMA = function() { return this.getToken(EParser.COMMA, 0); }; CSharpArgumentListItemContext.prototype.csharp_arguments = function() { return this.getTypedRuleContext(Csharp_argumentsContext,0); }; CSharpArgumentListItemContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; CSharpArgumentListItemContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpArgumentListItem(this); } }; CSharpArgumentListItemContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpArgumentListItem(this); } }; EParser.prototype.csharp_arguments = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Csharp_argumentsContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 434; this.enterRecursionRule(localctx, 434, EParser.RULE_csharp_arguments, _p); try { this.enterOuterAlt(localctx, 1); localctx = new CSharpArgumentListContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2585; localctx.item = this.csharp_expression(0); this._ctx.stop = this._input.LT(-1); this.state = 2592; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,220,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new CSharpArgumentListItemContext(this, new Csharp_argumentsContext(this, _parentctx, _parentState)); localctx.items = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_csharp_arguments); this.state = 2587; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2588; this.match(EParser.COMMA); this.state = 2589; localctx.item = this.csharp_expression(0); } this.state = 2594; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,220,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Csharp_item_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_item_expression; this.exp = null; // Csharp_expressionContext return this; } Csharp_item_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_item_expressionContext.prototype.constructor = Csharp_item_expressionContext; Csharp_item_expressionContext.prototype.LBRAK = function() { return this.getToken(EParser.LBRAK, 0); }; Csharp_item_expressionContext.prototype.RBRAK = function() { return this.getToken(EParser.RBRAK, 0); }; Csharp_item_expressionContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; Csharp_item_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_item_expression(this); } }; Csharp_item_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_item_expression(this); } }; EParser.Csharp_item_expressionContext = Csharp_item_expressionContext; EParser.prototype.csharp_item_expression = function() { var localctx = new Csharp_item_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 436, EParser.RULE_csharp_item_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2595; this.match(EParser.LBRAK); this.state = 2596; localctx.exp = this.csharp_expression(0); this.state = 2597; this.match(EParser.RBRAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_parenthesis_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_parenthesis_expression; this.exp = null; // Csharp_expressionContext return this; } Csharp_parenthesis_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_parenthesis_expressionContext.prototype.constructor = Csharp_parenthesis_expressionContext; Csharp_parenthesis_expressionContext.prototype.LPAR = function() { return this.getToken(EParser.LPAR, 0); }; Csharp_parenthesis_expressionContext.prototype.RPAR = function() { return this.getToken(EParser.RPAR, 0); }; Csharp_parenthesis_expressionContext.prototype.csharp_expression = function() { return this.getTypedRuleContext(Csharp_expressionContext,0); }; Csharp_parenthesis_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_parenthesis_expression(this); } }; Csharp_parenthesis_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_parenthesis_expression(this); } }; EParser.Csharp_parenthesis_expressionContext = Csharp_parenthesis_expressionContext; EParser.prototype.csharp_parenthesis_expression = function() { var localctx = new Csharp_parenthesis_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 438, EParser.RULE_csharp_parenthesis_expression); try { this.enterOuterAlt(localctx, 1); this.state = 2599; this.match(EParser.LPAR); this.state = 2600; localctx.exp = this.csharp_expression(0); this.state = 2601; this.match(EParser.RPAR); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_identifier_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_identifier_expression; return this; } Csharp_identifier_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_identifier_expressionContext.prototype.constructor = Csharp_identifier_expressionContext; Csharp_identifier_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpIdentifierContext(parser, ctx) { Csharp_identifier_expressionContext.call(this, parser); this.name = null; // Csharp_identifierContext; Csharp_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpIdentifierContext.prototype = Object.create(Csharp_identifier_expressionContext.prototype); CSharpIdentifierContext.prototype.constructor = CSharpIdentifierContext; EParser.CSharpIdentifierContext = CSharpIdentifierContext; CSharpIdentifierContext.prototype.csharp_identifier = function() { return this.getTypedRuleContext(Csharp_identifierContext,0); }; CSharpIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpIdentifier(this); } }; CSharpIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpIdentifier(this); } }; function CSharpChildIdentifierContext(parser, ctx) { Csharp_identifier_expressionContext.call(this, parser); this.parent = null; // Csharp_identifier_expressionContext; this.name = null; // Csharp_identifierContext; Csharp_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpChildIdentifierContext.prototype = Object.create(Csharp_identifier_expressionContext.prototype); CSharpChildIdentifierContext.prototype.constructor = CSharpChildIdentifierContext; EParser.CSharpChildIdentifierContext = CSharpChildIdentifierContext; CSharpChildIdentifierContext.prototype.DOT = function() { return this.getToken(EParser.DOT, 0); }; CSharpChildIdentifierContext.prototype.csharp_identifier_expression = function() { return this.getTypedRuleContext(Csharp_identifier_expressionContext,0); }; CSharpChildIdentifierContext.prototype.csharp_identifier = function() { return this.getTypedRuleContext(Csharp_identifierContext,0); }; CSharpChildIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpChildIdentifier(this); } }; CSharpChildIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpChildIdentifier(this); } }; function CSharpPromptoIdentifierContext(parser, ctx) { Csharp_identifier_expressionContext.call(this, parser); Csharp_identifier_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpPromptoIdentifierContext.prototype = Object.create(Csharp_identifier_expressionContext.prototype); CSharpPromptoIdentifierContext.prototype.constructor = CSharpPromptoIdentifierContext; EParser.CSharpPromptoIdentifierContext = CSharpPromptoIdentifierContext; CSharpPromptoIdentifierContext.prototype.DOLLAR_IDENTIFIER = function() { return this.getToken(EParser.DOLLAR_IDENTIFIER, 0); }; CSharpPromptoIdentifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpPromptoIdentifier(this); } }; CSharpPromptoIdentifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpPromptoIdentifier(this); } }; EParser.prototype.csharp_identifier_expression = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Csharp_identifier_expressionContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 440; this.enterRecursionRule(localctx, 440, EParser.RULE_csharp_identifier_expression, _p); try { this.enterOuterAlt(localctx, 1); this.state = 2606; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.DOLLAR_IDENTIFIER: localctx = new CSharpPromptoIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2604; this.match(EParser.DOLLAR_IDENTIFIER); break; case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.UUID: case EParser.HTML: case EParser.NONE: case EParser.NULL: case EParser.READ: case EParser.SELF: case EParser.TEST: case EParser.WRITE: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: localctx = new CSharpIdentifierContext(this, localctx); this._ctx = localctx; _prevctx = localctx; this.state = 2605; localctx.name = this.csharp_identifier(); break; default: throw new antlr4.error.NoViableAltException(this); } this._ctx.stop = this._input.LT(-1); this.state = 2613; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,222,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new CSharpChildIdentifierContext(this, new Csharp_identifier_expressionContext(this, _parentctx, _parentState)); localctx.parent = _prevctx; this.pushNewRecursionContext(localctx, _startState, EParser.RULE_csharp_identifier_expression); this.state = 2608; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2609; this.match(EParser.DOT); this.state = 2610; localctx.name = this.csharp_identifier(); } this.state = 2615; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,222,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Csharp_literal_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_literal_expression; return this; } Csharp_literal_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_literal_expressionContext.prototype.constructor = Csharp_literal_expressionContext; Csharp_literal_expressionContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CSharpBooleanLiteralContext(parser, ctx) { Csharp_literal_expressionContext.call(this, parser); Csharp_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpBooleanLiteralContext.prototype = Object.create(Csharp_literal_expressionContext.prototype); CSharpBooleanLiteralContext.prototype.constructor = CSharpBooleanLiteralContext; EParser.CSharpBooleanLiteralContext = CSharpBooleanLiteralContext; CSharpBooleanLiteralContext.prototype.BOOLEAN_LITERAL = function() { return this.getToken(EParser.BOOLEAN_LITERAL, 0); }; CSharpBooleanLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpBooleanLiteral(this); } }; CSharpBooleanLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpBooleanLiteral(this); } }; function CSharpIntegerLiteralContext(parser, ctx) { Csharp_literal_expressionContext.call(this, parser); Csharp_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpIntegerLiteralContext.prototype = Object.create(Csharp_literal_expressionContext.prototype); CSharpIntegerLiteralContext.prototype.constructor = CSharpIntegerLiteralContext; EParser.CSharpIntegerLiteralContext = CSharpIntegerLiteralContext; CSharpIntegerLiteralContext.prototype.INTEGER_LITERAL = function() { return this.getToken(EParser.INTEGER_LITERAL, 0); }; CSharpIntegerLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpIntegerLiteral(this); } }; CSharpIntegerLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpIntegerLiteral(this); } }; function CSharpDecimalLiteralContext(parser, ctx) { Csharp_literal_expressionContext.call(this, parser); Csharp_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpDecimalLiteralContext.prototype = Object.create(Csharp_literal_expressionContext.prototype); CSharpDecimalLiteralContext.prototype.constructor = CSharpDecimalLiteralContext; EParser.CSharpDecimalLiteralContext = CSharpDecimalLiteralContext; CSharpDecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { return this.getToken(EParser.DECIMAL_LITERAL, 0); }; CSharpDecimalLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpDecimalLiteral(this); } }; CSharpDecimalLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpDecimalLiteral(this); } }; function CSharpCharacterLiteralContext(parser, ctx) { Csharp_literal_expressionContext.call(this, parser); Csharp_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpCharacterLiteralContext.prototype = Object.create(Csharp_literal_expressionContext.prototype); CSharpCharacterLiteralContext.prototype.constructor = CSharpCharacterLiteralContext; EParser.CSharpCharacterLiteralContext = CSharpCharacterLiteralContext; CSharpCharacterLiteralContext.prototype.CHAR_LITERAL = function() { return this.getToken(EParser.CHAR_LITERAL, 0); }; CSharpCharacterLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpCharacterLiteral(this); } }; CSharpCharacterLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpCharacterLiteral(this); } }; function CSharpTextLiteralContext(parser, ctx) { Csharp_literal_expressionContext.call(this, parser); Csharp_literal_expressionContext.prototype.copyFrom.call(this, ctx); return this; } CSharpTextLiteralContext.prototype = Object.create(Csharp_literal_expressionContext.prototype); CSharpTextLiteralContext.prototype.constructor = CSharpTextLiteralContext; EParser.CSharpTextLiteralContext = CSharpTextLiteralContext; CSharpTextLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; CSharpTextLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCSharpTextLiteral(this); } }; CSharpTextLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCSharpTextLiteral(this); } }; EParser.Csharp_literal_expressionContext = Csharp_literal_expressionContext; EParser.prototype.csharp_literal_expression = function() { var localctx = new Csharp_literal_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 442, EParser.RULE_csharp_literal_expression); try { this.state = 2621; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.INTEGER_LITERAL: localctx = new CSharpIntegerLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2616; this.match(EParser.INTEGER_LITERAL); break; case EParser.DECIMAL_LITERAL: localctx = new CSharpDecimalLiteralContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2617; this.match(EParser.DECIMAL_LITERAL); break; case EParser.TEXT_LITERAL: localctx = new CSharpTextLiteralContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2618; this.match(EParser.TEXT_LITERAL); break; case EParser.BOOLEAN_LITERAL: localctx = new CSharpBooleanLiteralContext(this, localctx); this.enterOuterAlt(localctx, 4); this.state = 2619; this.match(EParser.BOOLEAN_LITERAL); break; case EParser.CHAR_LITERAL: localctx = new CSharpCharacterLiteralContext(this, localctx); this.enterOuterAlt(localctx, 5); this.state = 2620; this.match(EParser.CHAR_LITERAL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Csharp_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_csharp_identifier; return this; } Csharp_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Csharp_identifierContext.prototype.constructor = Csharp_identifierContext; Csharp_identifierContext.prototype.VARIABLE_IDENTIFIER = function() { return this.getToken(EParser.VARIABLE_IDENTIFIER, 0); }; Csharp_identifierContext.prototype.SYMBOL_IDENTIFIER = function() { return this.getToken(EParser.SYMBOL_IDENTIFIER, 0); }; Csharp_identifierContext.prototype.TYPE_IDENTIFIER = function() { return this.getToken(EParser.TYPE_IDENTIFIER, 0); }; Csharp_identifierContext.prototype.BOOLEAN = function() { return this.getToken(EParser.BOOLEAN, 0); }; Csharp_identifierContext.prototype.CHARACTER = function() { return this.getToken(EParser.CHARACTER, 0); }; Csharp_identifierContext.prototype.TEXT = function() { return this.getToken(EParser.TEXT, 0); }; Csharp_identifierContext.prototype.INTEGER = function() { return this.getToken(EParser.INTEGER, 0); }; Csharp_identifierContext.prototype.DECIMAL = function() { return this.getToken(EParser.DECIMAL, 0); }; Csharp_identifierContext.prototype.DATE = function() { return this.getToken(EParser.DATE, 0); }; Csharp_identifierContext.prototype.TIME = function() { return this.getToken(EParser.TIME, 0); }; Csharp_identifierContext.prototype.DATETIME = function() { return this.getToken(EParser.DATETIME, 0); }; Csharp_identifierContext.prototype.PERIOD = function() { return this.getToken(EParser.PERIOD, 0); }; Csharp_identifierContext.prototype.VERSION = function() { return this.getToken(EParser.VERSION, 0); }; Csharp_identifierContext.prototype.UUID = function() { return this.getToken(EParser.UUID, 0); }; Csharp_identifierContext.prototype.HTML = function() { return this.getToken(EParser.HTML, 0); }; Csharp_identifierContext.prototype.READ = function() { return this.getToken(EParser.READ, 0); }; Csharp_identifierContext.prototype.WRITE = function() { return this.getToken(EParser.WRITE, 0); }; Csharp_identifierContext.prototype.TEST = function() { return this.getToken(EParser.TEST, 0); }; Csharp_identifierContext.prototype.SELF = function() { return this.getToken(EParser.SELF, 0); }; Csharp_identifierContext.prototype.NONE = function() { return this.getToken(EParser.NONE, 0); }; Csharp_identifierContext.prototype.NULL = function() { return this.getToken(EParser.NULL, 0); }; Csharp_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCsharp_identifier(this); } }; Csharp_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCsharp_identifier(this); } }; EParser.Csharp_identifierContext = Csharp_identifierContext; EParser.prototype.csharp_identifier = function() { var localctx = new Csharp_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 444, EParser.RULE_csharp_identifier); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2623; _la = this._input.LA(1); if(!(((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.HTML - 51)))) !== 0) || ((((_la - 123)) & ~0x1f) == 0 && ((1 << (_la - 123)) & ((1 << (EParser.NONE - 123)) | (1 << (EParser.NULL - 123)) | (1 << (EParser.READ - 123)) | (1 << (EParser.SELF - 123)) | (1 << (EParser.TEST - 123)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (EParser.WRITE - 161)) | (1 << (EParser.SYMBOL_IDENTIFIER - 161)) | (1 << (EParser.TYPE_IDENTIFIER - 161)) | (1 << (EParser.VARIABLE_IDENTIFIER - 161)))) !== 0))) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_expression; return this; } Jsx_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_expressionContext.prototype.constructor = Jsx_expressionContext; Jsx_expressionContext.prototype.jsx_element = function() { return this.getTypedRuleContext(Jsx_elementContext,0); }; Jsx_expressionContext.prototype.jsx_fragment = function() { return this.getTypedRuleContext(Jsx_fragmentContext,0); }; Jsx_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_expression(this); } }; Jsx_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_expression(this); } }; EParser.Jsx_expressionContext = Jsx_expressionContext; EParser.prototype.jsx_expression = function() { var localctx = new Jsx_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 446, EParser.RULE_jsx_expression); try { this.state = 2627; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,224,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); this.state = 2625; this.jsx_element(); break; case 2: this.enterOuterAlt(localctx, 2); this.state = 2626; this.jsx_fragment(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_elementContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_element; return this; } Jsx_elementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_elementContext.prototype.constructor = Jsx_elementContext; Jsx_elementContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JsxSelfClosingContext(parser, ctx) { Jsx_elementContext.call(this, parser); this.jsx = null; // Jsx_self_closingContext; Jsx_elementContext.prototype.copyFrom.call(this, ctx); return this; } JsxSelfClosingContext.prototype = Object.create(Jsx_elementContext.prototype); JsxSelfClosingContext.prototype.constructor = JsxSelfClosingContext; EParser.JsxSelfClosingContext = JsxSelfClosingContext; JsxSelfClosingContext.prototype.jsx_self_closing = function() { return this.getTypedRuleContext(Jsx_self_closingContext,0); }; JsxSelfClosingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxSelfClosing(this); } }; JsxSelfClosingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxSelfClosing(this); } }; function JsxElementContext(parser, ctx) { Jsx_elementContext.call(this, parser); this.opening = null; // Jsx_openingContext; this.children_ = null; // Jsx_childrenContext; this.closing = null; // Jsx_closingContext; Jsx_elementContext.prototype.copyFrom.call(this, ctx); return this; } JsxElementContext.prototype = Object.create(Jsx_elementContext.prototype); JsxElementContext.prototype.constructor = JsxElementContext; EParser.JsxElementContext = JsxElementContext; JsxElementContext.prototype.jsx_opening = function() { return this.getTypedRuleContext(Jsx_openingContext,0); }; JsxElementContext.prototype.jsx_closing = function() { return this.getTypedRuleContext(Jsx_closingContext,0); }; JsxElementContext.prototype.jsx_children = function() { return this.getTypedRuleContext(Jsx_childrenContext,0); }; JsxElementContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxElement(this); } }; JsxElementContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxElement(this); } }; EParser.Jsx_elementContext = Jsx_elementContext; EParser.prototype.jsx_element = function() { var localctx = new Jsx_elementContext(this, this._ctx, this.state); this.enterRule(localctx, 448, EParser.RULE_jsx_element); try { this.state = 2636; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); switch(la_) { case 1: localctx = new JsxSelfClosingContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2629; localctx.jsx = this.jsx_self_closing(); break; case 2: localctx = new JsxElementContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2630; localctx.opening = this.jsx_opening(); this.state = 2632; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,225,this._ctx); if(la_===1) { this.state = 2631; localctx.children_ = this.jsx_children(); } this.state = 2634; localctx.closing = this.jsx_closing(); break; } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_fragmentContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_fragment; this.children_ = null; // Jsx_childrenContext return this; } Jsx_fragmentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_fragmentContext.prototype.constructor = Jsx_fragmentContext; Jsx_fragmentContext.prototype.jsx_fragment_start = function() { return this.getTypedRuleContext(Jsx_fragment_startContext,0); }; Jsx_fragmentContext.prototype.jsx_fragment_end = function() { return this.getTypedRuleContext(Jsx_fragment_endContext,0); }; Jsx_fragmentContext.prototype.jsx_children = function() { return this.getTypedRuleContext(Jsx_childrenContext,0); }; Jsx_fragmentContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_fragment(this); } }; Jsx_fragmentContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_fragment(this); } }; EParser.Jsx_fragmentContext = Jsx_fragmentContext; EParser.prototype.jsx_fragment = function() { var localctx = new Jsx_fragmentContext(this, this._ctx, this.state); this.enterRule(localctx, 450, EParser.RULE_jsx_fragment); try { this.enterOuterAlt(localctx, 1); this.state = 2638; this.jsx_fragment_start(); this.state = 2640; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,227,this._ctx); if(la_===1) { this.state = 2639; localctx.children_ = this.jsx_children(); } this.state = 2642; this.jsx_fragment_end(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_fragment_startContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_fragment_start; return this; } Jsx_fragment_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_fragment_startContext.prototype.constructor = Jsx_fragment_startContext; Jsx_fragment_startContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Jsx_fragment_startContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Jsx_fragment_startContext.prototype.LTGT = function() { return this.getToken(EParser.LTGT, 0); }; Jsx_fragment_startContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_fragment_start(this); } }; Jsx_fragment_startContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_fragment_start(this); } }; EParser.Jsx_fragment_startContext = Jsx_fragment_startContext; EParser.prototype.jsx_fragment_start = function() { var localctx = new Jsx_fragment_startContext(this, this._ctx, this.state); this.enterRule(localctx, 452, EParser.RULE_jsx_fragment_start); try { this.state = 2647; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.LT: this.enterOuterAlt(localctx, 1); this.state = 2644; this.match(EParser.LT); this.state = 2645; this.match(EParser.GT); break; case EParser.LTGT: this.enterOuterAlt(localctx, 2); this.state = 2646; this.match(EParser.LTGT); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_fragment_endContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_fragment_end; return this; } Jsx_fragment_endContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_fragment_endContext.prototype.constructor = Jsx_fragment_endContext; Jsx_fragment_endContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Jsx_fragment_endContext.prototype.SLASH = function() { return this.getToken(EParser.SLASH, 0); }; Jsx_fragment_endContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Jsx_fragment_endContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_fragment_end(this); } }; Jsx_fragment_endContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_fragment_end(this); } }; EParser.Jsx_fragment_endContext = Jsx_fragment_endContext; EParser.prototype.jsx_fragment_end = function() { var localctx = new Jsx_fragment_endContext(this, this._ctx, this.state); this.enterRule(localctx, 454, EParser.RULE_jsx_fragment_end); try { this.enterOuterAlt(localctx, 1); this.state = 2649; this.match(EParser.LT); this.state = 2650; this.match(EParser.SLASH); this.state = 2651; this.match(EParser.GT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_self_closingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_self_closing; this.name = null; // Jsx_element_nameContext this.attributes = null; // Jsx_attributeContext return this; } Jsx_self_closingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_self_closingContext.prototype.constructor = Jsx_self_closingContext; Jsx_self_closingContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Jsx_self_closingContext.prototype.jsx_ws = function() { return this.getTypedRuleContext(Jsx_wsContext,0); }; Jsx_self_closingContext.prototype.SLASH = function() { return this.getToken(EParser.SLASH, 0); }; Jsx_self_closingContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Jsx_self_closingContext.prototype.jsx_element_name = function() { return this.getTypedRuleContext(Jsx_element_nameContext,0); }; Jsx_self_closingContext.prototype.jsx_attribute = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Jsx_attributeContext); } else { return this.getTypedRuleContext(Jsx_attributeContext,i); } }; Jsx_self_closingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_self_closing(this); } }; Jsx_self_closingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_self_closing(this); } }; EParser.Jsx_self_closingContext = Jsx_self_closingContext; EParser.prototype.jsx_self_closing = function() { var localctx = new Jsx_self_closingContext(this, this._ctx, this.state); this.enterRule(localctx, 456, EParser.RULE_jsx_self_closing); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2653; this.match(EParser.LT); this.state = 2654; localctx.name = this.jsx_element_name(); this.state = 2655; this.jsx_ws(); this.state = 2659; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.JAVA) | (1 << EParser.CSHARP) | (1 << EParser.PYTHON2) | (1 << EParser.PYTHON3) | (1 << EParser.JAVASCRIPT) | (1 << EParser.SWIFT))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.METHOD_T - 51)) | (1 << (EParser.CODE - 51)) | (1 << (EParser.DOCUMENT - 51)) | (1 << (EParser.BLOB - 51)) | (1 << (EParser.IMAGE - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.ITERATOR - 51)) | (1 << (EParser.CURSOR - 51)) | (1 << (EParser.HTML - 51)) | (1 << (EParser.ABSTRACT - 51)) | (1 << (EParser.ALL - 51)) | (1 << (EParser.ALWAYS - 51)) | (1 << (EParser.AND - 51)) | (1 << (EParser.ANY - 51)) | (1 << (EParser.AS - 51)) | (1 << (EParser.ASC - 51)) | (1 << (EParser.ATTR - 51)) | (1 << (EParser.ATTRIBUTE - 51)) | (1 << (EParser.ATTRIBUTES - 51)) | (1 << (EParser.BINDINGS - 51)) | (1 << (EParser.BREAK - 51)) | (1 << (EParser.BY - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (EParser.CASE - 83)) | (1 << (EParser.CATCH - 83)) | (1 << (EParser.CATEGORY - 83)) | (1 << (EParser.CLASS - 83)) | (1 << (EParser.CLOSE - 83)) | (1 << (EParser.CONTAINS - 83)) | (1 << (EParser.DEF - 83)) | (1 << (EParser.DEFAULT - 83)) | (1 << (EParser.DEFINE - 83)) | (1 << (EParser.DELETE - 83)) | (1 << (EParser.DESC - 83)) | (1 << (EParser.DO - 83)) | (1 << (EParser.DOING - 83)) | (1 << (EParser.EACH - 83)) | (1 << (EParser.ELSE - 83)) | (1 << (EParser.ENUM - 83)) | (1 << (EParser.ENUMERATED - 83)) | (1 << (EParser.EXCEPT - 83)) | (1 << (EParser.EXECUTE - 83)) | (1 << (EParser.EXPECTING - 83)) | (1 << (EParser.EXTENDS - 83)) | (1 << (EParser.FETCH - 83)) | (1 << (EParser.FILTERED - 83)) | (1 << (EParser.FINALLY - 83)) | (1 << (EParser.FLUSH - 83)) | (1 << (EParser.FOR - 83)) | (1 << (EParser.FROM - 83)) | (1 << (EParser.GETTER - 83)) | (1 << (EParser.HAS - 83)) | (1 << (EParser.IF - 83)) | (1 << (EParser.IN - 83)) | (1 << (EParser.INDEX - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (EParser.INVOKE - 115)) | (1 << (EParser.IS - 115)) | (1 << (EParser.MATCHING - 115)) | (1 << (EParser.METHOD - 115)) | (1 << (EParser.METHODS - 115)) | (1 << (EParser.MODULO - 115)) | (1 << (EParser.MUTABLE - 115)) | (1 << (EParser.NATIVE - 115)) | (1 << (EParser.NONE - 115)) | (1 << (EParser.NOT - 115)) | (1 << (EParser.NOTHING - 115)) | (1 << (EParser.NULL - 115)) | (1 << (EParser.ON - 115)) | (1 << (EParser.ONE - 115)) | (1 << (EParser.OPEN - 115)) | (1 << (EParser.OPERATOR - 115)) | (1 << (EParser.OR - 115)) | (1 << (EParser.ORDER - 115)) | (1 << (EParser.OTHERWISE - 115)) | (1 << (EParser.PASS - 115)) | (1 << (EParser.RAISE - 115)) | (1 << (EParser.READ - 115)) | (1 << (EParser.RECEIVING - 115)) | (1 << (EParser.RESOURCE - 115)) | (1 << (EParser.RETURN - 115)) | (1 << (EParser.RETURNING - 115)) | (1 << (EParser.ROWS - 115)) | (1 << (EParser.SELF - 115)) | (1 << (EParser.SETTER - 115)) | (1 << (EParser.SINGLETON - 115)) | (1 << (EParser.SORTED - 115)) | (1 << (EParser.STORABLE - 115)))) !== 0) || ((((_la - 147)) & ~0x1f) == 0 && ((1 << (_la - 147)) & ((1 << (EParser.STORE - 147)) | (1 << (EParser.SWITCH - 147)) | (1 << (EParser.TEST - 147)) | (1 << (EParser.THIS - 147)) | (1 << (EParser.THROW - 147)) | (1 << (EParser.TO - 147)) | (1 << (EParser.TRY - 147)) | (1 << (EParser.VERIFYING - 147)) | (1 << (EParser.WIDGET - 147)) | (1 << (EParser.WITH - 147)) | (1 << (EParser.WHEN - 147)) | (1 << (EParser.WHERE - 147)) | (1 << (EParser.WHILE - 147)) | (1 << (EParser.WRITE - 147)) | (1 << (EParser.SYMBOL_IDENTIFIER - 147)) | (1 << (EParser.TYPE_IDENTIFIER - 147)) | (1 << (EParser.VARIABLE_IDENTIFIER - 147)))) !== 0)) { this.state = 2656; localctx.attributes = this.jsx_attribute(); this.state = 2661; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 2662; this.match(EParser.SLASH); this.state = 2663; this.match(EParser.GT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_openingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_opening; this.name = null; // Jsx_element_nameContext this.attributes = null; // Jsx_attributeContext return this; } Jsx_openingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_openingContext.prototype.constructor = Jsx_openingContext; Jsx_openingContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Jsx_openingContext.prototype.jsx_ws = function() { return this.getTypedRuleContext(Jsx_wsContext,0); }; Jsx_openingContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Jsx_openingContext.prototype.jsx_element_name = function() { return this.getTypedRuleContext(Jsx_element_nameContext,0); }; Jsx_openingContext.prototype.jsx_attribute = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Jsx_attributeContext); } else { return this.getTypedRuleContext(Jsx_attributeContext,i); } }; Jsx_openingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_opening(this); } }; Jsx_openingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_opening(this); } }; EParser.Jsx_openingContext = Jsx_openingContext; EParser.prototype.jsx_opening = function() { var localctx = new Jsx_openingContext(this, this._ctx, this.state); this.enterRule(localctx, 458, EParser.RULE_jsx_opening); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2665; this.match(EParser.LT); this.state = 2666; localctx.name = this.jsx_element_name(); this.state = 2667; this.jsx_ws(); this.state = 2671; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.JAVA) | (1 << EParser.CSHARP) | (1 << EParser.PYTHON2) | (1 << EParser.PYTHON3) | (1 << EParser.JAVASCRIPT) | (1 << EParser.SWIFT))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.METHOD_T - 51)) | (1 << (EParser.CODE - 51)) | (1 << (EParser.DOCUMENT - 51)) | (1 << (EParser.BLOB - 51)) | (1 << (EParser.IMAGE - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.ITERATOR - 51)) | (1 << (EParser.CURSOR - 51)) | (1 << (EParser.HTML - 51)) | (1 << (EParser.ABSTRACT - 51)) | (1 << (EParser.ALL - 51)) | (1 << (EParser.ALWAYS - 51)) | (1 << (EParser.AND - 51)) | (1 << (EParser.ANY - 51)) | (1 << (EParser.AS - 51)) | (1 << (EParser.ASC - 51)) | (1 << (EParser.ATTR - 51)) | (1 << (EParser.ATTRIBUTE - 51)) | (1 << (EParser.ATTRIBUTES - 51)) | (1 << (EParser.BINDINGS - 51)) | (1 << (EParser.BREAK - 51)) | (1 << (EParser.BY - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (EParser.CASE - 83)) | (1 << (EParser.CATCH - 83)) | (1 << (EParser.CATEGORY - 83)) | (1 << (EParser.CLASS - 83)) | (1 << (EParser.CLOSE - 83)) | (1 << (EParser.CONTAINS - 83)) | (1 << (EParser.DEF - 83)) | (1 << (EParser.DEFAULT - 83)) | (1 << (EParser.DEFINE - 83)) | (1 << (EParser.DELETE - 83)) | (1 << (EParser.DESC - 83)) | (1 << (EParser.DO - 83)) | (1 << (EParser.DOING - 83)) | (1 << (EParser.EACH - 83)) | (1 << (EParser.ELSE - 83)) | (1 << (EParser.ENUM - 83)) | (1 << (EParser.ENUMERATED - 83)) | (1 << (EParser.EXCEPT - 83)) | (1 << (EParser.EXECUTE - 83)) | (1 << (EParser.EXPECTING - 83)) | (1 << (EParser.EXTENDS - 83)) | (1 << (EParser.FETCH - 83)) | (1 << (EParser.FILTERED - 83)) | (1 << (EParser.FINALLY - 83)) | (1 << (EParser.FLUSH - 83)) | (1 << (EParser.FOR - 83)) | (1 << (EParser.FROM - 83)) | (1 << (EParser.GETTER - 83)) | (1 << (EParser.HAS - 83)) | (1 << (EParser.IF - 83)) | (1 << (EParser.IN - 83)) | (1 << (EParser.INDEX - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (EParser.INVOKE - 115)) | (1 << (EParser.IS - 115)) | (1 << (EParser.MATCHING - 115)) | (1 << (EParser.METHOD - 115)) | (1 << (EParser.METHODS - 115)) | (1 << (EParser.MODULO - 115)) | (1 << (EParser.MUTABLE - 115)) | (1 << (EParser.NATIVE - 115)) | (1 << (EParser.NONE - 115)) | (1 << (EParser.NOT - 115)) | (1 << (EParser.NOTHING - 115)) | (1 << (EParser.NULL - 115)) | (1 << (EParser.ON - 115)) | (1 << (EParser.ONE - 115)) | (1 << (EParser.OPEN - 115)) | (1 << (EParser.OPERATOR - 115)) | (1 << (EParser.OR - 115)) | (1 << (EParser.ORDER - 115)) | (1 << (EParser.OTHERWISE - 115)) | (1 << (EParser.PASS - 115)) | (1 << (EParser.RAISE - 115)) | (1 << (EParser.READ - 115)) | (1 << (EParser.RECEIVING - 115)) | (1 << (EParser.RESOURCE - 115)) | (1 << (EParser.RETURN - 115)) | (1 << (EParser.RETURNING - 115)) | (1 << (EParser.ROWS - 115)) | (1 << (EParser.SELF - 115)) | (1 << (EParser.SETTER - 115)) | (1 << (EParser.SINGLETON - 115)) | (1 << (EParser.SORTED - 115)) | (1 << (EParser.STORABLE - 115)))) !== 0) || ((((_la - 147)) & ~0x1f) == 0 && ((1 << (_la - 147)) & ((1 << (EParser.STORE - 147)) | (1 << (EParser.SWITCH - 147)) | (1 << (EParser.TEST - 147)) | (1 << (EParser.THIS - 147)) | (1 << (EParser.THROW - 147)) | (1 << (EParser.TO - 147)) | (1 << (EParser.TRY - 147)) | (1 << (EParser.VERIFYING - 147)) | (1 << (EParser.WIDGET - 147)) | (1 << (EParser.WITH - 147)) | (1 << (EParser.WHEN - 147)) | (1 << (EParser.WHERE - 147)) | (1 << (EParser.WHILE - 147)) | (1 << (EParser.WRITE - 147)) | (1 << (EParser.SYMBOL_IDENTIFIER - 147)) | (1 << (EParser.TYPE_IDENTIFIER - 147)) | (1 << (EParser.VARIABLE_IDENTIFIER - 147)))) !== 0)) { this.state = 2668; localctx.attributes = this.jsx_attribute(); this.state = 2673; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 2674; this.match(EParser.GT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_closingContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_closing; this.name = null; // Jsx_element_nameContext return this; } Jsx_closingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_closingContext.prototype.constructor = Jsx_closingContext; Jsx_closingContext.prototype.LT = function() { return this.getToken(EParser.LT, 0); }; Jsx_closingContext.prototype.SLASH = function() { return this.getToken(EParser.SLASH, 0); }; Jsx_closingContext.prototype.GT = function() { return this.getToken(EParser.GT, 0); }; Jsx_closingContext.prototype.jsx_element_name = function() { return this.getTypedRuleContext(Jsx_element_nameContext,0); }; Jsx_closingContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_closing(this); } }; Jsx_closingContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_closing(this); } }; EParser.Jsx_closingContext = Jsx_closingContext; EParser.prototype.jsx_closing = function() { var localctx = new Jsx_closingContext(this, this._ctx, this.state); this.enterRule(localctx, 460, EParser.RULE_jsx_closing); try { this.enterOuterAlt(localctx, 1); this.state = 2676; this.match(EParser.LT); this.state = 2677; this.match(EParser.SLASH); this.state = 2678; localctx.name = this.jsx_element_name(); this.state = 2679; this.match(EParser.GT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_element_nameContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_element_name; return this; } Jsx_element_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_element_nameContext.prototype.constructor = Jsx_element_nameContext; Jsx_element_nameContext.prototype.jsx_identifier = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Jsx_identifierContext); } else { return this.getTypedRuleContext(Jsx_identifierContext,i); } }; Jsx_element_nameContext.prototype.DOT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.DOT); } else { return this.getToken(EParser.DOT, i); } }; Jsx_element_nameContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_element_name(this); } }; Jsx_element_nameContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_element_name(this); } }; EParser.Jsx_element_nameContext = Jsx_element_nameContext; EParser.prototype.jsx_element_name = function() { var localctx = new Jsx_element_nameContext(this, this._ctx, this.state); this.enterRule(localctx, 462, EParser.RULE_jsx_element_name); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2681; this.jsx_identifier(); this.state = 2686; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===EParser.DOT) { this.state = 2682; this.match(EParser.DOT); this.state = 2683; this.jsx_identifier(); this.state = 2688; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_identifier; return this; } Jsx_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_identifierContext.prototype.constructor = Jsx_identifierContext; Jsx_identifierContext.prototype.identifier_or_keyword = function() { return this.getTypedRuleContext(Identifier_or_keywordContext,0); }; Jsx_identifierContext.prototype.nospace_hyphen_identifier_or_keyword = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Nospace_hyphen_identifier_or_keywordContext); } else { return this.getTypedRuleContext(Nospace_hyphen_identifier_or_keywordContext,i); } }; Jsx_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_identifier(this); } }; Jsx_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_identifier(this); } }; EParser.Jsx_identifierContext = Jsx_identifierContext; EParser.prototype.jsx_identifier = function() { var localctx = new Jsx_identifierContext(this, this._ctx, this.state); this.enterRule(localctx, 464, EParser.RULE_jsx_identifier); try { this.enterOuterAlt(localctx, 1); this.state = 2689; this.identifier_or_keyword(); this.state = 2693; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,232,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 2690; this.nospace_hyphen_identifier_or_keyword(); } this.state = 2695; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,232,this._ctx); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_attributeContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_attribute; this.name = null; // Jsx_identifierContext this.value = null; // Jsx_attribute_valueContext return this; } Jsx_attributeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_attributeContext.prototype.constructor = Jsx_attributeContext; Jsx_attributeContext.prototype.jsx_ws = function() { return this.getTypedRuleContext(Jsx_wsContext,0); }; Jsx_attributeContext.prototype.jsx_identifier = function() { return this.getTypedRuleContext(Jsx_identifierContext,0); }; Jsx_attributeContext.prototype.EQ = function() { return this.getToken(EParser.EQ, 0); }; Jsx_attributeContext.prototype.jsx_attribute_value = function() { return this.getTypedRuleContext(Jsx_attribute_valueContext,0); }; Jsx_attributeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_attribute(this); } }; Jsx_attributeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_attribute(this); } }; EParser.Jsx_attributeContext = Jsx_attributeContext; EParser.prototype.jsx_attribute = function() { var localctx = new Jsx_attributeContext(this, this._ctx, this.state); this.enterRule(localctx, 466, EParser.RULE_jsx_attribute); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2696; localctx.name = this.jsx_identifier(); this.state = 2699; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===EParser.EQ) { this.state = 2697; this.match(EParser.EQ); this.state = 2698; localctx.value = this.jsx_attribute_value(); } this.state = 2701; this.jsx_ws(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_attribute_valueContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_attribute_value; return this; } Jsx_attribute_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_attribute_valueContext.prototype.constructor = Jsx_attribute_valueContext; Jsx_attribute_valueContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JsxValueContext(parser, ctx) { Jsx_attribute_valueContext.call(this, parser); this.exp = null; // ExpressionContext; Jsx_attribute_valueContext.prototype.copyFrom.call(this, ctx); return this; } JsxValueContext.prototype = Object.create(Jsx_attribute_valueContext.prototype); JsxValueContext.prototype.constructor = JsxValueContext; EParser.JsxValueContext = JsxValueContext; JsxValueContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; JsxValueContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; JsxValueContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; JsxValueContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxValue(this); } }; JsxValueContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxValue(this); } }; function JsxLiteralContext(parser, ctx) { Jsx_attribute_valueContext.call(this, parser); Jsx_attribute_valueContext.prototype.copyFrom.call(this, ctx); return this; } JsxLiteralContext.prototype = Object.create(Jsx_attribute_valueContext.prototype); JsxLiteralContext.prototype.constructor = JsxLiteralContext; EParser.JsxLiteralContext = JsxLiteralContext; JsxLiteralContext.prototype.TEXT_LITERAL = function() { return this.getToken(EParser.TEXT_LITERAL, 0); }; JsxLiteralContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxLiteral(this); } }; JsxLiteralContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxLiteral(this); } }; EParser.Jsx_attribute_valueContext = Jsx_attribute_valueContext; EParser.prototype.jsx_attribute_value = function() { var localctx = new Jsx_attribute_valueContext(this, this._ctx, this.state); this.enterRule(localctx, 468, EParser.RULE_jsx_attribute_value); try { this.state = 2708; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.TEXT_LITERAL: localctx = new JsxLiteralContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2703; this.match(EParser.TEXT_LITERAL); break; case EParser.LCURL: localctx = new JsxValueContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2704; this.match(EParser.LCURL); this.state = 2705; localctx.exp = this.expression(0); this.state = 2706; this.match(EParser.RCURL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_childrenContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_children; return this; } Jsx_childrenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_childrenContext.prototype.constructor = Jsx_childrenContext; Jsx_childrenContext.prototype.jsx_child = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Jsx_childContext); } else { return this.getTypedRuleContext(Jsx_childContext,i); } }; Jsx_childrenContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_children(this); } }; Jsx_childrenContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_children(this); } }; EParser.Jsx_childrenContext = Jsx_childrenContext; EParser.prototype.jsx_children = function() { var localctx = new Jsx_childrenContext(this, this._ctx, this.state); this.enterRule(localctx, 470, EParser.RULE_jsx_children); try { this.enterOuterAlt(localctx, 1); this.state = 2711; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: this.state = 2710; this.jsx_child(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 2713; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,235, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_childContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_child; return this; } Jsx_childContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_childContext.prototype.constructor = Jsx_childContext; Jsx_childContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function JsxTextContext(parser, ctx) { Jsx_childContext.call(this, parser); this.text = null; // Jsx_textContext; Jsx_childContext.prototype.copyFrom.call(this, ctx); return this; } JsxTextContext.prototype = Object.create(Jsx_childContext.prototype); JsxTextContext.prototype.constructor = JsxTextContext; EParser.JsxTextContext = JsxTextContext; JsxTextContext.prototype.jsx_text = function() { return this.getTypedRuleContext(Jsx_textContext,0); }; JsxTextContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxText(this); } }; JsxTextContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxText(this); } }; function JsxChildContext(parser, ctx) { Jsx_childContext.call(this, parser); this.jsx = null; // Jsx_elementContext; Jsx_childContext.prototype.copyFrom.call(this, ctx); return this; } JsxChildContext.prototype = Object.create(Jsx_childContext.prototype); JsxChildContext.prototype.constructor = JsxChildContext; EParser.JsxChildContext = JsxChildContext; JsxChildContext.prototype.jsx_element = function() { return this.getTypedRuleContext(Jsx_elementContext,0); }; JsxChildContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxChild(this); } }; JsxChildContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxChild(this); } }; function JsxCodeContext(parser, ctx) { Jsx_childContext.call(this, parser); this.exp = null; // ExpressionContext; Jsx_childContext.prototype.copyFrom.call(this, ctx); return this; } JsxCodeContext.prototype = Object.create(Jsx_childContext.prototype); JsxCodeContext.prototype.constructor = JsxCodeContext; EParser.JsxCodeContext = JsxCodeContext; JsxCodeContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; JsxCodeContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; JsxCodeContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; JsxCodeContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsxCode(this); } }; JsxCodeContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsxCode(this); } }; EParser.Jsx_childContext = Jsx_childContext; EParser.prototype.jsx_child = function() { var localctx = new Jsx_childContext(this, this._ctx, this.state); this.enterRule(localctx, 472, EParser.RULE_jsx_child); var _la = 0; // Token type try { this.state = 2722; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.INDENT: case EParser.DEDENT: case EParser.LF_TAB: case EParser.LF_MORE: case EParser.LF: case EParser.TAB: case EParser.WS: case EParser.COMMENT: case EParser.JAVA: case EParser.CSHARP: case EParser.PYTHON2: case EParser.PYTHON3: case EParser.JAVASCRIPT: case EParser.SWIFT: case EParser.COLON: case EParser.SEMI: case EParser.COMMA: case EParser.RANGE: case EParser.DOT: case EParser.LPAR: case EParser.RPAR: case EParser.LBRAK: case EParser.RBRAK: case EParser.QMARK: case EParser.XMARK: case EParser.AMP: case EParser.AMP2: case EParser.PIPE: case EParser.PIPE2: case EParser.PLUS: case EParser.MINUS: case EParser.STAR: case EParser.SLASH: case EParser.BSLASH: case EParser.PERCENT: case EParser.GTE: case EParser.LTE: case EParser.LTGT: case EParser.LTCOLONGT: case EParser.EQ: case EParser.XEQ: case EParser.EQ2: case EParser.TEQ: case EParser.TILDE: case EParser.LARROW: case EParser.RARROW: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.METHOD_T: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.ABSTRACT: case EParser.ALL: case EParser.ALWAYS: case EParser.AND: case EParser.ANY: case EParser.AS: case EParser.ASC: case EParser.ATTR: case EParser.ATTRIBUTE: case EParser.ATTRIBUTES: case EParser.BINDINGS: case EParser.BREAK: case EParser.BY: case EParser.CASE: case EParser.CATCH: case EParser.CATEGORY: case EParser.CLASS: case EParser.CLOSE: case EParser.CONTAINS: case EParser.DEF: case EParser.DEFAULT: case EParser.DEFINE: case EParser.DELETE: case EParser.DESC: case EParser.DO: case EParser.DOING: case EParser.EACH: case EParser.ELSE: case EParser.ENUM: case EParser.ENUMERATED: case EParser.EXCEPT: case EParser.EXECUTE: case EParser.EXPECTING: case EParser.EXTENDS: case EParser.FETCH: case EParser.FILTERED: case EParser.FINALLY: case EParser.FLUSH: case EParser.FOR: case EParser.FROM: case EParser.GETTER: case EParser.HAS: case EParser.IF: case EParser.IN: case EParser.INDEX: case EParser.INVOKE: case EParser.IS: case EParser.MATCHING: case EParser.METHOD: case EParser.METHODS: case EParser.MODULO: case EParser.MUTABLE: case EParser.NATIVE: case EParser.NONE: case EParser.NOT: case EParser.NOTHING: case EParser.NULL: case EParser.ON: case EParser.ONE: case EParser.OPEN: case EParser.OPERATOR: case EParser.OR: case EParser.ORDER: case EParser.OTHERWISE: case EParser.PASS: case EParser.RAISE: case EParser.READ: case EParser.RECEIVING: case EParser.RESOURCE: case EParser.RETURN: case EParser.RETURNING: case EParser.ROWS: case EParser.SELF: case EParser.SETTER: case EParser.SINGLETON: case EParser.SORTED: case EParser.STORABLE: case EParser.STORE: case EParser.SWITCH: case EParser.TEST: case EParser.THEN: case EParser.THIS: case EParser.THROW: case EParser.TO: case EParser.TRY: case EParser.VERIFYING: case EParser.WIDGET: case EParser.WITH: case EParser.WHEN: case EParser.WHERE: case EParser.WHILE: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.MIN_INTEGER: case EParser.MAX_INTEGER: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.NATIVE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.ARONDBASE_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.UUID_LITERAL: case EParser.INTEGER_LITERAL: case EParser.HEXA_LITERAL: case EParser.DECIMAL_LITERAL: case EParser.DATETIME_LITERAL: case EParser.TIME_LITERAL: case EParser.DATE_LITERAL: case EParser.PERIOD_LITERAL: case EParser.VERSION_LITERAL: localctx = new JsxTextContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2715; localctx.text = this.jsx_text(); break; case EParser.LT: localctx = new JsxChildContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2716; localctx.jsx = this.jsx_element(); break; case EParser.LCURL: localctx = new JsxCodeContext(this, localctx); this.enterOuterAlt(localctx, 3); this.state = 2717; this.match(EParser.LCURL); this.state = 2719; this._errHandler.sync(this); _la = this._input.LA(1); if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.LPAR) | (1 << EParser.LBRAK) | (1 << EParser.LCURL))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (EParser.MINUS - 33)) | (1 << (EParser.LT - 33)) | (1 << (EParser.LTGT - 33)) | (1 << (EParser.LTCOLONGT - 33)) | (1 << (EParser.METHOD_T - 33)) | (1 << (EParser.CODE - 33)) | (1 << (EParser.DOCUMENT - 33)) | (1 << (EParser.BLOB - 33)))) !== 0) || ((((_la - 101)) & ~0x1f) == 0 && ((1 << (_la - 101)) & ((1 << (EParser.EXECUTE - 101)) | (1 << (EParser.FETCH - 101)) | (1 << (EParser.INVOKE - 101)) | (1 << (EParser.MUTABLE - 101)) | (1 << (EParser.NOT - 101)) | (1 << (EParser.NOTHING - 101)))) !== 0) || ((((_la - 136)) & ~0x1f) == 0 && ((1 << (_la - 136)) & ((1 << (EParser.READ - 136)) | (1 << (EParser.SELF - 136)) | (1 << (EParser.SORTED - 136)) | (1 << (EParser.THIS - 136)) | (1 << (EParser.BOOLEAN_LITERAL - 136)) | (1 << (EParser.CHAR_LITERAL - 136)) | (1 << (EParser.MIN_INTEGER - 136)) | (1 << (EParser.MAX_INTEGER - 136)) | (1 << (EParser.SYMBOL_IDENTIFIER - 136)) | (1 << (EParser.TYPE_IDENTIFIER - 136)))) !== 0) || ((((_la - 168)) & ~0x1f) == 0 && ((1 << (_la - 168)) & ((1 << (EParser.VARIABLE_IDENTIFIER - 168)) | (1 << (EParser.TEXT_LITERAL - 168)) | (1 << (EParser.UUID_LITERAL - 168)) | (1 << (EParser.INTEGER_LITERAL - 168)) | (1 << (EParser.HEXA_LITERAL - 168)) | (1 << (EParser.DECIMAL_LITERAL - 168)) | (1 << (EParser.DATETIME_LITERAL - 168)) | (1 << (EParser.TIME_LITERAL - 168)) | (1 << (EParser.DATE_LITERAL - 168)) | (1 << (EParser.PERIOD_LITERAL - 168)) | (1 << (EParser.VERSION_LITERAL - 168)))) !== 0)) { this.state = 2718; localctx.exp = this.expression(0); } this.state = 2721; this.match(EParser.RCURL); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Jsx_textContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_jsx_text; return this; } Jsx_textContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Jsx_textContext.prototype.constructor = Jsx_textContext; Jsx_textContext.prototype.LCURL = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LCURL); } else { return this.getToken(EParser.LCURL, i); } }; Jsx_textContext.prototype.RCURL = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.RCURL); } else { return this.getToken(EParser.RCURL, i); } }; Jsx_textContext.prototype.LT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LT); } else { return this.getToken(EParser.LT, i); } }; Jsx_textContext.prototype.GT = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.GT); } else { return this.getToken(EParser.GT, i); } }; Jsx_textContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterJsx_text(this); } }; Jsx_textContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitJsx_text(this); } }; EParser.Jsx_textContext = Jsx_textContext; EParser.prototype.jsx_text = function() { var localctx = new Jsx_textContext(this, this._ctx, this.state); this.enterRule(localctx, 474, EParser.RULE_jsx_text); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2725; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: this.state = 2724; _la = this._input.LA(1); if(_la<=0 || ((((_la - 24)) & ~0x1f) == 0 && ((1 << (_la - 24)) & ((1 << (EParser.LCURL - 24)) | (1 << (EParser.RCURL - 24)) | (1 << (EParser.GT - 24)) | (1 << (EParser.LT - 24)))) !== 0)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 2727; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,238, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Css_expressionContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_css_expression; this.field = null; // Css_fieldContext return this; } Css_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Css_expressionContext.prototype.constructor = Css_expressionContext; Css_expressionContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; Css_expressionContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; Css_expressionContext.prototype.css_field = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Css_fieldContext); } else { return this.getTypedRuleContext(Css_fieldContext,i); } }; Css_expressionContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCss_expression(this); } }; Css_expressionContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCss_expression(this); } }; EParser.Css_expressionContext = Css_expressionContext; EParser.prototype.css_expression = function() { var localctx = new Css_expressionContext(this, this._ctx, this.state); this.enterRule(localctx, 476, EParser.RULE_css_expression); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2729; this.match(EParser.LCURL); this.state = 2731; this._errHandler.sync(this); _la = this._input.LA(1); do { this.state = 2730; localctx.field = this.css_field(); this.state = 2733; this._errHandler.sync(this); _la = this._input.LA(1); } while(((((_la - 9)) & ~0x1f) == 0 && ((1 << (_la - 9)) & ((1 << (EParser.JAVA - 9)) | (1 << (EParser.CSHARP - 9)) | (1 << (EParser.PYTHON2 - 9)) | (1 << (EParser.PYTHON3 - 9)) | (1 << (EParser.JAVASCRIPT - 9)) | (1 << (EParser.SWIFT - 9)) | (1 << (EParser.MINUS - 9)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (EParser.BOOLEAN - 51)) | (1 << (EParser.CHARACTER - 51)) | (1 << (EParser.TEXT - 51)) | (1 << (EParser.INTEGER - 51)) | (1 << (EParser.DECIMAL - 51)) | (1 << (EParser.DATE - 51)) | (1 << (EParser.TIME - 51)) | (1 << (EParser.DATETIME - 51)) | (1 << (EParser.PERIOD - 51)) | (1 << (EParser.VERSION - 51)) | (1 << (EParser.METHOD_T - 51)) | (1 << (EParser.CODE - 51)) | (1 << (EParser.DOCUMENT - 51)) | (1 << (EParser.BLOB - 51)) | (1 << (EParser.IMAGE - 51)) | (1 << (EParser.UUID - 51)) | (1 << (EParser.ITERATOR - 51)) | (1 << (EParser.CURSOR - 51)) | (1 << (EParser.HTML - 51)) | (1 << (EParser.ABSTRACT - 51)) | (1 << (EParser.ALL - 51)) | (1 << (EParser.ALWAYS - 51)) | (1 << (EParser.AND - 51)) | (1 << (EParser.ANY - 51)) | (1 << (EParser.AS - 51)) | (1 << (EParser.ASC - 51)) | (1 << (EParser.ATTR - 51)) | (1 << (EParser.ATTRIBUTE - 51)) | (1 << (EParser.ATTRIBUTES - 51)) | (1 << (EParser.BINDINGS - 51)) | (1 << (EParser.BREAK - 51)) | (1 << (EParser.BY - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (EParser.CASE - 83)) | (1 << (EParser.CATCH - 83)) | (1 << (EParser.CATEGORY - 83)) | (1 << (EParser.CLASS - 83)) | (1 << (EParser.CLOSE - 83)) | (1 << (EParser.CONTAINS - 83)) | (1 << (EParser.DEF - 83)) | (1 << (EParser.DEFAULT - 83)) | (1 << (EParser.DEFINE - 83)) | (1 << (EParser.DELETE - 83)) | (1 << (EParser.DESC - 83)) | (1 << (EParser.DO - 83)) | (1 << (EParser.DOING - 83)) | (1 << (EParser.EACH - 83)) | (1 << (EParser.ELSE - 83)) | (1 << (EParser.ENUM - 83)) | (1 << (EParser.ENUMERATED - 83)) | (1 << (EParser.EXCEPT - 83)) | (1 << (EParser.EXECUTE - 83)) | (1 << (EParser.EXPECTING - 83)) | (1 << (EParser.EXTENDS - 83)) | (1 << (EParser.FETCH - 83)) | (1 << (EParser.FILTERED - 83)) | (1 << (EParser.FINALLY - 83)) | (1 << (EParser.FLUSH - 83)) | (1 << (EParser.FOR - 83)) | (1 << (EParser.FROM - 83)) | (1 << (EParser.GETTER - 83)) | (1 << (EParser.HAS - 83)) | (1 << (EParser.IF - 83)) | (1 << (EParser.IN - 83)) | (1 << (EParser.INDEX - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (EParser.INVOKE - 115)) | (1 << (EParser.IS - 115)) | (1 << (EParser.MATCHING - 115)) | (1 << (EParser.METHOD - 115)) | (1 << (EParser.METHODS - 115)) | (1 << (EParser.MODULO - 115)) | (1 << (EParser.MUTABLE - 115)) | (1 << (EParser.NATIVE - 115)) | (1 << (EParser.NONE - 115)) | (1 << (EParser.NOT - 115)) | (1 << (EParser.NOTHING - 115)) | (1 << (EParser.NULL - 115)) | (1 << (EParser.ON - 115)) | (1 << (EParser.ONE - 115)) | (1 << (EParser.OPEN - 115)) | (1 << (EParser.OPERATOR - 115)) | (1 << (EParser.OR - 115)) | (1 << (EParser.ORDER - 115)) | (1 << (EParser.OTHERWISE - 115)) | (1 << (EParser.PASS - 115)) | (1 << (EParser.RAISE - 115)) | (1 << (EParser.READ - 115)) | (1 << (EParser.RECEIVING - 115)) | (1 << (EParser.RESOURCE - 115)) | (1 << (EParser.RETURN - 115)) | (1 << (EParser.RETURNING - 115)) | (1 << (EParser.ROWS - 115)) | (1 << (EParser.SELF - 115)) | (1 << (EParser.SETTER - 115)) | (1 << (EParser.SINGLETON - 115)) | (1 << (EParser.SORTED - 115)) | (1 << (EParser.STORABLE - 115)))) !== 0) || ((((_la - 147)) & ~0x1f) == 0 && ((1 << (_la - 147)) & ((1 << (EParser.STORE - 147)) | (1 << (EParser.SWITCH - 147)) | (1 << (EParser.TEST - 147)) | (1 << (EParser.THIS - 147)) | (1 << (EParser.THROW - 147)) | (1 << (EParser.TO - 147)) | (1 << (EParser.TRY - 147)) | (1 << (EParser.VERIFYING - 147)) | (1 << (EParser.WIDGET - 147)) | (1 << (EParser.WITH - 147)) | (1 << (EParser.WHEN - 147)) | (1 << (EParser.WHERE - 147)) | (1 << (EParser.WHILE - 147)) | (1 << (EParser.WRITE - 147)) | (1 << (EParser.SYMBOL_IDENTIFIER - 147)) | (1 << (EParser.TYPE_IDENTIFIER - 147)) | (1 << (EParser.VARIABLE_IDENTIFIER - 147)))) !== 0)); this.state = 2735; this.match(EParser.RCURL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Css_fieldContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_css_field; this.name = null; // Css_identifierContext this.value = null; // Css_valueContext return this; } Css_fieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Css_fieldContext.prototype.constructor = Css_fieldContext; Css_fieldContext.prototype.COLON = function() { return this.getToken(EParser.COLON, 0); }; Css_fieldContext.prototype.SEMI = function() { return this.getToken(EParser.SEMI, 0); }; Css_fieldContext.prototype.css_identifier = function() { return this.getTypedRuleContext(Css_identifierContext,0); }; Css_fieldContext.prototype.css_value = function() { return this.getTypedRuleContext(Css_valueContext,0); }; Css_fieldContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCss_field(this); } }; Css_fieldContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCss_field(this); } }; EParser.Css_fieldContext = Css_fieldContext; EParser.prototype.css_field = function() { var localctx = new Css_fieldContext(this, this._ctx, this.state); this.enterRule(localctx, 478, EParser.RULE_css_field); try { this.enterOuterAlt(localctx, 1); this.state = 2737; localctx.name = this.css_identifier(0); this.state = 2738; this.match(EParser.COLON); this.state = 2739; localctx.value = this.css_value(); this.state = 2740; this.match(EParser.SEMI); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Css_identifierContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_css_identifier; return this; } Css_identifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Css_identifierContext.prototype.constructor = Css_identifierContext; Css_identifierContext.prototype.identifier_or_keyword = function() { return this.getTypedRuleContext(Identifier_or_keywordContext,0); }; Css_identifierContext.prototype.MINUS = function() { return this.getToken(EParser.MINUS, 0); }; Css_identifierContext.prototype.nospace_identifier_or_keyword = function() { return this.getTypedRuleContext(Nospace_identifier_or_keywordContext,0); }; Css_identifierContext.prototype.css_identifier = function() { return this.getTypedRuleContext(Css_identifierContext,0); }; Css_identifierContext.prototype.nospace_hyphen_identifier_or_keyword = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(Nospace_hyphen_identifier_or_keywordContext); } else { return this.getTypedRuleContext(Nospace_hyphen_identifier_or_keywordContext,i); } }; Css_identifierContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCss_identifier(this); } }; Css_identifierContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCss_identifier(this); } }; EParser.prototype.css_identifier = function(_p) { if(_p===undefined) { _p = 0; } var _parentctx = this._ctx; var _parentState = this.state; var localctx = new Css_identifierContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 480; this.enterRecursionRule(localctx, 480, EParser.RULE_css_identifier, _p); try { this.enterOuterAlt(localctx, 1); this.state = 2746; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.JAVA: case EParser.CSHARP: case EParser.PYTHON2: case EParser.PYTHON3: case EParser.JAVASCRIPT: case EParser.SWIFT: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.METHOD_T: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.ABSTRACT: case EParser.ALL: case EParser.ALWAYS: case EParser.AND: case EParser.ANY: case EParser.AS: case EParser.ASC: case EParser.ATTR: case EParser.ATTRIBUTE: case EParser.ATTRIBUTES: case EParser.BINDINGS: case EParser.BREAK: case EParser.BY: case EParser.CASE: case EParser.CATCH: case EParser.CATEGORY: case EParser.CLASS: case EParser.CLOSE: case EParser.CONTAINS: case EParser.DEF: case EParser.DEFAULT: case EParser.DEFINE: case EParser.DELETE: case EParser.DESC: case EParser.DO: case EParser.DOING: case EParser.EACH: case EParser.ELSE: case EParser.ENUM: case EParser.ENUMERATED: case EParser.EXCEPT: case EParser.EXECUTE: case EParser.EXPECTING: case EParser.EXTENDS: case EParser.FETCH: case EParser.FILTERED: case EParser.FINALLY: case EParser.FLUSH: case EParser.FOR: case EParser.FROM: case EParser.GETTER: case EParser.HAS: case EParser.IF: case EParser.IN: case EParser.INDEX: case EParser.INVOKE: case EParser.IS: case EParser.MATCHING: case EParser.METHOD: case EParser.METHODS: case EParser.MODULO: case EParser.MUTABLE: case EParser.NATIVE: case EParser.NONE: case EParser.NOT: case EParser.NOTHING: case EParser.NULL: case EParser.ON: case EParser.ONE: case EParser.OPEN: case EParser.OPERATOR: case EParser.OR: case EParser.ORDER: case EParser.OTHERWISE: case EParser.PASS: case EParser.RAISE: case EParser.READ: case EParser.RECEIVING: case EParser.RESOURCE: case EParser.RETURN: case EParser.RETURNING: case EParser.ROWS: case EParser.SELF: case EParser.SETTER: case EParser.SINGLETON: case EParser.SORTED: case EParser.STORABLE: case EParser.STORE: case EParser.SWITCH: case EParser.TEST: case EParser.THIS: case EParser.THROW: case EParser.TO: case EParser.TRY: case EParser.VERIFYING: case EParser.WIDGET: case EParser.WITH: case EParser.WHEN: case EParser.WHERE: case EParser.WHILE: case EParser.WRITE: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: this.state = 2743; this.identifier_or_keyword(); break; case EParser.MINUS: this.state = 2744; this.match(EParser.MINUS); this.state = 2745; this.nospace_identifier_or_keyword(); break; default: throw new antlr4.error.NoViableAltException(this); } this._ctx.stop = this._input.LT(-1); this.state = 2756; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,242,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { if(this._parseListeners!==null) { this.triggerExitRuleEvent(); } _prevctx = localctx; localctx = new Css_identifierContext(this, _parentctx, _parentState); this.pushNewRecursionContext(localctx, _startState, EParser.RULE_css_identifier); this.state = 2748; if (!( this.precpred(this._ctx, 1))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } this.state = 2750; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: this.state = 2749; this.nospace_hyphen_identifier_or_keyword(); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 2752; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,241, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); } this.state = 2758; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,242,this._ctx); } } catch( error) { if(error instanceof antlr4.error.RecognitionException) { localctx.exception = error; this._errHandler.reportError(this, error); this._errHandler.recover(this, error); } else { throw error; } } finally { this.unrollRecursionContexts(_parentctx) } return localctx; }; function Css_valueContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_css_value; return this; } Css_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Css_valueContext.prototype.constructor = Css_valueContext; Css_valueContext.prototype.copyFrom = function(ctx) { antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); }; function CssTextContext(parser, ctx) { Css_valueContext.call(this, parser); this.text = null; // Css_textContext; Css_valueContext.prototype.copyFrom.call(this, ctx); return this; } CssTextContext.prototype = Object.create(Css_valueContext.prototype); CssTextContext.prototype.constructor = CssTextContext; EParser.CssTextContext = CssTextContext; CssTextContext.prototype.css_text = function() { return this.getTypedRuleContext(Css_textContext,0); }; CssTextContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCssText(this); } }; CssTextContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCssText(this); } }; function CssValueContext(parser, ctx) { Css_valueContext.call(this, parser); this.exp = null; // ExpressionContext; Css_valueContext.prototype.copyFrom.call(this, ctx); return this; } CssValueContext.prototype = Object.create(Css_valueContext.prototype); CssValueContext.prototype.constructor = CssValueContext; EParser.CssValueContext = CssValueContext; CssValueContext.prototype.LCURL = function() { return this.getToken(EParser.LCURL, 0); }; CssValueContext.prototype.RCURL = function() { return this.getToken(EParser.RCURL, 0); }; CssValueContext.prototype.expression = function() { return this.getTypedRuleContext(ExpressionContext,0); }; CssValueContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCssValue(this); } }; CssValueContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCssValue(this); } }; EParser.Css_valueContext = Css_valueContext; EParser.prototype.css_value = function() { var localctx = new Css_valueContext(this, this._ctx, this.state); this.enterRule(localctx, 482, EParser.RULE_css_value); try { this.state = 2764; this._errHandler.sync(this); switch(this._input.LA(1)) { case EParser.LCURL: localctx = new CssValueContext(this, localctx); this.enterOuterAlt(localctx, 1); this.state = 2759; this.match(EParser.LCURL); this.state = 2760; localctx.exp = this.expression(0); this.state = 2761; this.match(EParser.RCURL); break; case EParser.INDENT: case EParser.DEDENT: case EParser.LF_TAB: case EParser.LF_MORE: case EParser.LF: case EParser.TAB: case EParser.COMMENT: case EParser.JAVA: case EParser.CSHARP: case EParser.PYTHON2: case EParser.PYTHON3: case EParser.JAVASCRIPT: case EParser.SWIFT: case EParser.COMMA: case EParser.RANGE: case EParser.DOT: case EParser.LPAR: case EParser.RPAR: case EParser.LBRAK: case EParser.RBRAK: case EParser.QMARK: case EParser.XMARK: case EParser.AMP: case EParser.AMP2: case EParser.PIPE: case EParser.PIPE2: case EParser.PLUS: case EParser.MINUS: case EParser.STAR: case EParser.SLASH: case EParser.BSLASH: case EParser.PERCENT: case EParser.GT: case EParser.GTE: case EParser.LT: case EParser.LTE: case EParser.LTGT: case EParser.LTCOLONGT: case EParser.EQ: case EParser.XEQ: case EParser.EQ2: case EParser.TEQ: case EParser.TILDE: case EParser.LARROW: case EParser.RARROW: case EParser.BOOLEAN: case EParser.CHARACTER: case EParser.TEXT: case EParser.INTEGER: case EParser.DECIMAL: case EParser.DATE: case EParser.TIME: case EParser.DATETIME: case EParser.PERIOD: case EParser.VERSION: case EParser.METHOD_T: case EParser.CODE: case EParser.DOCUMENT: case EParser.BLOB: case EParser.IMAGE: case EParser.UUID: case EParser.ITERATOR: case EParser.CURSOR: case EParser.HTML: case EParser.ABSTRACT: case EParser.ALL: case EParser.ALWAYS: case EParser.AND: case EParser.ANY: case EParser.AS: case EParser.ASC: case EParser.ATTR: case EParser.ATTRIBUTE: case EParser.ATTRIBUTES: case EParser.BINDINGS: case EParser.BREAK: case EParser.BY: case EParser.CASE: case EParser.CATCH: case EParser.CATEGORY: case EParser.CLASS: case EParser.CLOSE: case EParser.CONTAINS: case EParser.DEF: case EParser.DEFAULT: case EParser.DEFINE: case EParser.DELETE: case EParser.DESC: case EParser.DO: case EParser.DOING: case EParser.EACH: case EParser.ELSE: case EParser.ENUM: case EParser.ENUMERATED: case EParser.EXCEPT: case EParser.EXECUTE: case EParser.EXPECTING: case EParser.EXTENDS: case EParser.FETCH: case EParser.FILTERED: case EParser.FINALLY: case EParser.FLUSH: case EParser.FOR: case EParser.FROM: case EParser.GETTER: case EParser.HAS: case EParser.IF: case EParser.IN: case EParser.INDEX: case EParser.INVOKE: case EParser.IS: case EParser.MATCHING: case EParser.METHOD: case EParser.METHODS: case EParser.MODULO: case EParser.MUTABLE: case EParser.NATIVE: case EParser.NONE: case EParser.NOT: case EParser.NOTHING: case EParser.NULL: case EParser.ON: case EParser.ONE: case EParser.OPEN: case EParser.OPERATOR: case EParser.OR: case EParser.ORDER: case EParser.OTHERWISE: case EParser.PASS: case EParser.RAISE: case EParser.READ: case EParser.RECEIVING: case EParser.RESOURCE: case EParser.RETURN: case EParser.RETURNING: case EParser.ROWS: case EParser.SELF: case EParser.SETTER: case EParser.SINGLETON: case EParser.SORTED: case EParser.STORABLE: case EParser.STORE: case EParser.SWITCH: case EParser.TEST: case EParser.THEN: case EParser.THIS: case EParser.THROW: case EParser.TO: case EParser.TRY: case EParser.VERIFYING: case EParser.WIDGET: case EParser.WITH: case EParser.WHEN: case EParser.WHERE: case EParser.WHILE: case EParser.WRITE: case EParser.BOOLEAN_LITERAL: case EParser.CHAR_LITERAL: case EParser.MIN_INTEGER: case EParser.MAX_INTEGER: case EParser.SYMBOL_IDENTIFIER: case EParser.TYPE_IDENTIFIER: case EParser.VARIABLE_IDENTIFIER: case EParser.NATIVE_IDENTIFIER: case EParser.DOLLAR_IDENTIFIER: case EParser.ARONDBASE_IDENTIFIER: case EParser.TEXT_LITERAL: case EParser.UUID_LITERAL: case EParser.INTEGER_LITERAL: case EParser.HEXA_LITERAL: case EParser.DECIMAL_LITERAL: case EParser.DATETIME_LITERAL: case EParser.TIME_LITERAL: case EParser.DATE_LITERAL: case EParser.PERIOD_LITERAL: case EParser.VERSION_LITERAL: localctx = new CssTextContext(this, localctx); this.enterOuterAlt(localctx, 2); this.state = 2763; localctx.text = this.css_text(); break; default: throw new antlr4.error.NoViableAltException(this); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function Css_textContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = EParser.RULE_css_text; return this; } Css_textContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Css_textContext.prototype.constructor = Css_textContext; Css_textContext.prototype.LCURL = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.LCURL); } else { return this.getToken(EParser.LCURL, i); } }; Css_textContext.prototype.RCURL = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.RCURL); } else { return this.getToken(EParser.RCURL, i); } }; Css_textContext.prototype.COLON = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.COLON); } else { return this.getToken(EParser.COLON, i); } }; Css_textContext.prototype.SEMI = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.SEMI); } else { return this.getToken(EParser.SEMI, i); } }; Css_textContext.prototype.WS = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTokens(EParser.WS); } else { return this.getToken(EParser.WS, i); } }; Css_textContext.prototype.enterRule = function(listener) { if(listener instanceof EParserListener ) { listener.enterCss_text(this); } }; Css_textContext.prototype.exitRule = function(listener) { if(listener instanceof EParserListener ) { listener.exitCss_text(this); } }; EParser.Css_textContext = Css_textContext; EParser.prototype.css_text = function() { var localctx = new Css_textContext(this, this._ctx, this.state); this.enterRule(localctx, 484, EParser.RULE_css_text); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 2767; this._errHandler.sync(this); _la = this._input.LA(1); do { this.state = 2766; _la = this._input.LA(1); if(_la<=0 || (((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.WS) | (1 << EParser.COLON) | (1 << EParser.SEMI) | (1 << EParser.LCURL) | (1 << EParser.RCURL))) !== 0)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } this.state = 2769; this._errHandler.sync(this); _la = this._input.LA(1); } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << EParser.INDENT) | (1 << EParser.DEDENT) | (1 << EParser.LF_TAB) | (1 << EParser.LF_MORE) | (1 << EParser.LF) | (1 << EParser.TAB) | (1 << EParser.COMMENT) | (1 << EParser.JAVA) | (1 << EParser.CSHARP) | (1 << EParser.PYTHON2) | (1 << EParser.PYTHON3) | (1 << EParser.JAVASCRIPT) | (1 << EParser.SWIFT) | (1 << EParser.COMMA) | (1 << EParser.RANGE) | (1 << EParser.DOT) | (1 << EParser.LPAR) | (1 << EParser.RPAR) | (1 << EParser.LBRAK) | (1 << EParser.RBRAK) | (1 << EParser.QMARK) | (1 << EParser.XMARK) | (1 << EParser.AMP) | (1 << EParser.AMP2) | (1 << EParser.PIPE) | (1 << EParser.PIPE2))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (EParser.PLUS - 32)) | (1 << (EParser.MINUS - 32)) | (1 << (EParser.STAR - 32)) | (1 << (EParser.SLASH - 32)) | (1 << (EParser.BSLASH - 32)) | (1 << (EParser.PERCENT - 32)) | (1 << (EParser.GT - 32)) | (1 << (EParser.GTE - 32)) | (1 << (EParser.LT - 32)) | (1 << (EParser.LTE - 32)) | (1 << (EParser.LTGT - 32)) | (1 << (EParser.LTCOLONGT - 32)) | (1 << (EParser.EQ - 32)) | (1 << (EParser.XEQ - 32)) | (1 << (EParser.EQ2 - 32)) | (1 << (EParser.TEQ - 32)) | (1 << (EParser.TILDE - 32)) | (1 << (EParser.LARROW - 32)) | (1 << (EParser.RARROW - 32)) | (1 << (EParser.BOOLEAN - 32)) | (1 << (EParser.CHARACTER - 32)) | (1 << (EParser.TEXT - 32)) | (1 << (EParser.INTEGER - 32)) | (1 << (EParser.DECIMAL - 32)) | (1 << (EParser.DATE - 32)) | (1 << (EParser.TIME - 32)) | (1 << (EParser.DATETIME - 32)) | (1 << (EParser.PERIOD - 32)) | (1 << (EParser.VERSION - 32)) | (1 << (EParser.METHOD_T - 32)) | (1 << (EParser.CODE - 32)) | (1 << (EParser.DOCUMENT - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (EParser.BLOB - 64)) | (1 << (EParser.IMAGE - 64)) | (1 << (EParser.UUID - 64)) | (1 << (EParser.ITERATOR - 64)) | (1 << (EParser.CURSOR - 64)) | (1 << (EParser.HTML - 64)) | (1 << (EParser.ABSTRACT - 64)) | (1 << (EParser.ALL - 64)) | (1 << (EParser.ALWAYS - 64)) | (1 << (EParser.AND - 64)) | (1 << (EParser.ANY - 64)) | (1 << (EParser.AS - 64)) | (1 << (EParser.ASC - 64)) | (1 << (EParser.ATTR - 64)) | (1 << (EParser.ATTRIBUTE - 64)) | (1 << (EParser.ATTRIBUTES - 64)) | (1 << (EParser.BINDINGS - 64)) | (1 << (EParser.BREAK - 64)) | (1 << (EParser.BY - 64)) | (1 << (EParser.CASE - 64)) | (1 << (EParser.CATCH - 64)) | (1 << (EParser.CATEGORY - 64)) | (1 << (EParser.CLASS - 64)) | (1 << (EParser.CLOSE - 64)) | (1 << (EParser.CONTAINS - 64)) | (1 << (EParser.DEF - 64)) | (1 << (EParser.DEFAULT - 64)) | (1 << (EParser.DEFINE - 64)) | (1 << (EParser.DELETE - 64)) | (1 << (EParser.DESC - 64)) | (1 << (EParser.DO - 64)) | (1 << (EParser.DOING - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (EParser.EACH - 96)) | (1 << (EParser.ELSE - 96)) | (1 << (EParser.ENUM - 96)) | (1 << (EParser.ENUMERATED - 96)) | (1 << (EParser.EXCEPT - 96)) | (1 << (EParser.EXECUTE - 96)) | (1 << (EParser.EXPECTING - 96)) | (1 << (EParser.EXTENDS - 96)) | (1 << (EParser.FETCH - 96)) | (1 << (EParser.FILTERED - 96)) | (1 << (EParser.FINALLY - 96)) | (1 << (EParser.FLUSH - 96)) | (1 << (EParser.FOR - 96)) | (1 << (EParser.FROM - 96)) | (1 << (EParser.GETTER - 96)) | (1 << (EParser.HAS - 96)) | (1 << (EParser.IF - 96)) | (1 << (EParser.IN - 96)) | (1 << (EParser.INDEX - 96)) | (1 << (EParser.INVOKE - 96)) | (1 << (EParser.IS - 96)) | (1 << (EParser.MATCHING - 96)) | (1 << (EParser.METHOD - 96)) | (1 << (EParser.METHODS - 96)) | (1 << (EParser.MODULO - 96)) | (1 << (EParser.MUTABLE - 96)) | (1 << (EParser.NATIVE - 96)) | (1 << (EParser.NONE - 96)) | (1 << (EParser.NOT - 96)) | (1 << (EParser.NOTHING - 96)) | (1 << (EParser.NULL - 96)) | (1 << (EParser.ON - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (EParser.ONE - 128)) | (1 << (EParser.OPEN - 128)) | (1 << (EParser.OPERATOR - 128)) | (1 << (EParser.OR - 128)) | (1 << (EParser.ORDER - 128)) | (1 << (EParser.OTHERWISE - 128)) | (1 << (EParser.PASS - 128)) | (1 << (EParser.RAISE - 128)) | (1 << (EParser.READ - 128)) | (1 << (EParser.RECEIVING - 128)) | (1 << (EParser.RESOURCE - 128)) | (1 << (EParser.RETURN - 128)) | (1 << (EParser.RETURNING - 128)) | (1 << (EParser.ROWS - 128)) | (1 << (EParser.SELF - 128)) | (1 << (EParser.SETTER - 128)) | (1 << (EParser.SINGLETON - 128)) | (1 << (EParser.SORTED - 128)) | (1 << (EParser.STORABLE - 128)) | (1 << (EParser.STORE - 128)) | (1 << (EParser.SWITCH - 128)) | (1 << (EParser.TEST - 128)) | (1 << (EParser.THEN - 128)) | (1 << (EParser.THIS - 128)) | (1 << (EParser.THROW - 128)) | (1 << (EParser.TO - 128)) | (1 << (EParser.TRY - 128)) | (1 << (EParser.VERIFYING - 128)) | (1 << (EParser.WIDGET - 128)) | (1 << (EParser.WITH - 128)) | (1 << (EParser.WHEN - 128)) | (1 << (EParser.WHERE - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (EParser.WHILE - 160)) | (1 << (EParser.WRITE - 160)) | (1 << (EParser.BOOLEAN_LITERAL - 160)) | (1 << (EParser.CHAR_LITERAL - 160)) | (1 << (EParser.MIN_INTEGER - 160)) | (1 << (EParser.MAX_INTEGER - 160)) | (1 << (EParser.SYMBOL_IDENTIFIER - 160)) | (1 << (EParser.TYPE_IDENTIFIER - 160)) | (1 << (EParser.VARIABLE_IDENTIFIER - 160)) | (1 << (EParser.NATIVE_IDENTIFIER - 160)) | (1 << (EParser.DOLLAR_IDENTIFIER - 160)) | (1 << (EParser.ARONDBASE_IDENTIFIER - 160)) | (1 << (EParser.TEXT_LITERAL - 160)) | (1 << (EParser.UUID_LITERAL - 160)) | (1 << (EParser.INTEGER_LITERAL - 160)) | (1 << (EParser.HEXA_LITERAL - 160)) | (1 << (EParser.DECIMAL_LITERAL - 160)) | (1 << (EParser.DATETIME_LITERAL - 160)) | (1 << (EParser.TIME_LITERAL - 160)) | (1 << (EParser.DATE_LITERAL - 160)) | (1 << (EParser.PERIOD_LITERAL - 160)) | (1 << (EParser.VERSION_LITERAL - 160)))) !== 0)); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; EParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { switch(ruleIndex) { case 18: return this.native_category_binding_list_sempred(localctx, predIndex); case 39: return this.else_if_statement_list_sempred(localctx, predIndex); case 45: return this.expression_sempred(localctx, predIndex); case 46: return this.unresolved_expression_sempred(localctx, predIndex); case 47: return this.unresolved_selector_sempred(localctx, predIndex); case 49: return this.invocation_trailer_sempred(localctx, predIndex); case 51: return this.instance_expression_sempred(localctx, predIndex); case 52: return this.instance_selector_sempred(localctx, predIndex); case 62: return this.argument_assignment_list_sempred(localctx, predIndex); case 63: return this.with_argument_assignment_list_sempred(localctx, predIndex); case 66: return this.child_instance_sempred(localctx, predIndex); case 89: return this.typedef_sempred(localctx, predIndex); case 100: return this.nospace_hyphen_identifier_or_keyword_sempred(localctx, predIndex); case 101: return this.nospace_identifier_or_keyword_sempred(localctx, predIndex); case 114: return this.any_type_sempred(localctx, predIndex); case 152: return this.assignable_instance_sempred(localctx, predIndex); case 153: return this.is_expression_sempred(localctx, predIndex); case 160: return this.new_token_sempred(localctx, predIndex); case 161: return this.key_token_sempred(localctx, predIndex); case 162: return this.module_token_sempred(localctx, predIndex); case 163: return this.value_token_sempred(localctx, predIndex); case 164: return this.symbols_token_sempred(localctx, predIndex); case 171: return this.javascript_expression_sempred(localctx, predIndex); case 177: return this.javascript_arguments_sempred(localctx, predIndex); case 184: return this.python_expression_sempred(localctx, predIndex); case 190: return this.python_ordinal_argument_list_sempred(localctx, predIndex); case 191: return this.python_named_argument_list_sempred(localctx, predIndex); case 193: return this.python_identifier_expression_sempred(localctx, predIndex); case 197: return this.java_expression_sempred(localctx, predIndex); case 203: return this.java_arguments_sempred(localctx, predIndex); case 206: return this.java_identifier_expression_sempred(localctx, predIndex); case 207: return this.java_class_identifier_expression_sempred(localctx, predIndex); case 211: return this.csharp_expression_sempred(localctx, predIndex); case 217: return this.csharp_arguments_sempred(localctx, predIndex); case 220: return this.csharp_identifier_expression_sempred(localctx, predIndex); case 240: return this.css_identifier_sempred(localctx, predIndex); default: throw "No predicate with index:" + ruleIndex; } }; EParser.prototype.native_category_binding_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 0: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.else_if_statement_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 1: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 2: return this.precpred(this._ctx, 42); case 3: return this.precpred(this._ctx, 41); case 4: return this.precpred(this._ctx, 40); case 5: return this.precpred(this._ctx, 39); case 6: return this.precpred(this._ctx, 38); case 7: return this.precpred(this._ctx, 36); case 8: return this.precpred(this._ctx, 35); case 9: return this.precpred(this._ctx, 34); case 10: return this.precpred(this._ctx, 33); case 11: return this.precpred(this._ctx, 30); case 12: return this.precpred(this._ctx, 29); case 13: return this.precpred(this._ctx, 28); case 14: return this.precpred(this._ctx, 27); case 15: return this.precpred(this._ctx, 26); case 16: return this.precpred(this._ctx, 25); case 17: return this.precpred(this._ctx, 24); case 18: return this.precpred(this._ctx, 23); case 19: return this.precpred(this._ctx, 22); case 20: return this.precpred(this._ctx, 21); case 21: return this.precpred(this._ctx, 20); case 22: return this.precpred(this._ctx, 19); case 23: return this.precpred(this._ctx, 18); case 24: return this.precpred(this._ctx, 17); case 25: return this.precpred(this._ctx, 16); case 26: return this.precpred(this._ctx, 15); case 27: return this.precpred(this._ctx, 1); case 28: return this.precpred(this._ctx, 37); case 29: return this.precpred(this._ctx, 32); case 30: return this.precpred(this._ctx, 31); case 31: return this.precpred(this._ctx, 8); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.unresolved_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 32: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.unresolved_selector_sempred = function(localctx, predIndex) { switch(predIndex) { case 33: return this.wasNot(EParser.WS); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.invocation_trailer_sempred = function(localctx, predIndex) { switch(predIndex) { case 34: return this.willBe(EParser.LF); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.instance_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 35: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.instance_selector_sempred = function(localctx, predIndex) { switch(predIndex) { case 36: return this.wasNot(EParser.WS); case 37: return this.wasNot(EParser.WS); case 38: return this.wasNot(EParser.WS); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.argument_assignment_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 39: return this.was(EParser.WS); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.with_argument_assignment_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 40: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.child_instance_sempred = function(localctx, predIndex) { switch(predIndex) { case 41: return this.wasNot(EParser.WS); case 42: return this.wasNot(EParser.WS); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.typedef_sempred = function(localctx, predIndex) { switch(predIndex) { case 43: return this.precpred(this._ctx, 5); case 44: return this.precpred(this._ctx, 4); case 45: return this.precpred(this._ctx, 3); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.nospace_hyphen_identifier_or_keyword_sempred = function(localctx, predIndex) { switch(predIndex) { case 46: return this.wasNotWhiteSpace(); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.nospace_identifier_or_keyword_sempred = function(localctx, predIndex) { switch(predIndex) { case 47: return this.wasNotWhiteSpace(); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.any_type_sempred = function(localctx, predIndex) { switch(predIndex) { case 48: return this.precpred(this._ctx, 2); case 49: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.assignable_instance_sempred = function(localctx, predIndex) { switch(predIndex) { case 50: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.is_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 51: return this.willBeAOrAn(); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.new_token_sempred = function(localctx, predIndex) { switch(predIndex) { case 52: return this.isText(localctx.i1,"new"); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.key_token_sempred = function(localctx, predIndex) { switch(predIndex) { case 53: return this.isText(localctx.i1,"key"); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.module_token_sempred = function(localctx, predIndex) { switch(predIndex) { case 54: return this.isText(localctx.i1,"module"); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.value_token_sempred = function(localctx, predIndex) { switch(predIndex) { case 55: return this.isText(localctx.i1,"value"); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.symbols_token_sempred = function(localctx, predIndex) { switch(predIndex) { case 56: return this.isText(localctx.i1,"symbols"); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.javascript_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 57: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.javascript_arguments_sempred = function(localctx, predIndex) { switch(predIndex) { case 58: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.python_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 59: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.python_ordinal_argument_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 60: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.python_named_argument_list_sempred = function(localctx, predIndex) { switch(predIndex) { case 61: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.python_identifier_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 62: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.java_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 63: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.java_arguments_sempred = function(localctx, predIndex) { switch(predIndex) { case 64: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.java_identifier_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 65: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.java_class_identifier_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 66: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.csharp_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 67: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.csharp_arguments_sempred = function(localctx, predIndex) { switch(predIndex) { case 68: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.csharp_identifier_expression_sempred = function(localctx, predIndex) { switch(predIndex) { case 69: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; EParser.prototype.css_identifier_sempred = function(localctx, predIndex) { switch(predIndex) { case 70: return this.precpred(this._ctx, 1); default: throw "No predicate with index:" + predIndex; } }; exports.EParser = EParser; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { // Generated from EParser.g4 by ANTLR 4.7.1 // jshint ignore: start var antlr4 = __webpack_require__(1); // This class defines a complete listener for a parse tree produced by EParser. function EParserListener() { antlr4.tree.ParseTreeListener.call(this); return this; } EParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); EParserListener.prototype.constructor = EParserListener; // Enter a parse tree produced by EParser#enum_category_declaration. EParserListener.prototype.enterEnum_category_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#enum_category_declaration. EParserListener.prototype.exitEnum_category_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#enum_native_declaration. EParserListener.prototype.enterEnum_native_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#enum_native_declaration. EParserListener.prototype.exitEnum_native_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_symbol. EParserListener.prototype.enterNative_symbol = function(ctx) { }; // Exit a parse tree produced by EParser#native_symbol. EParserListener.prototype.exitNative_symbol = function(ctx) { }; // Enter a parse tree produced by EParser#category_symbol. EParserListener.prototype.enterCategory_symbol = function(ctx) { }; // Exit a parse tree produced by EParser#category_symbol. EParserListener.prototype.exitCategory_symbol = function(ctx) { }; // Enter a parse tree produced by EParser#attribute_declaration. EParserListener.prototype.enterAttribute_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#attribute_declaration. EParserListener.prototype.exitAttribute_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#concrete_widget_declaration. EParserListener.prototype.enterConcrete_widget_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#concrete_widget_declaration. EParserListener.prototype.exitConcrete_widget_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_widget_declaration. EParserListener.prototype.enterNative_widget_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_widget_declaration. EParserListener.prototype.exitNative_widget_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#concrete_category_declaration. EParserListener.prototype.enterConcrete_category_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#concrete_category_declaration. EParserListener.prototype.exitConcrete_category_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#singleton_category_declaration. EParserListener.prototype.enterSingleton_category_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#singleton_category_declaration. EParserListener.prototype.exitSingleton_category_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#DerivedList. EParserListener.prototype.enterDerivedList = function(ctx) { }; // Exit a parse tree produced by EParser#DerivedList. EParserListener.prototype.exitDerivedList = function(ctx) { }; // Enter a parse tree produced by EParser#DerivedListItem. EParserListener.prototype.enterDerivedListItem = function(ctx) { }; // Exit a parse tree produced by EParser#DerivedListItem. EParserListener.prototype.exitDerivedListItem = function(ctx) { }; // Enter a parse tree produced by EParser#operator_method_declaration. EParserListener.prototype.enterOperator_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#operator_method_declaration. EParserListener.prototype.exitOperator_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#setter_method_declaration. EParserListener.prototype.enterSetter_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#setter_method_declaration. EParserListener.prototype.exitSetter_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_setter_declaration. EParserListener.prototype.enterNative_setter_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_setter_declaration. EParserListener.prototype.exitNative_setter_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#getter_method_declaration. EParserListener.prototype.enterGetter_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#getter_method_declaration. EParserListener.prototype.exitGetter_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_getter_declaration. EParserListener.prototype.enterNative_getter_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_getter_declaration. EParserListener.prototype.exitNative_getter_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_category_declaration. EParserListener.prototype.enterNative_category_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_category_declaration. EParserListener.prototype.exitNative_category_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_resource_declaration. EParserListener.prototype.enterNative_resource_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_resource_declaration. EParserListener.prototype.exitNative_resource_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_category_bindings. EParserListener.prototype.enterNative_category_bindings = function(ctx) { }; // Exit a parse tree produced by EParser#native_category_bindings. EParserListener.prototype.exitNative_category_bindings = function(ctx) { }; // Enter a parse tree produced by EParser#NativeCategoryBindingListItem. EParserListener.prototype.enterNativeCategoryBindingListItem = function(ctx) { }; // Exit a parse tree produced by EParser#NativeCategoryBindingListItem. EParserListener.prototype.exitNativeCategoryBindingListItem = function(ctx) { }; // Enter a parse tree produced by EParser#NativeCategoryBindingList. EParserListener.prototype.enterNativeCategoryBindingList = function(ctx) { }; // Exit a parse tree produced by EParser#NativeCategoryBindingList. EParserListener.prototype.exitNativeCategoryBindingList = function(ctx) { }; // Enter a parse tree produced by EParser#AttributeList. EParserListener.prototype.enterAttributeList = function(ctx) { }; // Exit a parse tree produced by EParser#AttributeList. EParserListener.prototype.exitAttributeList = function(ctx) { }; // Enter a parse tree produced by EParser#AttributeListItem. EParserListener.prototype.enterAttributeListItem = function(ctx) { }; // Exit a parse tree produced by EParser#AttributeListItem. EParserListener.prototype.exitAttributeListItem = function(ctx) { }; // Enter a parse tree produced by EParser#abstract_method_declaration. EParserListener.prototype.enterAbstract_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#abstract_method_declaration. EParserListener.prototype.exitAbstract_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#concrete_method_declaration. EParserListener.prototype.enterConcrete_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#concrete_method_declaration. EParserListener.prototype.exitConcrete_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_method_declaration. EParserListener.prototype.enterNative_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_method_declaration. EParserListener.prototype.exitNative_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#test_method_declaration. EParserListener.prototype.enterTest_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#test_method_declaration. EParserListener.prototype.exitTest_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#assertion. EParserListener.prototype.enterAssertion = function(ctx) { }; // Exit a parse tree produced by EParser#assertion. EParserListener.prototype.exitAssertion = function(ctx) { }; // Enter a parse tree produced by EParser#full_argument_list. EParserListener.prototype.enterFull_argument_list = function(ctx) { }; // Exit a parse tree produced by EParser#full_argument_list. EParserListener.prototype.exitFull_argument_list = function(ctx) { }; // Enter a parse tree produced by EParser#typed_argument. EParserListener.prototype.enterTyped_argument = function(ctx) { }; // Exit a parse tree produced by EParser#typed_argument. EParserListener.prototype.exitTyped_argument = function(ctx) { }; // Enter a parse tree produced by EParser#AssignInstanceStatement. EParserListener.prototype.enterAssignInstanceStatement = function(ctx) { }; // Exit a parse tree produced by EParser#AssignInstanceStatement. EParserListener.prototype.exitAssignInstanceStatement = function(ctx) { }; // Enter a parse tree produced by EParser#MethodCallStatement. EParserListener.prototype.enterMethodCallStatement = function(ctx) { }; // Exit a parse tree produced by EParser#MethodCallStatement. EParserListener.prototype.exitMethodCallStatement = function(ctx) { }; // Enter a parse tree produced by EParser#AssignTupleStatement. EParserListener.prototype.enterAssignTupleStatement = function(ctx) { }; // Exit a parse tree produced by EParser#AssignTupleStatement. EParserListener.prototype.exitAssignTupleStatement = function(ctx) { }; // Enter a parse tree produced by EParser#StoreStatement. EParserListener.prototype.enterStoreStatement = function(ctx) { }; // Exit a parse tree produced by EParser#StoreStatement. EParserListener.prototype.exitStoreStatement = function(ctx) { }; // Enter a parse tree produced by EParser#FetchStatement. EParserListener.prototype.enterFetchStatement = function(ctx) { }; // Exit a parse tree produced by EParser#FetchStatement. EParserListener.prototype.exitFetchStatement = function(ctx) { }; // Enter a parse tree produced by EParser#FlushStatement. EParserListener.prototype.enterFlushStatement = function(ctx) { }; // Exit a parse tree produced by EParser#FlushStatement. EParserListener.prototype.exitFlushStatement = function(ctx) { }; // Enter a parse tree produced by EParser#BreakStatement. EParserListener.prototype.enterBreakStatement = function(ctx) { }; // Exit a parse tree produced by EParser#BreakStatement. EParserListener.prototype.exitBreakStatement = function(ctx) { }; // Enter a parse tree produced by EParser#ReturnStatement. EParserListener.prototype.enterReturnStatement = function(ctx) { }; // Exit a parse tree produced by EParser#ReturnStatement. EParserListener.prototype.exitReturnStatement = function(ctx) { }; // Enter a parse tree produced by EParser#IfStatement. EParserListener.prototype.enterIfStatement = function(ctx) { }; // Exit a parse tree produced by EParser#IfStatement. EParserListener.prototype.exitIfStatement = function(ctx) { }; // Enter a parse tree produced by EParser#SwitchStatement. EParserListener.prototype.enterSwitchStatement = function(ctx) { }; // Exit a parse tree produced by EParser#SwitchStatement. EParserListener.prototype.exitSwitchStatement = function(ctx) { }; // Enter a parse tree produced by EParser#ForEachStatement. EParserListener.prototype.enterForEachStatement = function(ctx) { }; // Exit a parse tree produced by EParser#ForEachStatement. EParserListener.prototype.exitForEachStatement = function(ctx) { }; // Enter a parse tree produced by EParser#WhileStatement. EParserListener.prototype.enterWhileStatement = function(ctx) { }; // Exit a parse tree produced by EParser#WhileStatement. EParserListener.prototype.exitWhileStatement = function(ctx) { }; // Enter a parse tree produced by EParser#DoWhileStatement. EParserListener.prototype.enterDoWhileStatement = function(ctx) { }; // Exit a parse tree produced by EParser#DoWhileStatement. EParserListener.prototype.exitDoWhileStatement = function(ctx) { }; // Enter a parse tree produced by EParser#RaiseStatement. EParserListener.prototype.enterRaiseStatement = function(ctx) { }; // Exit a parse tree produced by EParser#RaiseStatement. EParserListener.prototype.exitRaiseStatement = function(ctx) { }; // Enter a parse tree produced by EParser#TryStatement. EParserListener.prototype.enterTryStatement = function(ctx) { }; // Exit a parse tree produced by EParser#TryStatement. EParserListener.prototype.exitTryStatement = function(ctx) { }; // Enter a parse tree produced by EParser#WriteStatement. EParserListener.prototype.enterWriteStatement = function(ctx) { }; // Exit a parse tree produced by EParser#WriteStatement. EParserListener.prototype.exitWriteStatement = function(ctx) { }; // Enter a parse tree produced by EParser#WithResourceStatement. EParserListener.prototype.enterWithResourceStatement = function(ctx) { }; // Exit a parse tree produced by EParser#WithResourceStatement. EParserListener.prototype.exitWithResourceStatement = function(ctx) { }; // Enter a parse tree produced by EParser#WithSingletonStatement. EParserListener.prototype.enterWithSingletonStatement = function(ctx) { }; // Exit a parse tree produced by EParser#WithSingletonStatement. EParserListener.prototype.exitWithSingletonStatement = function(ctx) { }; // Enter a parse tree produced by EParser#ClosureStatement. EParserListener.prototype.enterClosureStatement = function(ctx) { }; // Exit a parse tree produced by EParser#ClosureStatement. EParserListener.prototype.exitClosureStatement = function(ctx) { }; // Enter a parse tree produced by EParser#CommentStatement. EParserListener.prototype.enterCommentStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CommentStatement. EParserListener.prototype.exitCommentStatement = function(ctx) { }; // Enter a parse tree produced by EParser#flush_statement. EParserListener.prototype.enterFlush_statement = function(ctx) { }; // Exit a parse tree produced by EParser#flush_statement. EParserListener.prototype.exitFlush_statement = function(ctx) { }; // Enter a parse tree produced by EParser#store_statement. EParserListener.prototype.enterStore_statement = function(ctx) { }; // Exit a parse tree produced by EParser#store_statement. EParserListener.prototype.exitStore_statement = function(ctx) { }; // Enter a parse tree produced by EParser#UnresolvedWithArgsStatement. EParserListener.prototype.enterUnresolvedWithArgsStatement = function(ctx) { }; // Exit a parse tree produced by EParser#UnresolvedWithArgsStatement. EParserListener.prototype.exitUnresolvedWithArgsStatement = function(ctx) { }; // Enter a parse tree produced by EParser#InvokeStatement. EParserListener.prototype.enterInvokeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#InvokeStatement. EParserListener.prototype.exitInvokeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#with_resource_statement. EParserListener.prototype.enterWith_resource_statement = function(ctx) { }; // Exit a parse tree produced by EParser#with_resource_statement. EParserListener.prototype.exitWith_resource_statement = function(ctx) { }; // Enter a parse tree produced by EParser#with_singleton_statement. EParserListener.prototype.enterWith_singleton_statement = function(ctx) { }; // Exit a parse tree produced by EParser#with_singleton_statement. EParserListener.prototype.exitWith_singleton_statement = function(ctx) { }; // Enter a parse tree produced by EParser#switch_statement. EParserListener.prototype.enterSwitch_statement = function(ctx) { }; // Exit a parse tree produced by EParser#switch_statement. EParserListener.prototype.exitSwitch_statement = function(ctx) { }; // Enter a parse tree produced by EParser#AtomicSwitchCase. EParserListener.prototype.enterAtomicSwitchCase = function(ctx) { }; // Exit a parse tree produced by EParser#AtomicSwitchCase. EParserListener.prototype.exitAtomicSwitchCase = function(ctx) { }; // Enter a parse tree produced by EParser#CollectionSwitchCase. EParserListener.prototype.enterCollectionSwitchCase = function(ctx) { }; // Exit a parse tree produced by EParser#CollectionSwitchCase. EParserListener.prototype.exitCollectionSwitchCase = function(ctx) { }; // Enter a parse tree produced by EParser#for_each_statement. EParserListener.prototype.enterFor_each_statement = function(ctx) { }; // Exit a parse tree produced by EParser#for_each_statement. EParserListener.prototype.exitFor_each_statement = function(ctx) { }; // Enter a parse tree produced by EParser#do_while_statement. EParserListener.prototype.enterDo_while_statement = function(ctx) { }; // Exit a parse tree produced by EParser#do_while_statement. EParserListener.prototype.exitDo_while_statement = function(ctx) { }; // Enter a parse tree produced by EParser#while_statement. EParserListener.prototype.enterWhile_statement = function(ctx) { }; // Exit a parse tree produced by EParser#while_statement. EParserListener.prototype.exitWhile_statement = function(ctx) { }; // Enter a parse tree produced by EParser#if_statement. EParserListener.prototype.enterIf_statement = function(ctx) { }; // Exit a parse tree produced by EParser#if_statement. EParserListener.prototype.exitIf_statement = function(ctx) { }; // Enter a parse tree produced by EParser#ElseIfStatementList. EParserListener.prototype.enterElseIfStatementList = function(ctx) { }; // Exit a parse tree produced by EParser#ElseIfStatementList. EParserListener.prototype.exitElseIfStatementList = function(ctx) { }; // Enter a parse tree produced by EParser#ElseIfStatementListItem. EParserListener.prototype.enterElseIfStatementListItem = function(ctx) { }; // Exit a parse tree produced by EParser#ElseIfStatementListItem. EParserListener.prototype.exitElseIfStatementListItem = function(ctx) { }; // Enter a parse tree produced by EParser#raise_statement. EParserListener.prototype.enterRaise_statement = function(ctx) { }; // Exit a parse tree produced by EParser#raise_statement. EParserListener.prototype.exitRaise_statement = function(ctx) { }; // Enter a parse tree produced by EParser#try_statement. EParserListener.prototype.enterTry_statement = function(ctx) { }; // Exit a parse tree produced by EParser#try_statement. EParserListener.prototype.exitTry_statement = function(ctx) { }; // Enter a parse tree produced by EParser#CatchAtomicStatement. EParserListener.prototype.enterCatchAtomicStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CatchAtomicStatement. EParserListener.prototype.exitCatchAtomicStatement = function(ctx) { }; // Enter a parse tree produced by EParser#CatchCollectionStatement. EParserListener.prototype.enterCatchCollectionStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CatchCollectionStatement. EParserListener.prototype.exitCatchCollectionStatement = function(ctx) { }; // Enter a parse tree produced by EParser#break_statement. EParserListener.prototype.enterBreak_statement = function(ctx) { }; // Exit a parse tree produced by EParser#break_statement. EParserListener.prototype.exitBreak_statement = function(ctx) { }; // Enter a parse tree produced by EParser#return_statement. EParserListener.prototype.enterReturn_statement = function(ctx) { }; // Exit a parse tree produced by EParser#return_statement. EParserListener.prototype.exitReturn_statement = function(ctx) { }; // Enter a parse tree produced by EParser#IntDivideExpression. EParserListener.prototype.enterIntDivideExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IntDivideExpression. EParserListener.prototype.exitIntDivideExpression = function(ctx) { }; // Enter a parse tree produced by EParser#HasAnyExpression. EParserListener.prototype.enterHasAnyExpression = function(ctx) { }; // Exit a parse tree produced by EParser#HasAnyExpression. EParserListener.prototype.exitHasAnyExpression = function(ctx) { }; // Enter a parse tree produced by EParser#HasExpression. EParserListener.prototype.enterHasExpression = function(ctx) { }; // Exit a parse tree produced by EParser#HasExpression. EParserListener.prototype.exitHasExpression = function(ctx) { }; // Enter a parse tree produced by EParser#InExpression. EParserListener.prototype.enterInExpression = function(ctx) { }; // Exit a parse tree produced by EParser#InExpression. EParserListener.prototype.exitInExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JsxExpression. EParserListener.prototype.enterJsxExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JsxExpression. EParserListener.prototype.exitJsxExpression = function(ctx) { }; // Enter a parse tree produced by EParser#GreaterThanExpression. EParserListener.prototype.enterGreaterThanExpression = function(ctx) { }; // Exit a parse tree produced by EParser#GreaterThanExpression. EParserListener.prototype.exitGreaterThanExpression = function(ctx) { }; // Enter a parse tree produced by EParser#OrExpression. EParserListener.prototype.enterOrExpression = function(ctx) { }; // Exit a parse tree produced by EParser#OrExpression. EParserListener.prototype.exitOrExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ReadOneExpression. EParserListener.prototype.enterReadOneExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ReadOneExpression. EParserListener.prototype.exitReadOneExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotHasAnyExpression. EParserListener.prototype.enterNotHasAnyExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotHasAnyExpression. EParserListener.prototype.exitNotHasAnyExpression = function(ctx) { }; // Enter a parse tree produced by EParser#AndExpression. EParserListener.prototype.enterAndExpression = function(ctx) { }; // Exit a parse tree produced by EParser#AndExpression. EParserListener.prototype.exitAndExpression = function(ctx) { }; // Enter a parse tree produced by EParser#MethodCallExpression. EParserListener.prototype.enterMethodCallExpression = function(ctx) { }; // Exit a parse tree produced by EParser#MethodCallExpression. EParserListener.prototype.exitMethodCallExpression = function(ctx) { }; // Enter a parse tree produced by EParser#FetchExpression. EParserListener.prototype.enterFetchExpression = function(ctx) { }; // Exit a parse tree produced by EParser#FetchExpression. EParserListener.prototype.exitFetchExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotHasExpression. EParserListener.prototype.enterNotHasExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotHasExpression. EParserListener.prototype.exitNotHasExpression = function(ctx) { }; // Enter a parse tree produced by EParser#SortedExpression. EParserListener.prototype.enterSortedExpression = function(ctx) { }; // Exit a parse tree produced by EParser#SortedExpression. EParserListener.prototype.exitSortedExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotHasAllExpression. EParserListener.prototype.enterNotHasAllExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotHasAllExpression. EParserListener.prototype.exitNotHasAllExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ContainsExpression. EParserListener.prototype.enterContainsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ContainsExpression. EParserListener.prototype.exitContainsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotContainsExpression. EParserListener.prototype.enterNotContainsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotContainsExpression. EParserListener.prototype.exitNotContainsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#RoughlyEqualsExpression. EParserListener.prototype.enterRoughlyEqualsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#RoughlyEqualsExpression. EParserListener.prototype.exitRoughlyEqualsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ExecuteExpression. EParserListener.prototype.enterExecuteExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ExecuteExpression. EParserListener.prototype.exitExecuteExpression = function(ctx) { }; // Enter a parse tree produced by EParser#GreaterThanOrEqualExpression. EParserListener.prototype.enterGreaterThanOrEqualExpression = function(ctx) { }; // Exit a parse tree produced by EParser#GreaterThanOrEqualExpression. EParserListener.prototype.exitGreaterThanOrEqualExpression = function(ctx) { }; // Enter a parse tree produced by EParser#IteratorExpression. EParserListener.prototype.enterIteratorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IteratorExpression. EParserListener.prototype.exitIteratorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#IsNotExpression. EParserListener.prototype.enterIsNotExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IsNotExpression. EParserListener.prototype.exitIsNotExpression = function(ctx) { }; // Enter a parse tree produced by EParser#DivideExpression. EParserListener.prototype.enterDivideExpression = function(ctx) { }; // Exit a parse tree produced by EParser#DivideExpression. EParserListener.prototype.exitDivideExpression = function(ctx) { }; // Enter a parse tree produced by EParser#IsExpression. EParserListener.prototype.enterIsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IsExpression. EParserListener.prototype.exitIsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#AddExpression. EParserListener.prototype.enterAddExpression = function(ctx) { }; // Exit a parse tree produced by EParser#AddExpression. EParserListener.prototype.exitAddExpression = function(ctx) { }; // Enter a parse tree produced by EParser#InstanceExpression. EParserListener.prototype.enterInstanceExpression = function(ctx) { }; // Exit a parse tree produced by EParser#InstanceExpression. EParserListener.prototype.exitInstanceExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ReadAllExpression. EParserListener.prototype.enterReadAllExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ReadAllExpression. EParserListener.prototype.exitReadAllExpression = function(ctx) { }; // Enter a parse tree produced by EParser#CastExpression. EParserListener.prototype.enterCastExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CastExpression. EParserListener.prototype.exitCastExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ModuloExpression. EParserListener.prototype.enterModuloExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ModuloExpression. EParserListener.prototype.exitModuloExpression = function(ctx) { }; // Enter a parse tree produced by EParser#TernaryExpression. EParserListener.prototype.enterTernaryExpression = function(ctx) { }; // Exit a parse tree produced by EParser#TernaryExpression. EParserListener.prototype.exitTernaryExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotEqualsExpression. EParserListener.prototype.enterNotEqualsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotEqualsExpression. EParserListener.prototype.exitNotEqualsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#DocumentExpression. EParserListener.prototype.enterDocumentExpression = function(ctx) { }; // Exit a parse tree produced by EParser#DocumentExpression. EParserListener.prototype.exitDocumentExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotExpression. EParserListener.prototype.enterNotExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotExpression. EParserListener.prototype.exitNotExpression = function(ctx) { }; // Enter a parse tree produced by EParser#InvocationExpression. EParserListener.prototype.enterInvocationExpression = function(ctx) { }; // Exit a parse tree produced by EParser#InvocationExpression. EParserListener.prototype.exitInvocationExpression = function(ctx) { }; // Enter a parse tree produced by EParser#CodeExpression. EParserListener.prototype.enterCodeExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CodeExpression. EParserListener.prototype.exitCodeExpression = function(ctx) { }; // Enter a parse tree produced by EParser#AmbiguousExpression. EParserListener.prototype.enterAmbiguousExpression = function(ctx) { }; // Exit a parse tree produced by EParser#AmbiguousExpression. EParserListener.prototype.exitAmbiguousExpression = function(ctx) { }; // Enter a parse tree produced by EParser#LessThanOrEqualExpression. EParserListener.prototype.enterLessThanOrEqualExpression = function(ctx) { }; // Exit a parse tree produced by EParser#LessThanOrEqualExpression. EParserListener.prototype.exitLessThanOrEqualExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ClosureExpression. EParserListener.prototype.enterClosureExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ClosureExpression. EParserListener.prototype.exitClosureExpression = function(ctx) { }; // Enter a parse tree produced by EParser#BlobExpression. EParserListener.prototype.enterBlobExpression = function(ctx) { }; // Exit a parse tree produced by EParser#BlobExpression. EParserListener.prototype.exitBlobExpression = function(ctx) { }; // Enter a parse tree produced by EParser#FilteredListExpression. EParserListener.prototype.enterFilteredListExpression = function(ctx) { }; // Exit a parse tree produced by EParser#FilteredListExpression. EParserListener.prototype.exitFilteredListExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ConstructorExpression. EParserListener.prototype.enterConstructorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ConstructorExpression. EParserListener.prototype.exitConstructorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#MultiplyExpression. EParserListener.prototype.enterMultiplyExpression = function(ctx) { }; // Exit a parse tree produced by EParser#MultiplyExpression. EParserListener.prototype.exitMultiplyExpression = function(ctx) { }; // Enter a parse tree produced by EParser#NotInExpression. EParserListener.prototype.enterNotInExpression = function(ctx) { }; // Exit a parse tree produced by EParser#NotInExpression. EParserListener.prototype.exitNotInExpression = function(ctx) { }; // Enter a parse tree produced by EParser#UnresolvedExpression. EParserListener.prototype.enterUnresolvedExpression = function(ctx) { }; // Exit a parse tree produced by EParser#UnresolvedExpression. EParserListener.prototype.exitUnresolvedExpression = function(ctx) { }; // Enter a parse tree produced by EParser#MinusExpression. EParserListener.prototype.enterMinusExpression = function(ctx) { }; // Exit a parse tree produced by EParser#MinusExpression. EParserListener.prototype.exitMinusExpression = function(ctx) { }; // Enter a parse tree produced by EParser#HasAllExpression. EParserListener.prototype.enterHasAllExpression = function(ctx) { }; // Exit a parse tree produced by EParser#HasAllExpression. EParserListener.prototype.exitHasAllExpression = function(ctx) { }; // Enter a parse tree produced by EParser#CssExpression. EParserListener.prototype.enterCssExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CssExpression. EParserListener.prototype.exitCssExpression = function(ctx) { }; // Enter a parse tree produced by EParser#LessThanExpression. EParserListener.prototype.enterLessThanExpression = function(ctx) { }; // Exit a parse tree produced by EParser#LessThanExpression. EParserListener.prototype.exitLessThanExpression = function(ctx) { }; // Enter a parse tree produced by EParser#EqualsExpression. EParserListener.prototype.enterEqualsExpression = function(ctx) { }; // Exit a parse tree produced by EParser#EqualsExpression. EParserListener.prototype.exitEqualsExpression = function(ctx) { }; // Enter a parse tree produced by EParser#UnresolvedSelector. EParserListener.prototype.enterUnresolvedSelector = function(ctx) { }; // Exit a parse tree produced by EParser#UnresolvedSelector. EParserListener.prototype.exitUnresolvedSelector = function(ctx) { }; // Enter a parse tree produced by EParser#UnresolvedIdentifier. EParserListener.prototype.enterUnresolvedIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#UnresolvedIdentifier. EParserListener.prototype.exitUnresolvedIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#unresolved_selector. EParserListener.prototype.enterUnresolved_selector = function(ctx) { }; // Exit a parse tree produced by EParser#unresolved_selector. EParserListener.prototype.exitUnresolved_selector = function(ctx) { }; // Enter a parse tree produced by EParser#invocation_expression. EParserListener.prototype.enterInvocation_expression = function(ctx) { }; // Exit a parse tree produced by EParser#invocation_expression. EParserListener.prototype.exitInvocation_expression = function(ctx) { }; // Enter a parse tree produced by EParser#invocation_trailer. EParserListener.prototype.enterInvocation_trailer = function(ctx) { }; // Exit a parse tree produced by EParser#invocation_trailer. EParserListener.prototype.exitInvocation_trailer = function(ctx) { }; // Enter a parse tree produced by EParser#ParenthesisExpression. EParserListener.prototype.enterParenthesisExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ParenthesisExpression. EParserListener.prototype.exitParenthesisExpression = function(ctx) { }; // Enter a parse tree produced by EParser#LiteralExpression. EParserListener.prototype.enterLiteralExpression = function(ctx) { }; // Exit a parse tree produced by EParser#LiteralExpression. EParserListener.prototype.exitLiteralExpression = function(ctx) { }; // Enter a parse tree produced by EParser#IdentifierExpression. EParserListener.prototype.enterIdentifierExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IdentifierExpression. EParserListener.prototype.exitIdentifierExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ThisExpression. EParserListener.prototype.enterThisExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ThisExpression. EParserListener.prototype.exitThisExpression = function(ctx) { }; // Enter a parse tree produced by EParser#SelectorExpression. EParserListener.prototype.enterSelectorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#SelectorExpression. EParserListener.prototype.exitSelectorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#SelectableExpression. EParserListener.prototype.enterSelectableExpression = function(ctx) { }; // Exit a parse tree produced by EParser#SelectableExpression. EParserListener.prototype.exitSelectableExpression = function(ctx) { }; // Enter a parse tree produced by EParser#MemberSelector. EParserListener.prototype.enterMemberSelector = function(ctx) { }; // Exit a parse tree produced by EParser#MemberSelector. EParserListener.prototype.exitMemberSelector = function(ctx) { }; // Enter a parse tree produced by EParser#SliceSelector. EParserListener.prototype.enterSliceSelector = function(ctx) { }; // Exit a parse tree produced by EParser#SliceSelector. EParserListener.prototype.exitSliceSelector = function(ctx) { }; // Enter a parse tree produced by EParser#ItemSelector. EParserListener.prototype.enterItemSelector = function(ctx) { }; // Exit a parse tree produced by EParser#ItemSelector. EParserListener.prototype.exitItemSelector = function(ctx) { }; // Enter a parse tree produced by EParser#document_expression. EParserListener.prototype.enterDocument_expression = function(ctx) { }; // Exit a parse tree produced by EParser#document_expression. EParserListener.prototype.exitDocument_expression = function(ctx) { }; // Enter a parse tree produced by EParser#blob_expression. EParserListener.prototype.enterBlob_expression = function(ctx) { }; // Exit a parse tree produced by EParser#blob_expression. EParserListener.prototype.exitBlob_expression = function(ctx) { }; // Enter a parse tree produced by EParser#ConstructorFrom. EParserListener.prototype.enterConstructorFrom = function(ctx) { }; // Exit a parse tree produced by EParser#ConstructorFrom. EParserListener.prototype.exitConstructorFrom = function(ctx) { }; // Enter a parse tree produced by EParser#ConstructorNoFrom. EParserListener.prototype.enterConstructorNoFrom = function(ctx) { }; // Exit a parse tree produced by EParser#ConstructorNoFrom. EParserListener.prototype.exitConstructorNoFrom = function(ctx) { }; // Enter a parse tree produced by EParser#write_statement. EParserListener.prototype.enterWrite_statement = function(ctx) { }; // Exit a parse tree produced by EParser#write_statement. EParserListener.prototype.exitWrite_statement = function(ctx) { }; // Enter a parse tree produced by EParser#ambiguous_expression. EParserListener.prototype.enterAmbiguous_expression = function(ctx) { }; // Exit a parse tree produced by EParser#ambiguous_expression. EParserListener.prototype.exitAmbiguous_expression = function(ctx) { }; // Enter a parse tree produced by EParser#filtered_list_suffix. EParserListener.prototype.enterFiltered_list_suffix = function(ctx) { }; // Exit a parse tree produced by EParser#filtered_list_suffix. EParserListener.prototype.exitFiltered_list_suffix = function(ctx) { }; // Enter a parse tree produced by EParser#FetchOne. EParserListener.prototype.enterFetchOne = function(ctx) { }; // Exit a parse tree produced by EParser#FetchOne. EParserListener.prototype.exitFetchOne = function(ctx) { }; // Enter a parse tree produced by EParser#FetchMany. EParserListener.prototype.enterFetchMany = function(ctx) { }; // Exit a parse tree produced by EParser#FetchMany. EParserListener.prototype.exitFetchMany = function(ctx) { }; // Enter a parse tree produced by EParser#FetchOneAsync. EParserListener.prototype.enterFetchOneAsync = function(ctx) { }; // Exit a parse tree produced by EParser#FetchOneAsync. EParserListener.prototype.exitFetchOneAsync = function(ctx) { }; // Enter a parse tree produced by EParser#FetchManyAsync. EParserListener.prototype.enterFetchManyAsync = function(ctx) { }; // Exit a parse tree produced by EParser#FetchManyAsync. EParserListener.prototype.exitFetchManyAsync = function(ctx) { }; // Enter a parse tree produced by EParser#sorted_expression. EParserListener.prototype.enterSorted_expression = function(ctx) { }; // Exit a parse tree produced by EParser#sorted_expression. EParserListener.prototype.exitSorted_expression = function(ctx) { }; // Enter a parse tree produced by EParser#ArgumentAssignmentListExpression. EParserListener.prototype.enterArgumentAssignmentListExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ArgumentAssignmentListExpression. EParserListener.prototype.exitArgumentAssignmentListExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ArgumentAssignmentListNoExpression. EParserListener.prototype.enterArgumentAssignmentListNoExpression = function(ctx) { }; // Exit a parse tree produced by EParser#ArgumentAssignmentListNoExpression. EParserListener.prototype.exitArgumentAssignmentListNoExpression = function(ctx) { }; // Enter a parse tree produced by EParser#ArgumentAssignmentList. EParserListener.prototype.enterArgumentAssignmentList = function(ctx) { }; // Exit a parse tree produced by EParser#ArgumentAssignmentList. EParserListener.prototype.exitArgumentAssignmentList = function(ctx) { }; // Enter a parse tree produced by EParser#ArgumentAssignmentListItem. EParserListener.prototype.enterArgumentAssignmentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#ArgumentAssignmentListItem. EParserListener.prototype.exitArgumentAssignmentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#argument_assignment. EParserListener.prototype.enterArgument_assignment = function(ctx) { }; // Exit a parse tree produced by EParser#argument_assignment. EParserListener.prototype.exitArgument_assignment = function(ctx) { }; // Enter a parse tree produced by EParser#assign_instance_statement. EParserListener.prototype.enterAssign_instance_statement = function(ctx) { }; // Exit a parse tree produced by EParser#assign_instance_statement. EParserListener.prototype.exitAssign_instance_statement = function(ctx) { }; // Enter a parse tree produced by EParser#MemberInstance. EParserListener.prototype.enterMemberInstance = function(ctx) { }; // Exit a parse tree produced by EParser#MemberInstance. EParserListener.prototype.exitMemberInstance = function(ctx) { }; // Enter a parse tree produced by EParser#ItemInstance. EParserListener.prototype.enterItemInstance = function(ctx) { }; // Exit a parse tree produced by EParser#ItemInstance. EParserListener.prototype.exitItemInstance = function(ctx) { }; // Enter a parse tree produced by EParser#assign_tuple_statement. EParserListener.prototype.enterAssign_tuple_statement = function(ctx) { }; // Exit a parse tree produced by EParser#assign_tuple_statement. EParserListener.prototype.exitAssign_tuple_statement = function(ctx) { }; // Enter a parse tree produced by EParser#lfs. EParserListener.prototype.enterLfs = function(ctx) { }; // Exit a parse tree produced by EParser#lfs. EParserListener.prototype.exitLfs = function(ctx) { }; // Enter a parse tree produced by EParser#lfp. EParserListener.prototype.enterLfp = function(ctx) { }; // Exit a parse tree produced by EParser#lfp. EParserListener.prototype.exitLfp = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_ws. EParserListener.prototype.enterJsx_ws = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_ws. EParserListener.prototype.exitJsx_ws = function(ctx) { }; // Enter a parse tree produced by EParser#indent. EParserListener.prototype.enterIndent = function(ctx) { }; // Exit a parse tree produced by EParser#indent. EParserListener.prototype.exitIndent = function(ctx) { }; // Enter a parse tree produced by EParser#dedent. EParserListener.prototype.enterDedent = function(ctx) { }; // Exit a parse tree produced by EParser#dedent. EParserListener.prototype.exitDedent = function(ctx) { }; // Enter a parse tree produced by EParser#null_literal. EParserListener.prototype.enterNull_literal = function(ctx) { }; // Exit a parse tree produced by EParser#null_literal. EParserListener.prototype.exitNull_literal = function(ctx) { }; // Enter a parse tree produced by EParser#FullDeclarationList. EParserListener.prototype.enterFullDeclarationList = function(ctx) { }; // Exit a parse tree produced by EParser#FullDeclarationList. EParserListener.prototype.exitFullDeclarationList = function(ctx) { }; // Enter a parse tree produced by EParser#declarations. EParserListener.prototype.enterDeclarations = function(ctx) { }; // Exit a parse tree produced by EParser#declarations. EParserListener.prototype.exitDeclarations = function(ctx) { }; // Enter a parse tree produced by EParser#declaration. EParserListener.prototype.enterDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#declaration. EParserListener.prototype.exitDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#annotation_constructor. EParserListener.prototype.enterAnnotation_constructor = function(ctx) { }; // Exit a parse tree produced by EParser#annotation_constructor. EParserListener.prototype.exitAnnotation_constructor = function(ctx) { }; // Enter a parse tree produced by EParser#annotation_identifier. EParserListener.prototype.enterAnnotation_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#annotation_identifier. EParserListener.prototype.exitAnnotation_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#resource_declaration. EParserListener.prototype.enterResource_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#resource_declaration. EParserListener.prototype.exitResource_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#enum_declaration. EParserListener.prototype.enterEnum_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#enum_declaration. EParserListener.prototype.exitEnum_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_symbol_list. EParserListener.prototype.enterNative_symbol_list = function(ctx) { }; // Exit a parse tree produced by EParser#native_symbol_list. EParserListener.prototype.exitNative_symbol_list = function(ctx) { }; // Enter a parse tree produced by EParser#category_symbol_list. EParserListener.prototype.enterCategory_symbol_list = function(ctx) { }; // Exit a parse tree produced by EParser#category_symbol_list. EParserListener.prototype.exitCategory_symbol_list = function(ctx) { }; // Enter a parse tree produced by EParser#symbol_list. EParserListener.prototype.enterSymbol_list = function(ctx) { }; // Exit a parse tree produced by EParser#symbol_list. EParserListener.prototype.exitSymbol_list = function(ctx) { }; // Enter a parse tree produced by EParser#MatchingList. EParserListener.prototype.enterMatchingList = function(ctx) { }; // Exit a parse tree produced by EParser#MatchingList. EParserListener.prototype.exitMatchingList = function(ctx) { }; // Enter a parse tree produced by EParser#MatchingSet. EParserListener.prototype.enterMatchingSet = function(ctx) { }; // Exit a parse tree produced by EParser#MatchingSet. EParserListener.prototype.exitMatchingSet = function(ctx) { }; // Enter a parse tree produced by EParser#MatchingRange. EParserListener.prototype.enterMatchingRange = function(ctx) { }; // Exit a parse tree produced by EParser#MatchingRange. EParserListener.prototype.exitMatchingRange = function(ctx) { }; // Enter a parse tree produced by EParser#MatchingPattern. EParserListener.prototype.enterMatchingPattern = function(ctx) { }; // Exit a parse tree produced by EParser#MatchingPattern. EParserListener.prototype.exitMatchingPattern = function(ctx) { }; // Enter a parse tree produced by EParser#MatchingExpression. EParserListener.prototype.enterMatchingExpression = function(ctx) { }; // Exit a parse tree produced by EParser#MatchingExpression. EParserListener.prototype.exitMatchingExpression = function(ctx) { }; // Enter a parse tree produced by EParser#list_literal. EParserListener.prototype.enterList_literal = function(ctx) { }; // Exit a parse tree produced by EParser#list_literal. EParserListener.prototype.exitList_literal = function(ctx) { }; // Enter a parse tree produced by EParser#set_literal. EParserListener.prototype.enterSet_literal = function(ctx) { }; // Exit a parse tree produced by EParser#set_literal. EParserListener.prototype.exitSet_literal = function(ctx) { }; // Enter a parse tree produced by EParser#expression_list. EParserListener.prototype.enterExpression_list = function(ctx) { }; // Exit a parse tree produced by EParser#expression_list. EParserListener.prototype.exitExpression_list = function(ctx) { }; // Enter a parse tree produced by EParser#range_literal. EParserListener.prototype.enterRange_literal = function(ctx) { }; // Exit a parse tree produced by EParser#range_literal. EParserListener.prototype.exitRange_literal = function(ctx) { }; // Enter a parse tree produced by EParser#IteratorType. EParserListener.prototype.enterIteratorType = function(ctx) { }; // Exit a parse tree produced by EParser#IteratorType. EParserListener.prototype.exitIteratorType = function(ctx) { }; // Enter a parse tree produced by EParser#SetType. EParserListener.prototype.enterSetType = function(ctx) { }; // Exit a parse tree produced by EParser#SetType. EParserListener.prototype.exitSetType = function(ctx) { }; // Enter a parse tree produced by EParser#ListType. EParserListener.prototype.enterListType = function(ctx) { }; // Exit a parse tree produced by EParser#ListType. EParserListener.prototype.exitListType = function(ctx) { }; // Enter a parse tree produced by EParser#DictType. EParserListener.prototype.enterDictType = function(ctx) { }; // Exit a parse tree produced by EParser#DictType. EParserListener.prototype.exitDictType = function(ctx) { }; // Enter a parse tree produced by EParser#CursorType. EParserListener.prototype.enterCursorType = function(ctx) { }; // Exit a parse tree produced by EParser#CursorType. EParserListener.prototype.exitCursorType = function(ctx) { }; // Enter a parse tree produced by EParser#PrimaryType. EParserListener.prototype.enterPrimaryType = function(ctx) { }; // Exit a parse tree produced by EParser#PrimaryType. EParserListener.prototype.exitPrimaryType = function(ctx) { }; // Enter a parse tree produced by EParser#NativeType. EParserListener.prototype.enterNativeType = function(ctx) { }; // Exit a parse tree produced by EParser#NativeType. EParserListener.prototype.exitNativeType = function(ctx) { }; // Enter a parse tree produced by EParser#CategoryType. EParserListener.prototype.enterCategoryType = function(ctx) { }; // Exit a parse tree produced by EParser#CategoryType. EParserListener.prototype.exitCategoryType = function(ctx) { }; // Enter a parse tree produced by EParser#BooleanType. EParserListener.prototype.enterBooleanType = function(ctx) { }; // Exit a parse tree produced by EParser#BooleanType. EParserListener.prototype.exitBooleanType = function(ctx) { }; // Enter a parse tree produced by EParser#CharacterType. EParserListener.prototype.enterCharacterType = function(ctx) { }; // Exit a parse tree produced by EParser#CharacterType. EParserListener.prototype.exitCharacterType = function(ctx) { }; // Enter a parse tree produced by EParser#TextType. EParserListener.prototype.enterTextType = function(ctx) { }; // Exit a parse tree produced by EParser#TextType. EParserListener.prototype.exitTextType = function(ctx) { }; // Enter a parse tree produced by EParser#ImageType. EParserListener.prototype.enterImageType = function(ctx) { }; // Exit a parse tree produced by EParser#ImageType. EParserListener.prototype.exitImageType = function(ctx) { }; // Enter a parse tree produced by EParser#IntegerType. EParserListener.prototype.enterIntegerType = function(ctx) { }; // Exit a parse tree produced by EParser#IntegerType. EParserListener.prototype.exitIntegerType = function(ctx) { }; // Enter a parse tree produced by EParser#DecimalType. EParserListener.prototype.enterDecimalType = function(ctx) { }; // Exit a parse tree produced by EParser#DecimalType. EParserListener.prototype.exitDecimalType = function(ctx) { }; // Enter a parse tree produced by EParser#DocumentType. EParserListener.prototype.enterDocumentType = function(ctx) { }; // Exit a parse tree produced by EParser#DocumentType. EParserListener.prototype.exitDocumentType = function(ctx) { }; // Enter a parse tree produced by EParser#DateType. EParserListener.prototype.enterDateType = function(ctx) { }; // Exit a parse tree produced by EParser#DateType. EParserListener.prototype.exitDateType = function(ctx) { }; // Enter a parse tree produced by EParser#DateTimeType. EParserListener.prototype.enterDateTimeType = function(ctx) { }; // Exit a parse tree produced by EParser#DateTimeType. EParserListener.prototype.exitDateTimeType = function(ctx) { }; // Enter a parse tree produced by EParser#TimeType. EParserListener.prototype.enterTimeType = function(ctx) { }; // Exit a parse tree produced by EParser#TimeType. EParserListener.prototype.exitTimeType = function(ctx) { }; // Enter a parse tree produced by EParser#PeriodType. EParserListener.prototype.enterPeriodType = function(ctx) { }; // Exit a parse tree produced by EParser#PeriodType. EParserListener.prototype.exitPeriodType = function(ctx) { }; // Enter a parse tree produced by EParser#VersionType. EParserListener.prototype.enterVersionType = function(ctx) { }; // Exit a parse tree produced by EParser#VersionType. EParserListener.prototype.exitVersionType = function(ctx) { }; // Enter a parse tree produced by EParser#CodeType. EParserListener.prototype.enterCodeType = function(ctx) { }; // Exit a parse tree produced by EParser#CodeType. EParserListener.prototype.exitCodeType = function(ctx) { }; // Enter a parse tree produced by EParser#BlobType. EParserListener.prototype.enterBlobType = function(ctx) { }; // Exit a parse tree produced by EParser#BlobType. EParserListener.prototype.exitBlobType = function(ctx) { }; // Enter a parse tree produced by EParser#UUIDType. EParserListener.prototype.enterUUIDType = function(ctx) { }; // Exit a parse tree produced by EParser#UUIDType. EParserListener.prototype.exitUUIDType = function(ctx) { }; // Enter a parse tree produced by EParser#HtmlType. EParserListener.prototype.enterHtmlType = function(ctx) { }; // Exit a parse tree produced by EParser#HtmlType. EParserListener.prototype.exitHtmlType = function(ctx) { }; // Enter a parse tree produced by EParser#category_type. EParserListener.prototype.enterCategory_type = function(ctx) { }; // Exit a parse tree produced by EParser#category_type. EParserListener.prototype.exitCategory_type = function(ctx) { }; // Enter a parse tree produced by EParser#mutable_category_type. EParserListener.prototype.enterMutable_category_type = function(ctx) { }; // Exit a parse tree produced by EParser#mutable_category_type. EParserListener.prototype.exitMutable_category_type = function(ctx) { }; // Enter a parse tree produced by EParser#code_type. EParserListener.prototype.enterCode_type = function(ctx) { }; // Exit a parse tree produced by EParser#code_type. EParserListener.prototype.exitCode_type = function(ctx) { }; // Enter a parse tree produced by EParser#ConcreteCategoryDeclaration. EParserListener.prototype.enterConcreteCategoryDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#ConcreteCategoryDeclaration. EParserListener.prototype.exitConcreteCategoryDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#NativeCategoryDeclaration. EParserListener.prototype.enterNativeCategoryDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#NativeCategoryDeclaration. EParserListener.prototype.exitNativeCategoryDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#SingletonCategoryDeclaration. EParserListener.prototype.enterSingletonCategoryDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#SingletonCategoryDeclaration. EParserListener.prototype.exitSingletonCategoryDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#ConcreteWidgetDeclaration. EParserListener.prototype.enterConcreteWidgetDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#ConcreteWidgetDeclaration. EParserListener.prototype.exitConcreteWidgetDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#NativeWidgetDeclaration. EParserListener.prototype.enterNativeWidgetDeclaration = function(ctx) { }; // Exit a parse tree produced by EParser#NativeWidgetDeclaration. EParserListener.prototype.exitNativeWidgetDeclaration = function(ctx) { }; // Enter a parse tree produced by EParser#type_identifier_list. EParserListener.prototype.enterType_identifier_list = function(ctx) { }; // Exit a parse tree produced by EParser#type_identifier_list. EParserListener.prototype.exitType_identifier_list = function(ctx) { }; // Enter a parse tree produced by EParser#method_identifier. EParserListener.prototype.enterMethod_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#method_identifier. EParserListener.prototype.exitMethod_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#identifier_or_keyword. EParserListener.prototype.enterIdentifier_or_keyword = function(ctx) { }; // Exit a parse tree produced by EParser#identifier_or_keyword. EParserListener.prototype.exitIdentifier_or_keyword = function(ctx) { }; // Enter a parse tree produced by EParser#nospace_hyphen_identifier_or_keyword. EParserListener.prototype.enterNospace_hyphen_identifier_or_keyword = function(ctx) { }; // Exit a parse tree produced by EParser#nospace_hyphen_identifier_or_keyword. EParserListener.prototype.exitNospace_hyphen_identifier_or_keyword = function(ctx) { }; // Enter a parse tree produced by EParser#nospace_identifier_or_keyword. EParserListener.prototype.enterNospace_identifier_or_keyword = function(ctx) { }; // Exit a parse tree produced by EParser#nospace_identifier_or_keyword. EParserListener.prototype.exitNospace_identifier_or_keyword = function(ctx) { }; // Enter a parse tree produced by EParser#VariableIdentifier. EParserListener.prototype.enterVariableIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#VariableIdentifier. EParserListener.prototype.exitVariableIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#TypeIdentifier. EParserListener.prototype.enterTypeIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#TypeIdentifier. EParserListener.prototype.exitTypeIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#SymbolIdentifier. EParserListener.prototype.enterSymbolIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#SymbolIdentifier. EParserListener.prototype.exitSymbolIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#variable_identifier. EParserListener.prototype.enterVariable_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#variable_identifier. EParserListener.prototype.exitVariable_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#attribute_identifier. EParserListener.prototype.enterAttribute_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#attribute_identifier. EParserListener.prototype.exitAttribute_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#type_identifier. EParserListener.prototype.enterType_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#type_identifier. EParserListener.prototype.exitType_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#symbol_identifier. EParserListener.prototype.enterSymbol_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#symbol_identifier. EParserListener.prototype.exitSymbol_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#any_identifier. EParserListener.prototype.enterAny_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#any_identifier. EParserListener.prototype.exitAny_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#argument_list. EParserListener.prototype.enterArgument_list = function(ctx) { }; // Exit a parse tree produced by EParser#argument_list. EParserListener.prototype.exitArgument_list = function(ctx) { }; // Enter a parse tree produced by EParser#CodeArgument. EParserListener.prototype.enterCodeArgument = function(ctx) { }; // Exit a parse tree produced by EParser#CodeArgument. EParserListener.prototype.exitCodeArgument = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorArgument. EParserListener.prototype.enterOperatorArgument = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorArgument. EParserListener.prototype.exitOperatorArgument = function(ctx) { }; // Enter a parse tree produced by EParser#operator_argument. EParserListener.prototype.enterOperator_argument = function(ctx) { }; // Exit a parse tree produced by EParser#operator_argument. EParserListener.prototype.exitOperator_argument = function(ctx) { }; // Enter a parse tree produced by EParser#named_argument. EParserListener.prototype.enterNamed_argument = function(ctx) { }; // Exit a parse tree produced by EParser#named_argument. EParserListener.prototype.exitNamed_argument = function(ctx) { }; // Enter a parse tree produced by EParser#code_argument. EParserListener.prototype.enterCode_argument = function(ctx) { }; // Exit a parse tree produced by EParser#code_argument. EParserListener.prototype.exitCode_argument = function(ctx) { }; // Enter a parse tree produced by EParser#category_or_any_type. EParserListener.prototype.enterCategory_or_any_type = function(ctx) { }; // Exit a parse tree produced by EParser#category_or_any_type. EParserListener.prototype.exitCategory_or_any_type = function(ctx) { }; // Enter a parse tree produced by EParser#AnyListType. EParserListener.prototype.enterAnyListType = function(ctx) { }; // Exit a parse tree produced by EParser#AnyListType. EParserListener.prototype.exitAnyListType = function(ctx) { }; // Enter a parse tree produced by EParser#AnyType. EParserListener.prototype.enterAnyType = function(ctx) { }; // Exit a parse tree produced by EParser#AnyType. EParserListener.prototype.exitAnyType = function(ctx) { }; // Enter a parse tree produced by EParser#AnyDictType. EParserListener.prototype.enterAnyDictType = function(ctx) { }; // Exit a parse tree produced by EParser#AnyDictType. EParserListener.prototype.exitAnyDictType = function(ctx) { }; // Enter a parse tree produced by EParser#member_method_declaration_list. EParserListener.prototype.enterMember_method_declaration_list = function(ctx) { }; // Exit a parse tree produced by EParser#member_method_declaration_list. EParserListener.prototype.exitMember_method_declaration_list = function(ctx) { }; // Enter a parse tree produced by EParser#member_method_declaration. EParserListener.prototype.enterMember_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#member_method_declaration. EParserListener.prototype.exitMember_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#native_member_method_declaration_list. EParserListener.prototype.enterNative_member_method_declaration_list = function(ctx) { }; // Exit a parse tree produced by EParser#native_member_method_declaration_list. EParserListener.prototype.exitNative_member_method_declaration_list = function(ctx) { }; // Enter a parse tree produced by EParser#native_member_method_declaration. EParserListener.prototype.enterNative_member_method_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#native_member_method_declaration. EParserListener.prototype.exitNative_member_method_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#JavaCategoryBinding. EParserListener.prototype.enterJavaCategoryBinding = function(ctx) { }; // Exit a parse tree produced by EParser#JavaCategoryBinding. EParserListener.prototype.exitJavaCategoryBinding = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpCategoryBinding. EParserListener.prototype.enterCSharpCategoryBinding = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpCategoryBinding. EParserListener.prototype.exitCSharpCategoryBinding = function(ctx) { }; // Enter a parse tree produced by EParser#Python2CategoryBinding. EParserListener.prototype.enterPython2CategoryBinding = function(ctx) { }; // Exit a parse tree produced by EParser#Python2CategoryBinding. EParserListener.prototype.exitPython2CategoryBinding = function(ctx) { }; // Enter a parse tree produced by EParser#Python3CategoryBinding. EParserListener.prototype.enterPython3CategoryBinding = function(ctx) { }; // Exit a parse tree produced by EParser#Python3CategoryBinding. EParserListener.prototype.exitPython3CategoryBinding = function(ctx) { }; // Enter a parse tree produced by EParser#JavaScriptCategoryBinding. EParserListener.prototype.enterJavaScriptCategoryBinding = function(ctx) { }; // Exit a parse tree produced by EParser#JavaScriptCategoryBinding. EParserListener.prototype.exitJavaScriptCategoryBinding = function(ctx) { }; // Enter a parse tree produced by EParser#python_category_binding. EParserListener.prototype.enterPython_category_binding = function(ctx) { }; // Exit a parse tree produced by EParser#python_category_binding. EParserListener.prototype.exitPython_category_binding = function(ctx) { }; // Enter a parse tree produced by EParser#python_module. EParserListener.prototype.enterPython_module = function(ctx) { }; // Exit a parse tree produced by EParser#python_module. EParserListener.prototype.exitPython_module = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_category_binding. EParserListener.prototype.enterJavascript_category_binding = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_category_binding. EParserListener.prototype.exitJavascript_category_binding = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_module. EParserListener.prototype.enterJavascript_module = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_module. EParserListener.prototype.exitJavascript_module = function(ctx) { }; // Enter a parse tree produced by EParser#variable_identifier_list. EParserListener.prototype.enterVariable_identifier_list = function(ctx) { }; // Exit a parse tree produced by EParser#variable_identifier_list. EParserListener.prototype.exitVariable_identifier_list = function(ctx) { }; // Enter a parse tree produced by EParser#attribute_identifier_list. EParserListener.prototype.enterAttribute_identifier_list = function(ctx) { }; // Exit a parse tree produced by EParser#attribute_identifier_list. EParserListener.prototype.exitAttribute_identifier_list = function(ctx) { }; // Enter a parse tree produced by EParser#method_declaration. EParserListener.prototype.enterMethod_declaration = function(ctx) { }; // Exit a parse tree produced by EParser#method_declaration. EParserListener.prototype.exitMethod_declaration = function(ctx) { }; // Enter a parse tree produced by EParser#comment_statement. EParserListener.prototype.enterComment_statement = function(ctx) { }; // Exit a parse tree produced by EParser#comment_statement. EParserListener.prototype.exitComment_statement = function(ctx) { }; // Enter a parse tree produced by EParser#native_statement_list. EParserListener.prototype.enterNative_statement_list = function(ctx) { }; // Exit a parse tree produced by EParser#native_statement_list. EParserListener.prototype.exitNative_statement_list = function(ctx) { }; // Enter a parse tree produced by EParser#JavaNativeStatement. EParserListener.prototype.enterJavaNativeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavaNativeStatement. EParserListener.prototype.exitJavaNativeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpNativeStatement. EParserListener.prototype.enterCSharpNativeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpNativeStatement. EParserListener.prototype.exitCSharpNativeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#Python2NativeStatement. EParserListener.prototype.enterPython2NativeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#Python2NativeStatement. EParserListener.prototype.exitPython2NativeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#Python3NativeStatement. EParserListener.prototype.enterPython3NativeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#Python3NativeStatement. EParserListener.prototype.exitPython3NativeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#JavaScriptNativeStatement. EParserListener.prototype.enterJavaScriptNativeStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavaScriptNativeStatement. EParserListener.prototype.exitJavaScriptNativeStatement = function(ctx) { }; // Enter a parse tree produced by EParser#python_native_statement. EParserListener.prototype.enterPython_native_statement = function(ctx) { }; // Exit a parse tree produced by EParser#python_native_statement. EParserListener.prototype.exitPython_native_statement = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_native_statement. EParserListener.prototype.enterJavascript_native_statement = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_native_statement. EParserListener.prototype.exitJavascript_native_statement = function(ctx) { }; // Enter a parse tree produced by EParser#statement_list. EParserListener.prototype.enterStatement_list = function(ctx) { }; // Exit a parse tree produced by EParser#statement_list. EParserListener.prototype.exitStatement_list = function(ctx) { }; // Enter a parse tree produced by EParser#assertion_list. EParserListener.prototype.enterAssertion_list = function(ctx) { }; // Exit a parse tree produced by EParser#assertion_list. EParserListener.prototype.exitAssertion_list = function(ctx) { }; // Enter a parse tree produced by EParser#switch_case_statement_list. EParserListener.prototype.enterSwitch_case_statement_list = function(ctx) { }; // Exit a parse tree produced by EParser#switch_case_statement_list. EParserListener.prototype.exitSwitch_case_statement_list = function(ctx) { }; // Enter a parse tree produced by EParser#catch_statement_list. EParserListener.prototype.enterCatch_statement_list = function(ctx) { }; // Exit a parse tree produced by EParser#catch_statement_list. EParserListener.prototype.exitCatch_statement_list = function(ctx) { }; // Enter a parse tree produced by EParser#LiteralRangeLiteral. EParserListener.prototype.enterLiteralRangeLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#LiteralRangeLiteral. EParserListener.prototype.exitLiteralRangeLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#LiteralListLiteral. EParserListener.prototype.enterLiteralListLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#LiteralListLiteral. EParserListener.prototype.exitLiteralListLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#LiteralSetLiteral. EParserListener.prototype.enterLiteralSetLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#LiteralSetLiteral. EParserListener.prototype.exitLiteralSetLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#MinIntegerLiteral. EParserListener.prototype.enterMinIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#MinIntegerLiteral. EParserListener.prototype.exitMinIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#MaxIntegerLiteral. EParserListener.prototype.enterMaxIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#MaxIntegerLiteral. EParserListener.prototype.exitMaxIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#IntegerLiteral. EParserListener.prototype.enterIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#IntegerLiteral. EParserListener.prototype.exitIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#HexadecimalLiteral. EParserListener.prototype.enterHexadecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#HexadecimalLiteral. EParserListener.prototype.exitHexadecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#CharacterLiteral. EParserListener.prototype.enterCharacterLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CharacterLiteral. EParserListener.prototype.exitCharacterLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#DateLiteral. EParserListener.prototype.enterDateLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#DateLiteral. EParserListener.prototype.exitDateLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#TimeLiteral. EParserListener.prototype.enterTimeLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#TimeLiteral. EParserListener.prototype.exitTimeLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#TextLiteral. EParserListener.prototype.enterTextLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#TextLiteral. EParserListener.prototype.exitTextLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#DecimalLiteral. EParserListener.prototype.enterDecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#DecimalLiteral. EParserListener.prototype.exitDecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#DateTimeLiteral. EParserListener.prototype.enterDateTimeLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#DateTimeLiteral. EParserListener.prototype.exitDateTimeLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#BooleanLiteral. EParserListener.prototype.enterBooleanLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#BooleanLiteral. EParserListener.prototype.exitBooleanLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#PeriodLiteral. EParserListener.prototype.enterPeriodLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PeriodLiteral. EParserListener.prototype.exitPeriodLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#VersionLiteral. EParserListener.prototype.enterVersionLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#VersionLiteral. EParserListener.prototype.exitVersionLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#UUIDLiteral. EParserListener.prototype.enterUUIDLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#UUIDLiteral. EParserListener.prototype.exitUUIDLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#NullLiteral. EParserListener.prototype.enterNullLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#NullLiteral. EParserListener.prototype.exitNullLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#literal_list_literal. EParserListener.prototype.enterLiteral_list_literal = function(ctx) { }; // Exit a parse tree produced by EParser#literal_list_literal. EParserListener.prototype.exitLiteral_list_literal = function(ctx) { }; // Enter a parse tree produced by EParser#this_expression. EParserListener.prototype.enterThis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#this_expression. EParserListener.prototype.exitThis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#parenthesis_expression. EParserListener.prototype.enterParenthesis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#parenthesis_expression. EParserListener.prototype.exitParenthesis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#literal_expression. EParserListener.prototype.enterLiteral_expression = function(ctx) { }; // Exit a parse tree produced by EParser#literal_expression. EParserListener.prototype.exitLiteral_expression = function(ctx) { }; // Enter a parse tree produced by EParser#collection_literal. EParserListener.prototype.enterCollection_literal = function(ctx) { }; // Exit a parse tree produced by EParser#collection_literal. EParserListener.prototype.exitCollection_literal = function(ctx) { }; // Enter a parse tree produced by EParser#tuple_literal. EParserListener.prototype.enterTuple_literal = function(ctx) { }; // Exit a parse tree produced by EParser#tuple_literal. EParserListener.prototype.exitTuple_literal = function(ctx) { }; // Enter a parse tree produced by EParser#dict_literal. EParserListener.prototype.enterDict_literal = function(ctx) { }; // Exit a parse tree produced by EParser#dict_literal. EParserListener.prototype.exitDict_literal = function(ctx) { }; // Enter a parse tree produced by EParser#document_literal. EParserListener.prototype.enterDocument_literal = function(ctx) { }; // Exit a parse tree produced by EParser#document_literal. EParserListener.prototype.exitDocument_literal = function(ctx) { }; // Enter a parse tree produced by EParser#expression_tuple. EParserListener.prototype.enterExpression_tuple = function(ctx) { }; // Exit a parse tree produced by EParser#expression_tuple. EParserListener.prototype.exitExpression_tuple = function(ctx) { }; // Enter a parse tree produced by EParser#dict_entry_list. EParserListener.prototype.enterDict_entry_list = function(ctx) { }; // Exit a parse tree produced by EParser#dict_entry_list. EParserListener.prototype.exitDict_entry_list = function(ctx) { }; // Enter a parse tree produced by EParser#dict_entry. EParserListener.prototype.enterDict_entry = function(ctx) { }; // Exit a parse tree produced by EParser#dict_entry. EParserListener.prototype.exitDict_entry = function(ctx) { }; // Enter a parse tree produced by EParser#DictKeyIdentifier. EParserListener.prototype.enterDictKeyIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#DictKeyIdentifier. EParserListener.prototype.exitDictKeyIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#DictKeyText. EParserListener.prototype.enterDictKeyText = function(ctx) { }; // Exit a parse tree produced by EParser#DictKeyText. EParserListener.prototype.exitDictKeyText = function(ctx) { }; // Enter a parse tree produced by EParser#SliceFirstAndLast. EParserListener.prototype.enterSliceFirstAndLast = function(ctx) { }; // Exit a parse tree produced by EParser#SliceFirstAndLast. EParserListener.prototype.exitSliceFirstAndLast = function(ctx) { }; // Enter a parse tree produced by EParser#SliceFirstOnly. EParserListener.prototype.enterSliceFirstOnly = function(ctx) { }; // Exit a parse tree produced by EParser#SliceFirstOnly. EParserListener.prototype.exitSliceFirstOnly = function(ctx) { }; // Enter a parse tree produced by EParser#SliceLastOnly. EParserListener.prototype.enterSliceLastOnly = function(ctx) { }; // Exit a parse tree produced by EParser#SliceLastOnly. EParserListener.prototype.exitSliceLastOnly = function(ctx) { }; // Enter a parse tree produced by EParser#assign_variable_statement. EParserListener.prototype.enterAssign_variable_statement = function(ctx) { }; // Exit a parse tree produced by EParser#assign_variable_statement. EParserListener.prototype.exitAssign_variable_statement = function(ctx) { }; // Enter a parse tree produced by EParser#ChildInstance. EParserListener.prototype.enterChildInstance = function(ctx) { }; // Exit a parse tree produced by EParser#ChildInstance. EParserListener.prototype.exitChildInstance = function(ctx) { }; // Enter a parse tree produced by EParser#RootInstance. EParserListener.prototype.enterRootInstance = function(ctx) { }; // Exit a parse tree produced by EParser#RootInstance. EParserListener.prototype.exitRootInstance = function(ctx) { }; // Enter a parse tree produced by EParser#IsATypeExpression. EParserListener.prototype.enterIsATypeExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IsATypeExpression. EParserListener.prototype.exitIsATypeExpression = function(ctx) { }; // Enter a parse tree produced by EParser#IsOtherExpression. EParserListener.prototype.enterIsOtherExpression = function(ctx) { }; // Exit a parse tree produced by EParser#IsOtherExpression. EParserListener.prototype.exitIsOtherExpression = function(ctx) { }; // Enter a parse tree produced by EParser#read_all_expression. EParserListener.prototype.enterRead_all_expression = function(ctx) { }; // Exit a parse tree produced by EParser#read_all_expression. EParserListener.prototype.exitRead_all_expression = function(ctx) { }; // Enter a parse tree produced by EParser#read_one_expression. EParserListener.prototype.enterRead_one_expression = function(ctx) { }; // Exit a parse tree produced by EParser#read_one_expression. EParserListener.prototype.exitRead_one_expression = function(ctx) { }; // Enter a parse tree produced by EParser#order_by_list. EParserListener.prototype.enterOrder_by_list = function(ctx) { }; // Exit a parse tree produced by EParser#order_by_list. EParserListener.prototype.exitOrder_by_list = function(ctx) { }; // Enter a parse tree produced by EParser#order_by. EParserListener.prototype.enterOrder_by = function(ctx) { }; // Exit a parse tree produced by EParser#order_by. EParserListener.prototype.exitOrder_by = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorPlus. EParserListener.prototype.enterOperatorPlus = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorPlus. EParserListener.prototype.exitOperatorPlus = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorMinus. EParserListener.prototype.enterOperatorMinus = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorMinus. EParserListener.prototype.exitOperatorMinus = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorMultiply. EParserListener.prototype.enterOperatorMultiply = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorMultiply. EParserListener.prototype.exitOperatorMultiply = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorDivide. EParserListener.prototype.enterOperatorDivide = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorDivide. EParserListener.prototype.exitOperatorDivide = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorIDivide. EParserListener.prototype.enterOperatorIDivide = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorIDivide. EParserListener.prototype.exitOperatorIDivide = function(ctx) { }; // Enter a parse tree produced by EParser#OperatorModulo. EParserListener.prototype.enterOperatorModulo = function(ctx) { }; // Exit a parse tree produced by EParser#OperatorModulo. EParserListener.prototype.exitOperatorModulo = function(ctx) { }; // Enter a parse tree produced by EParser#keyword. EParserListener.prototype.enterKeyword = function(ctx) { }; // Exit a parse tree produced by EParser#keyword. EParserListener.prototype.exitKeyword = function(ctx) { }; // Enter a parse tree produced by EParser#new_token. EParserListener.prototype.enterNew_token = function(ctx) { }; // Exit a parse tree produced by EParser#new_token. EParserListener.prototype.exitNew_token = function(ctx) { }; // Enter a parse tree produced by EParser#key_token. EParserListener.prototype.enterKey_token = function(ctx) { }; // Exit a parse tree produced by EParser#key_token. EParserListener.prototype.exitKey_token = function(ctx) { }; // Enter a parse tree produced by EParser#module_token. EParserListener.prototype.enterModule_token = function(ctx) { }; // Exit a parse tree produced by EParser#module_token. EParserListener.prototype.exitModule_token = function(ctx) { }; // Enter a parse tree produced by EParser#value_token. EParserListener.prototype.enterValue_token = function(ctx) { }; // Exit a parse tree produced by EParser#value_token. EParserListener.prototype.exitValue_token = function(ctx) { }; // Enter a parse tree produced by EParser#symbols_token. EParserListener.prototype.enterSymbols_token = function(ctx) { }; // Exit a parse tree produced by EParser#symbols_token. EParserListener.prototype.exitSymbols_token = function(ctx) { }; // Enter a parse tree produced by EParser#assign. EParserListener.prototype.enterAssign = function(ctx) { }; // Exit a parse tree produced by EParser#assign. EParserListener.prototype.exitAssign = function(ctx) { }; // Enter a parse tree produced by EParser#multiply. EParserListener.prototype.enterMultiply = function(ctx) { }; // Exit a parse tree produced by EParser#multiply. EParserListener.prototype.exitMultiply = function(ctx) { }; // Enter a parse tree produced by EParser#divide. EParserListener.prototype.enterDivide = function(ctx) { }; // Exit a parse tree produced by EParser#divide. EParserListener.prototype.exitDivide = function(ctx) { }; // Enter a parse tree produced by EParser#idivide. EParserListener.prototype.enterIdivide = function(ctx) { }; // Exit a parse tree produced by EParser#idivide. EParserListener.prototype.exitIdivide = function(ctx) { }; // Enter a parse tree produced by EParser#modulo. EParserListener.prototype.enterModulo = function(ctx) { }; // Exit a parse tree produced by EParser#modulo. EParserListener.prototype.exitModulo = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptReturnStatement. EParserListener.prototype.enterJavascriptReturnStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptReturnStatement. EParserListener.prototype.exitJavascriptReturnStatement = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptStatement. EParserListener.prototype.enterJavascriptStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptStatement. EParserListener.prototype.exitJavascriptStatement = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptSelectorExpression. EParserListener.prototype.enterJavascriptSelectorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptSelectorExpression. EParserListener.prototype.exitJavascriptSelectorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptPrimaryExpression. EParserListener.prototype.enterJavascriptPrimaryExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptPrimaryExpression. EParserListener.prototype.exitJavascriptPrimaryExpression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_primary_expression. EParserListener.prototype.enterJavascript_primary_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_primary_expression. EParserListener.prototype.exitJavascript_primary_expression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_this_expression. EParserListener.prototype.enterJavascript_this_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_this_expression. EParserListener.prototype.exitJavascript_this_expression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_new_expression. EParserListener.prototype.enterJavascript_new_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_new_expression. EParserListener.prototype.exitJavascript_new_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaScriptMethodExpression. EParserListener.prototype.enterJavaScriptMethodExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaScriptMethodExpression. EParserListener.prototype.exitJavaScriptMethodExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaScriptMemberExpression. EParserListener.prototype.enterJavaScriptMemberExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaScriptMemberExpression. EParserListener.prototype.exitJavaScriptMemberExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaScriptItemExpression. EParserListener.prototype.enterJavaScriptItemExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaScriptItemExpression. EParserListener.prototype.exitJavaScriptItemExpression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_method_expression. EParserListener.prototype.enterJavascript_method_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_method_expression. EParserListener.prototype.exitJavascript_method_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptArgumentList. EParserListener.prototype.enterJavascriptArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptArgumentList. EParserListener.prototype.exitJavascriptArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptArgumentListItem. EParserListener.prototype.enterJavascriptArgumentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptArgumentListItem. EParserListener.prototype.exitJavascriptArgumentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_item_expression. EParserListener.prototype.enterJavascript_item_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_item_expression. EParserListener.prototype.exitJavascript_item_expression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_parenthesis_expression. EParserListener.prototype.enterJavascript_parenthesis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_parenthesis_expression. EParserListener.prototype.exitJavascript_parenthesis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_identifier_expression. EParserListener.prototype.enterJavascript_identifier_expression = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_identifier_expression. EParserListener.prototype.exitJavascript_identifier_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptIntegerLiteral. EParserListener.prototype.enterJavascriptIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptIntegerLiteral. EParserListener.prototype.exitJavascriptIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptDecimalLiteral. EParserListener.prototype.enterJavascriptDecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptDecimalLiteral. EParserListener.prototype.exitJavascriptDecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptTextLiteral. EParserListener.prototype.enterJavascriptTextLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptTextLiteral. EParserListener.prototype.exitJavascriptTextLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptBooleanLiteral. EParserListener.prototype.enterJavascriptBooleanLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptBooleanLiteral. EParserListener.prototype.exitJavascriptBooleanLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavascriptCharacterLiteral. EParserListener.prototype.enterJavascriptCharacterLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavascriptCharacterLiteral. EParserListener.prototype.exitJavascriptCharacterLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#javascript_identifier. EParserListener.prototype.enterJavascript_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#javascript_identifier. EParserListener.prototype.exitJavascript_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#PythonReturnStatement. EParserListener.prototype.enterPythonReturnStatement = function(ctx) { }; // Exit a parse tree produced by EParser#PythonReturnStatement. EParserListener.prototype.exitPythonReturnStatement = function(ctx) { }; // Enter a parse tree produced by EParser#PythonStatement. EParserListener.prototype.enterPythonStatement = function(ctx) { }; // Exit a parse tree produced by EParser#PythonStatement. EParserListener.prototype.exitPythonStatement = function(ctx) { }; // Enter a parse tree produced by EParser#PythonSelectorExpression. EParserListener.prototype.enterPythonSelectorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonSelectorExpression. EParserListener.prototype.exitPythonSelectorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonPrimaryExpression. EParserListener.prototype.enterPythonPrimaryExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonPrimaryExpression. EParserListener.prototype.exitPythonPrimaryExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonSelfExpression. EParserListener.prototype.enterPythonSelfExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonSelfExpression. EParserListener.prototype.exitPythonSelfExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonParenthesisExpression. EParserListener.prototype.enterPythonParenthesisExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonParenthesisExpression. EParserListener.prototype.exitPythonParenthesisExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonIdentifierExpression. EParserListener.prototype.enterPythonIdentifierExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonIdentifierExpression. EParserListener.prototype.exitPythonIdentifierExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonLiteralExpression. EParserListener.prototype.enterPythonLiteralExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonLiteralExpression. EParserListener.prototype.exitPythonLiteralExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonGlobalMethodExpression. EParserListener.prototype.enterPythonGlobalMethodExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonGlobalMethodExpression. EParserListener.prototype.exitPythonGlobalMethodExpression = function(ctx) { }; // Enter a parse tree produced by EParser#python_self_expression. EParserListener.prototype.enterPython_self_expression = function(ctx) { }; // Exit a parse tree produced by EParser#python_self_expression. EParserListener.prototype.exitPython_self_expression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonMethodExpression. EParserListener.prototype.enterPythonMethodExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonMethodExpression. EParserListener.prototype.exitPythonMethodExpression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonItemExpression. EParserListener.prototype.enterPythonItemExpression = function(ctx) { }; // Exit a parse tree produced by EParser#PythonItemExpression. EParserListener.prototype.exitPythonItemExpression = function(ctx) { }; // Enter a parse tree produced by EParser#python_method_expression. EParserListener.prototype.enterPython_method_expression = function(ctx) { }; // Exit a parse tree produced by EParser#python_method_expression. EParserListener.prototype.exitPython_method_expression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonOrdinalOnlyArgumentList. EParserListener.prototype.enterPythonOrdinalOnlyArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#PythonOrdinalOnlyArgumentList. EParserListener.prototype.exitPythonOrdinalOnlyArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#PythonNamedOnlyArgumentList. EParserListener.prototype.enterPythonNamedOnlyArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#PythonNamedOnlyArgumentList. EParserListener.prototype.exitPythonNamedOnlyArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#PythonArgumentList. EParserListener.prototype.enterPythonArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#PythonArgumentList. EParserListener.prototype.exitPythonArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#PythonOrdinalArgumentList. EParserListener.prototype.enterPythonOrdinalArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#PythonOrdinalArgumentList. EParserListener.prototype.exitPythonOrdinalArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#PythonOrdinalArgumentListItem. EParserListener.prototype.enterPythonOrdinalArgumentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#PythonOrdinalArgumentListItem. EParserListener.prototype.exitPythonOrdinalArgumentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#PythonNamedArgumentList. EParserListener.prototype.enterPythonNamedArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#PythonNamedArgumentList. EParserListener.prototype.exitPythonNamedArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#PythonNamedArgumentListItem. EParserListener.prototype.enterPythonNamedArgumentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#PythonNamedArgumentListItem. EParserListener.prototype.exitPythonNamedArgumentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#python_parenthesis_expression. EParserListener.prototype.enterPython_parenthesis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#python_parenthesis_expression. EParserListener.prototype.exitPython_parenthesis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#PythonChildIdentifier. EParserListener.prototype.enterPythonChildIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#PythonChildIdentifier. EParserListener.prototype.exitPythonChildIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#PythonPromptoIdentifier. EParserListener.prototype.enterPythonPromptoIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#PythonPromptoIdentifier. EParserListener.prototype.exitPythonPromptoIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#PythonIdentifier. EParserListener.prototype.enterPythonIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#PythonIdentifier. EParserListener.prototype.exitPythonIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#PythonIntegerLiteral. EParserListener.prototype.enterPythonIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PythonIntegerLiteral. EParserListener.prototype.exitPythonIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#PythonDecimalLiteral. EParserListener.prototype.enterPythonDecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PythonDecimalLiteral. EParserListener.prototype.exitPythonDecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#PythonTextLiteral. EParserListener.prototype.enterPythonTextLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PythonTextLiteral. EParserListener.prototype.exitPythonTextLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#PythonBooleanLiteral. EParserListener.prototype.enterPythonBooleanLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PythonBooleanLiteral. EParserListener.prototype.exitPythonBooleanLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#PythonCharacterLiteral. EParserListener.prototype.enterPythonCharacterLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#PythonCharacterLiteral. EParserListener.prototype.exitPythonCharacterLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#python_identifier. EParserListener.prototype.enterPython_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#python_identifier. EParserListener.prototype.exitPython_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#JavaReturnStatement. EParserListener.prototype.enterJavaReturnStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavaReturnStatement. EParserListener.prototype.exitJavaReturnStatement = function(ctx) { }; // Enter a parse tree produced by EParser#JavaStatement. EParserListener.prototype.enterJavaStatement = function(ctx) { }; // Exit a parse tree produced by EParser#JavaStatement. EParserListener.prototype.exitJavaStatement = function(ctx) { }; // Enter a parse tree produced by EParser#JavaSelectorExpression. EParserListener.prototype.enterJavaSelectorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaSelectorExpression. EParserListener.prototype.exitJavaSelectorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaPrimaryExpression. EParserListener.prototype.enterJavaPrimaryExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaPrimaryExpression. EParserListener.prototype.exitJavaPrimaryExpression = function(ctx) { }; // Enter a parse tree produced by EParser#java_primary_expression. EParserListener.prototype.enterJava_primary_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_primary_expression. EParserListener.prototype.exitJava_primary_expression = function(ctx) { }; // Enter a parse tree produced by EParser#java_this_expression. EParserListener.prototype.enterJava_this_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_this_expression. EParserListener.prototype.exitJava_this_expression = function(ctx) { }; // Enter a parse tree produced by EParser#java_new_expression. EParserListener.prototype.enterJava_new_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_new_expression. EParserListener.prototype.exitJava_new_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaMethodExpression. EParserListener.prototype.enterJavaMethodExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaMethodExpression. EParserListener.prototype.exitJavaMethodExpression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaItemExpression. EParserListener.prototype.enterJavaItemExpression = function(ctx) { }; // Exit a parse tree produced by EParser#JavaItemExpression. EParserListener.prototype.exitJavaItemExpression = function(ctx) { }; // Enter a parse tree produced by EParser#java_method_expression. EParserListener.prototype.enterJava_method_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_method_expression. EParserListener.prototype.exitJava_method_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaArgumentListItem. EParserListener.prototype.enterJavaArgumentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#JavaArgumentListItem. EParserListener.prototype.exitJavaArgumentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#JavaArgumentList. EParserListener.prototype.enterJavaArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#JavaArgumentList. EParserListener.prototype.exitJavaArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#java_item_expression. EParserListener.prototype.enterJava_item_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_item_expression. EParserListener.prototype.exitJava_item_expression = function(ctx) { }; // Enter a parse tree produced by EParser#java_parenthesis_expression. EParserListener.prototype.enterJava_parenthesis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#java_parenthesis_expression. EParserListener.prototype.exitJava_parenthesis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JavaIdentifier. EParserListener.prototype.enterJavaIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#JavaIdentifier. EParserListener.prototype.exitJavaIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#JavaChildIdentifier. EParserListener.prototype.enterJavaChildIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#JavaChildIdentifier. EParserListener.prototype.exitJavaChildIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#JavaClassIdentifier. EParserListener.prototype.enterJavaClassIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#JavaClassIdentifier. EParserListener.prototype.exitJavaClassIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#JavaChildClassIdentifier. EParserListener.prototype.enterJavaChildClassIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#JavaChildClassIdentifier. EParserListener.prototype.exitJavaChildClassIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#JavaIntegerLiteral. EParserListener.prototype.enterJavaIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavaIntegerLiteral. EParserListener.prototype.exitJavaIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavaDecimalLiteral. EParserListener.prototype.enterJavaDecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavaDecimalLiteral. EParserListener.prototype.exitJavaDecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavaTextLiteral. EParserListener.prototype.enterJavaTextLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavaTextLiteral. EParserListener.prototype.exitJavaTextLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavaBooleanLiteral. EParserListener.prototype.enterJavaBooleanLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavaBooleanLiteral. EParserListener.prototype.exitJavaBooleanLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JavaCharacterLiteral. EParserListener.prototype.enterJavaCharacterLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JavaCharacterLiteral. EParserListener.prototype.exitJavaCharacterLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#java_identifier. EParserListener.prototype.enterJava_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#java_identifier. EParserListener.prototype.exitJava_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpReturnStatement. EParserListener.prototype.enterCSharpReturnStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpReturnStatement. EParserListener.prototype.exitCSharpReturnStatement = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpStatement. EParserListener.prototype.enterCSharpStatement = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpStatement. EParserListener.prototype.exitCSharpStatement = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpSelectorExpression. EParserListener.prototype.enterCSharpSelectorExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpSelectorExpression. EParserListener.prototype.exitCSharpSelectorExpression = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpPrimaryExpression. EParserListener.prototype.enterCSharpPrimaryExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpPrimaryExpression. EParserListener.prototype.exitCSharpPrimaryExpression = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_primary_expression. EParserListener.prototype.enterCsharp_primary_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_primary_expression. EParserListener.prototype.exitCsharp_primary_expression = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_this_expression. EParserListener.prototype.enterCsharp_this_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_this_expression. EParserListener.prototype.exitCsharp_this_expression = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_new_expression. EParserListener.prototype.enterCsharp_new_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_new_expression. EParserListener.prototype.exitCsharp_new_expression = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpMethodExpression. EParserListener.prototype.enterCSharpMethodExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpMethodExpression. EParserListener.prototype.exitCSharpMethodExpression = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpItemExpression. EParserListener.prototype.enterCSharpItemExpression = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpItemExpression. EParserListener.prototype.exitCSharpItemExpression = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_method_expression. EParserListener.prototype.enterCsharp_method_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_method_expression. EParserListener.prototype.exitCsharp_method_expression = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpArgumentList. EParserListener.prototype.enterCSharpArgumentList = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpArgumentList. EParserListener.prototype.exitCSharpArgumentList = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpArgumentListItem. EParserListener.prototype.enterCSharpArgumentListItem = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpArgumentListItem. EParserListener.prototype.exitCSharpArgumentListItem = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_item_expression. EParserListener.prototype.enterCsharp_item_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_item_expression. EParserListener.prototype.exitCsharp_item_expression = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_parenthesis_expression. EParserListener.prototype.enterCsharp_parenthesis_expression = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_parenthesis_expression. EParserListener.prototype.exitCsharp_parenthesis_expression = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpIdentifier. EParserListener.prototype.enterCSharpIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpIdentifier. EParserListener.prototype.exitCSharpIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpChildIdentifier. EParserListener.prototype.enterCSharpChildIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpChildIdentifier. EParserListener.prototype.exitCSharpChildIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpPromptoIdentifier. EParserListener.prototype.enterCSharpPromptoIdentifier = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpPromptoIdentifier. EParserListener.prototype.exitCSharpPromptoIdentifier = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpIntegerLiteral. EParserListener.prototype.enterCSharpIntegerLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpIntegerLiteral. EParserListener.prototype.exitCSharpIntegerLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpDecimalLiteral. EParserListener.prototype.enterCSharpDecimalLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpDecimalLiteral. EParserListener.prototype.exitCSharpDecimalLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpTextLiteral. EParserListener.prototype.enterCSharpTextLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpTextLiteral. EParserListener.prototype.exitCSharpTextLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpBooleanLiteral. EParserListener.prototype.enterCSharpBooleanLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpBooleanLiteral. EParserListener.prototype.exitCSharpBooleanLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#CSharpCharacterLiteral. EParserListener.prototype.enterCSharpCharacterLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#CSharpCharacterLiteral. EParserListener.prototype.exitCSharpCharacterLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#csharp_identifier. EParserListener.prototype.enterCsharp_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#csharp_identifier. EParserListener.prototype.exitCsharp_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_expression. EParserListener.prototype.enterJsx_expression = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_expression. EParserListener.prototype.exitJsx_expression = function(ctx) { }; // Enter a parse tree produced by EParser#JsxSelfClosing. EParserListener.prototype.enterJsxSelfClosing = function(ctx) { }; // Exit a parse tree produced by EParser#JsxSelfClosing. EParserListener.prototype.exitJsxSelfClosing = function(ctx) { }; // Enter a parse tree produced by EParser#JsxElement. EParserListener.prototype.enterJsxElement = function(ctx) { }; // Exit a parse tree produced by EParser#JsxElement. EParserListener.prototype.exitJsxElement = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_fragment. EParserListener.prototype.enterJsx_fragment = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_fragment. EParserListener.prototype.exitJsx_fragment = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_fragment_start. EParserListener.prototype.enterJsx_fragment_start = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_fragment_start. EParserListener.prototype.exitJsx_fragment_start = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_fragment_end. EParserListener.prototype.enterJsx_fragment_end = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_fragment_end. EParserListener.prototype.exitJsx_fragment_end = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_self_closing. EParserListener.prototype.enterJsx_self_closing = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_self_closing. EParserListener.prototype.exitJsx_self_closing = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_opening. EParserListener.prototype.enterJsx_opening = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_opening. EParserListener.prototype.exitJsx_opening = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_closing. EParserListener.prototype.enterJsx_closing = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_closing. EParserListener.prototype.exitJsx_closing = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_element_name. EParserListener.prototype.enterJsx_element_name = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_element_name. EParserListener.prototype.exitJsx_element_name = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_identifier. EParserListener.prototype.enterJsx_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_identifier. EParserListener.prototype.exitJsx_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_attribute. EParserListener.prototype.enterJsx_attribute = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_attribute. EParserListener.prototype.exitJsx_attribute = function(ctx) { }; // Enter a parse tree produced by EParser#JsxLiteral. EParserListener.prototype.enterJsxLiteral = function(ctx) { }; // Exit a parse tree produced by EParser#JsxLiteral. EParserListener.prototype.exitJsxLiteral = function(ctx) { }; // Enter a parse tree produced by EParser#JsxValue. EParserListener.prototype.enterJsxValue = function(ctx) { }; // Exit a parse tree produced by EParser#JsxValue. EParserListener.prototype.exitJsxValue = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_children. EParserListener.prototype.enterJsx_children = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_children. EParserListener.prototype.exitJsx_children = function(ctx) { }; // Enter a parse tree produced by EParser#JsxText. EParserListener.prototype.enterJsxText = function(ctx) { }; // Exit a parse tree produced by EParser#JsxText. EParserListener.prototype.exitJsxText = function(ctx) { }; // Enter a parse tree produced by EParser#JsxChild. EParserListener.prototype.enterJsxChild = function(ctx) { }; // Exit a parse tree produced by EParser#JsxChild. EParserListener.prototype.exitJsxChild = function(ctx) { }; // Enter a parse tree produced by EParser#JsxCode. EParserListener.prototype.enterJsxCode = function(ctx) { }; // Exit a parse tree produced by EParser#JsxCode. EParserListener.prototype.exitJsxCode = function(ctx) { }; // Enter a parse tree produced by EParser#jsx_text. EParserListener.prototype.enterJsx_text = function(ctx) { }; // Exit a parse tree produced by EParser#jsx_text. EParserListener.prototype.exitJsx_text = function(ctx) { }; // Enter a parse tree produced by EParser#css_expression. EParserListener.prototype.enterCss_expression = function(ctx) { }; // Exit a parse tree produced by EParser#css_expression. EParserListener.prototype.exitCss_expression = function(ctx) { }; // Enter a parse tree produced by EParser#css_field. EParserListener.prototype.enterCss_field = function(ctx) { }; // Exit a parse tree produced by EParser#css_field. EParserListener.prototype.exitCss_field = function(ctx) { }; // Enter a parse tree produced by EParser#css_identifier. EParserListener.prototype.enterCss_identifier = function(ctx) { }; // Exit a parse tree produced by EParser#css_identifier. EParserListener.prototype.exitCss_identifier = function(ctx) { }; // Enter a parse tree produced by EParser#CssValue. EParserListener.prototype.enterCssValue = function(ctx) { }; // Exit a parse tree produced by EParser#CssValue. EParserListener.prototype.exitCssValue = function(ctx) { }; // Enter a parse tree produced by EParser#CssText. EParserListener.prototype.enterCssText = function(ctx) { }; // Exit a parse tree produced by EParser#CssText. EParserListener.prototype.exitCssText = function(ctx) { }; // Enter a parse tree produced by EParser#css_text. EParserListener.prototype.enterCss_text = function(ctx) { }; // Exit a parse tree produced by EParser#css_text. EParserListener.prototype.exitCss_text = function(ctx) { }; exports.EParserListener = EParserListener; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { var Parser = __webpack_require__(1).Parser; function AbstractParser(input) { Parser.call(this, input); return this; } AbstractParser.prototype = Object.create(Parser.prototype); AbstractParser.prototype.constructor = AbstractParser; AbstractParser.prototype.isText = function(token, text) { return text === token.text; }; AbstractParser.prototype.was = function(type) { return this.lastHiddenTokenType()===type; }; AbstractParser.prototype.wasNot = function(type) { return this.lastHiddenTokenType()!==type; }; AbstractParser.prototype.wasNotWhiteSpace = function() { return this.lastHiddenTokenType()!==this["WS"]; }; AbstractParser.prototype.willBe = function(type) { return this.getTokenStream().LA(1)===type; }; AbstractParser.prototype.willNotBe = function(type) { return this.getTokenStream().LA(1)!==type; }; AbstractParser.prototype.nextHiddenTokenType = function() { var bts = this.getTokenStream(); var hidden = bts.getHiddenTokensToRight(bts.index-1); if(hidden===null || hidden.length===0) { return 0; } else { return hidden[0].type; } }; AbstractParser.prototype.willBeAOrAn = function() { return this.willBeText("a") || this.willBeText("an"); }; AbstractParser.prototype.willBeText = function(text) { return text===this.getTokenStream().LT(1).text; }; AbstractParser.prototype.lastHiddenTokenType = function() { var bts = this.getTokenStream(); var hidden = bts.getHiddenTokensToLeft(bts.index); if(hidden===null || hidden.length===0) { return 0; } else { return hidden[hidden.length-1].type; } }; AbstractParser.prototype.removeErrorListeners = function() { Parser.prototype.removeErrorListeners.call(this); this._input.tokenSource.removeErrorListeners(); // lexer }; AbstractParser.prototype.addErrorListener = function(listener) { Parser.prototype.addErrorListener.call(this, listener); this._input.tokenSource.addErrorListener(listener); // lexer }; exports.AbstractParser = AbstractParser; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { var argument = __webpack_require__(119); var constraint = __webpack_require__(130); var instance = __webpack_require__(160); var declaration = __webpack_require__(170); var expression = __webpack_require__(331); var javascript = __webpack_require__(386); var statement = __webpack_require__(428); var literal = __webpack_require__(459); var grammar = __webpack_require__(484); var value = __webpack_require__(494); var utils = __webpack_require__(50); var parser = __webpack_require__(499); var type = __webpack_require__(389); var jsx = __webpack_require__(508); var css = __webpack_require__(519); var java = __webpack_require__(525); var csharp = __webpack_require__(542); var python = __webpack_require__(558); var antlr4 = __webpack_require__(1); function EPromptoBuilder(eparser) { parser.EParserListener.call(this); this.input = eparser.getTokenStream(); this.path = eparser.path; this.nodeValues = {}; this.nextNodeId = 0; return this; } EPromptoBuilder.prototype = Object.create(parser.EParserListener.prototype); EPromptoBuilder.prototype.constructor = EPromptoBuilder; EPromptoBuilder.prototype.setNodeValue = function(node, value) { if(node["%id"]===undefined) node["%id"] = this.nextNodeId++; this.nodeValues[node["%id"]] = value; if(value instanceof parser.Section) { this.buildSection(node, value); } }; EPromptoBuilder.prototype.getNodeValue = function(node) { if(node==null || node===undefined || node["%id"]===null || node["%id"]===undefined) return null; else return this.nodeValues[node["%id"]]; }; EPromptoBuilder.prototype.getHiddenTokensBefore = function(token) { var hidden = this.input.getHiddenTokensToLeft(token.tokenIndex); return this.getHiddenTokensText(hidden); }; EPromptoBuilder.prototype.getHiddenTokensAfter = function(token) { if(token.tokenIndex<0) return null; var hidden = this.input.getHiddenTokensToRight(token.tokenIndex); return this.getHiddenTokensText(hidden); }; EPromptoBuilder.prototype.getHiddenTokensText = function(hidden) { if(hidden==null || hidden.length===0) return null; else return hidden.map(function(token) { return token.text; }).join(""); }; EPromptoBuilder.prototype.getJsxWhiteSpace = function(ctx) { var within = ctx.children==null ? null : ctx.children .filter(function(child) { return this.isNotIndent(child); } , this) .map(function(child) { return child.getText(); }, this) .join(""); if(within==null || within.length===0) return null; var before = this.getHiddenTokensBefore(ctx.start); if(before!=null) within = before + within; var after = this.getHiddenTokensAfter(ctx.stop); if(after!=null) within = within + after; return within; }; EPromptoBuilder.prototype.isNotIndent = function(tree) { return !tree.symbol || tree.symbol.type!=parser.EParser.INDENT; } EPromptoBuilder.prototype.readAnnotations = function(ctxs) { var annotations = ctxs.map(function (csc) { return this.getNodeValue(csc); }, this); return (annotations.length == 0) ? null : annotations; }; EPromptoBuilder.prototype.readComments = function(ctxs) { var comments = ctxs.map(function (csc) { return this.getNodeValue(csc); }, this); return (comments.length == 0) ? null : comments; }; EPromptoBuilder.prototype.exitIdentifierExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.UnresolvedIdentifier(exp)); }; EPromptoBuilder.prototype.exitTypeIdentifier = function(ctx) { var name = this.getNodeValue(ctx.type_identifier()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitMethodCallExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp1 || ctx.exp2); var args = this.getNodeValue(ctx.args); var call = new statement.UnresolvedCall(exp, args); this.setNodeValue(ctx, call); }; EPromptoBuilder.prototype.exitUnresolvedExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitUnresolvedIdentifier = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new expression.UnresolvedIdentifier(name)); }; EPromptoBuilder.prototype.exitUnresolvedSelector = function(ctx) { var parent = this.getNodeValue(ctx.parent); var selector = this.getNodeValue(ctx.selector); selector.parent = parent; this.setNodeValue(ctx, selector); }; EPromptoBuilder.prototype.exitUnresolved_selector = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new expression.MemberSelector(null, name)); }; EPromptoBuilder.prototype.exitUUIDLiteral = function(ctx) { this.setNodeValue(ctx, new literal.UUIDLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitUUIDType = function(ctx) { this.setNodeValue(ctx, type.UUIDType.instance); }; EPromptoBuilder.prototype.exitCommentStatement = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.comment_statement())); }; EPromptoBuilder.prototype.exitComment_statement = function(ctx) { this.setNodeValue(ctx, new statement.CommentStatement(ctx.getText())); }; EPromptoBuilder.prototype.exitBlob_expression = function(ctx) { var exp = this.getNodeValue(ctx.expression()); this.setNodeValue(ctx, new expression.BlobExpression(exp)); }; EPromptoBuilder.prototype.exitBlobExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitBlobType = function(ctx) { this.setNodeValue(ctx, type.BlobType.instance); }; EPromptoBuilder.prototype.exitBooleanLiteral = function(ctx) { this.setNodeValue(ctx, new literal.BooleanLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitBreakStatement = function(ctx) { this.setNodeValue(ctx, new statement.BreakStatement()); }; EPromptoBuilder.prototype.exitMinIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new literal.MinIntegerLiteral()); }; EPromptoBuilder.prototype.exitMaxIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new literal.MaxIntegerLiteral()); }; EPromptoBuilder.prototype.exitIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new literal.IntegerLiteral(ctx.t.text, ctx.t.text)); }; EPromptoBuilder.prototype.exitDecimalLiteral = function(ctx) { this.setNodeValue(ctx, new literal.DecimalLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitHexadecimalLiteral = function(ctx) { this.setNodeValue(ctx, new literal.HexaLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitCharacterLiteral = function(ctx) { this.setNodeValue(ctx, new literal.CharacterLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitDateLiteral = function(ctx) { this.setNodeValue(ctx, new literal.DateLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitDateTimeLiteral = function(ctx) { this.setNodeValue(ctx, new literal.DateTimeLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitTernaryExpression = function(ctx) { var condition = this.getNodeValue(ctx.test); var ifTrue = this.getNodeValue(ctx.ifTrue); var ifFalse = this.getNodeValue(ctx.ifFalse); var exp = new expression.TernaryExpression(condition, ifTrue, ifFalse); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitTest_method_declaration = function(ctx) { var name = new grammar.Identifier(ctx.name.text); name.setSectionFrom(this.path, ctx.name, ctx.name, parser.Dialect.E); var stmts = this.getNodeValue(ctx.stmts); var exps = this.getNodeValue(ctx.exps); var errorName = this.getNodeValue(ctx.error); var error = errorName==null ? null : new expression.SymbolExpression(errorName); this.setNodeValue(ctx, new declaration.TestMethodDeclaration(name, stmts, exps, error)); }; EPromptoBuilder.prototype.exitTextLiteral = function(ctx) { this.setNodeValue(ctx, new literal.TextLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitTimeLiteral = function(ctx) { this.setNodeValue(ctx, new literal.TimeLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitPeriodLiteral = function(ctx) { this.setNodeValue(ctx, new literal.PeriodLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitPeriodType = function(ctx) { this.setNodeValue(ctx, type.PeriodType.instance); }; EPromptoBuilder.prototype.exitVersionLiteral = function(ctx) { this.setNodeValue(ctx, new literal.VersionLiteral(ctx.t.text)); }; EPromptoBuilder.prototype.exitVersionType = function(ctx) { this.setNodeValue(ctx, type.VersionType.instance); }; EPromptoBuilder.prototype.exitAttribute_identifier = function(ctx) { var name = new grammar.Identifier(ctx.getText()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitVariable_identifier = function(ctx) { var name = new grammar.Identifier(ctx.getText()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitList_literal = function(ctx) { var mutable = ctx.MUTABLE() !== null; var items = this.getNodeValue(ctx.expression_list()) || null; var value = new literal.ListLiteral(mutable, items); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitDict_literal = function(ctx) { var mutable = ctx.MUTABLE() !== null; var items = this.getNodeValue(ctx.dict_entry_list()) || null; var value = new literal.DictLiteral(mutable, items); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitTuple_literal = function(ctx) { var mutable = ctx.MUTABLE() !== null; var items = this.getNodeValue(ctx.expression_tuple()) || null; var value = new literal.TupleLiteral(mutable, items); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitRange_literal = function(ctx) { var low = this.getNodeValue(ctx.low); var high = this.getNodeValue(ctx.high); this.setNodeValue(ctx, new literal.RangeLiteral(low, high)); }; EPromptoBuilder.prototype.exitDict_entry_list = function(ctx) { var self = this; var items = new literal.DictEntryList(null, null); ctx.dict_entry().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }) this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitDict_entry = function(ctx) { var key = this.getNodeValue(ctx.key); var value = this.getNodeValue(ctx.value); var entry = new literal.DictEntry(key, value); this.setNodeValue(ctx, entry); }; EPromptoBuilder.prototype.exitLiteral_expression = function(ctx) { var exp = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitLiteralExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitVariableIdentifier = function(ctx) { var name = this.getNodeValue(ctx.variable_identifier()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitSymbol_identifier = function(ctx) { var name = new grammar.Identifier(ctx.getText()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitNative_symbol = function(ctx) { var name = this.getNodeValue(ctx.name); var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.NativeSymbol(name, exp)); }; EPromptoBuilder.prototype.exitSymbolIdentifier = function(ctx) { var name = this.getNodeValue(ctx.symbol_identifier()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitBlobType = function(ctx) { this.setNodeValue(ctx, type.BlobType.instance); }; EPromptoBuilder.prototype.exitBooleanType = function(ctx) { this.setNodeValue(ctx, type.BooleanType.instance); }; EPromptoBuilder.prototype.exitCharacterType = function(ctx) { this.setNodeValue(ctx, type.CharacterType.instance); }; EPromptoBuilder.prototype.exitImageType = function(ctx) { this.setNodeValue(ctx, type.ImageType.instance); }; EPromptoBuilder.prototype.exitTextType = function(ctx) { this.setNodeValue(ctx, type.TextType.instance); }; EPromptoBuilder.prototype.exitHtmlType = function(ctx) { this.setNodeValue(ctx, type.HtmlType.instance); }; EPromptoBuilder.prototype.exitThisExpression = function(ctx) { this.setNodeValue(ctx, new expression.ThisExpression()); }; EPromptoBuilder.prototype.exitIntegerType = function(ctx) { this.setNodeValue(ctx, type.IntegerType.instance); }; EPromptoBuilder.prototype.exitDecimalType = function(ctx) { this.setNodeValue(ctx, type.DecimalType.instance); }; EPromptoBuilder.prototype.exitDateType = function(ctx) { this.setNodeValue(ctx, type.DateType.instance); }; EPromptoBuilder.prototype.exitDateTimeType = function(ctx) { this.setNodeValue(ctx, type.DateTimeType.instance); }; EPromptoBuilder.prototype.exitTimeType = function(ctx) { this.setNodeValue(ctx, type.TimeType.instance); }; EPromptoBuilder.prototype.exitCodeType = function(ctx) { this.setNodeValue(ctx, type.CodeType.instance); }; EPromptoBuilder.prototype.exitPrimaryType = function(ctx) { var type = this.getNodeValue(ctx.p); this.setNodeValue(ctx, type); }; EPromptoBuilder.prototype.exitAttribute_declaration = function(ctx) { var id = this.getNodeValue(ctx.name); var type = this.getNodeValue(ctx.typ); var match = this.getNodeValue(ctx.match); var indices = null; if (ctx.indices !=null) indices = indices = this.getNodeValue(ctx.indices); else if(ctx.INDEX()!=null) indices = new grammar.IdentifierList(); if (ctx.index !=null) indices.push(this.getNodeValue(ctx.index)) var decl = new declaration.AttributeDeclaration(id, type, match, indices); decl.storable = ctx.STORABLE()!=null; this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitNativeType = function(ctx) { var type = this.getNodeValue(ctx.n); this.setNodeValue(ctx, type); }; EPromptoBuilder.prototype.exitCategoryType = function(ctx) { var type = this.getNodeValue(ctx.c); this.setNodeValue(ctx, type); }; EPromptoBuilder.prototype.exitCategory_type = function(ctx) { var name = new grammar.Identifier(ctx.getText()); this.buildSection(ctx, name); this.setNodeValue(ctx, new type.CategoryType(name)); }; EPromptoBuilder.prototype.exitListType = function(ctx) { var typ = this.getNodeValue(ctx.l); this.setNodeValue(ctx, new type.ListType(typ)); }; EPromptoBuilder.prototype.exitDictKeyIdentifier = function(ctx) { var text = ctx.name.getText(); this.setNodeValue(ctx, new literal.DictIdentifierKey(new grammar.Identifier(text))); }; EPromptoBuilder.prototype.exitDictKeyText = function(ctx) { var text = ctx.name.text; this.setNodeValue(ctx, new literal.DictTextKey(text)); }; EPromptoBuilder.prototype.exitDictType = function(ctx) { var typ = this.getNodeValue(ctx.d); this.setNodeValue(ctx, new type.DictionaryType(typ)); }; EPromptoBuilder.prototype.exitAttributeList = function(ctx) { var item = this.getNodeValue(ctx.item); this.setNodeValue(ctx, new grammar.IdentifierList(item)); }; EPromptoBuilder.prototype.exitAttributeListItem = function(ctx) { var items = this.getNodeValue(ctx.items); var item = this.getNodeValue(ctx.item); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitAttribute_identifier_list = function(ctx) { var list = new grammar.IdentifierList(); var rules = ctx.attribute_identifier(); rules.forEach(function(rule) { var item = this.getNodeValue(rule); list.add(item); }, this); this.setNodeValue(ctx, list); }; EPromptoBuilder.prototype.exitVariable_identifier_list = function(ctx) { var list = new grammar.IdentifierList(); var rules = ctx.variable_identifier(); rules.forEach(function(rule) { var item = this.getNodeValue(rule); list.add(item); }, this); this.setNodeValue(ctx, list); }; EPromptoBuilder.prototype.exitConcrete_category_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs) || null; var derived = this.getNodeValue(ctx.derived) || null; var methods = this.getNodeValue(ctx.methods) || null; var decl = new declaration.ConcreteCategoryDeclaration(name, attrs, derived, methods); decl.storable = ctx.STORABLE()!=null; this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitConcrete_widget_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var derived = this.getNodeValue(ctx.derived); var methods = this.getNodeValue(ctx.methods); var decl = new declaration.ConcreteWidgetDeclaration(name, derived, methods); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitConcreteCategoryDeclaration = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitConcreteWidgetDeclaration = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitNativeWidgetDeclaration = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitDerivedList = function(ctx) { var items = this.getNodeValue(ctx.items); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitDerivedListItem = function(ctx) { var items = this.getNodeValue(ctx.items); var item = this.getNodeValue(ctx.item); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitType_identifier = function(ctx) { var name = new grammar.Identifier(ctx.getText()); this.setNodeValue(ctx, name); }; EPromptoBuilder.prototype.exitType_identifier_list = function(ctx) { var self = this; var items = new grammar.IdentifierList(); ctx.type_identifier().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitInstanceExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitSelectableExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); this.setNodeValue(ctx, parent); }; EPromptoBuilder.prototype.exitSelectorExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); var selector = this.getNodeValue(ctx.selector); selector.parent = parent; this.setNodeValue(ctx, selector); }; EPromptoBuilder.prototype.exitSet_literal = function(ctx) { var items = this.getNodeValue(ctx.expression_list()); var set_ = new literal.SetLiteral(items); this.setNodeValue(ctx, set_); }; EPromptoBuilder.prototype.exitStoreStatement = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.stmt)); }; EPromptoBuilder.prototype.exitStore_statement = function(ctx) { var del = this.getNodeValue(ctx.to_del); var add = this.getNodeValue(ctx.to_add); var stmts = this.getNodeValue(ctx.stmts); var stmt = new statement.StoreStatement(del, add, stmts); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitMemberSelector = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new expression.UnresolvedSelector(null, name)); }; EPromptoBuilder.prototype.exitItemSelector = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.ItemSelector(null, exp)); }; EPromptoBuilder.prototype.exitSliceSelector = function(ctx) { var slice = this.getNodeValue(ctx.xslice); this.setNodeValue(ctx, slice); }; EPromptoBuilder.prototype.exitTyped_argument = function(ctx) { var typ = this.getNodeValue(ctx.typ); var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs); var arg = attrs ? new argument.ExtendedArgument(typ, name, attrs) : new argument.CategoryArgument(typ, name); var exp = this.getNodeValue(ctx.value); arg.defaultExpression = exp || null; this.setNodeValue(ctx, arg); }; EPromptoBuilder.prototype.exitCodeArgument = function(ctx) { var arg = this.getNodeValue(ctx.arg); this.setNodeValue(ctx, arg); }; EPromptoBuilder.prototype.exitArgument_list = function(ctx) { var self = this; var items = new grammar.ArgumentList(); ctx.argument().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitFlush_statement = function(ctx) { this.setNodeValue(ctx, new statement.FlushStatement()); }; EPromptoBuilder.prototype.exitFlushStatement = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.stmt)); }; EPromptoBuilder.prototype.exitFull_argument_list = function(ctx) { var items = this.getNodeValue(ctx.items); var item = this.getNodeValue(ctx.item) || null; if(item!==null) { items.add(item); } this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitArgument_assignment = function(ctx) { var name = this.getNodeValue(ctx.name); var exp = this.getNodeValue(ctx.exp); var arg = new argument.UnresolvedArgument(name); this.setNodeValue(ctx, new grammar.ArgumentAssignment(arg, exp)); }; EPromptoBuilder.prototype.exitArgumentAssignmentListExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); var items = this.getNodeValue(ctx.items) || null; if(items===null) { items = new grammar.ArgumentAssignmentList(); } items.insert(0, new grammar.ArgumentAssignment(null, exp)); var item = this.getNodeValue(ctx.item) || null; if(item!==null) { items.add(item); } else { items.checkLastAnd(); } this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitArgumentAssignmentListNoExpression = function(ctx) { var items = this.getNodeValue(ctx.items); var item = this.getNodeValue(ctx.item) || null; if(item!==null) { items.add(item); } else { items.checkLastAnd(); } this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitArgumentAssignmentList = function(ctx) { var item = this.getNodeValue(ctx.item); var items = new grammar.ArgumentAssignmentList([item]); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitArgumentAssignmentListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var items = this.getNodeValue(ctx.items); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitUnresolvedWithArgsStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var args = this.getNodeValue(ctx.args); var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); if (name!=null || stmts!=null) this.setNodeValue(ctx, new statement.RemoteCall(exp, args, name, stmts)); else this.setNodeValue(ctx, new statement.UnresolvedCall(exp, args)); }; EPromptoBuilder.prototype.exitAddExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); var exp = ctx.op.type===parser.EParser.PLUS ? new expression.PlusExpression(left, right) : new expression.SubtractExpression(left, right); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitMember_method_declaration_list = function(ctx) { var self = this; var items = new grammar.MethodDeclarationList(); ctx.member_method_declaration().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitNative_member_method_declaration_list = function(ctx) { var self = this; var items = new grammar.MethodDeclarationList(); ctx.native_member_method_declaration().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitGetter_method_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new declaration.GetterMethodDeclaration(name, stmts)); }; EPromptoBuilder.prototype.exitNative_setter_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new declaration.NativeSetterMethodDeclaration(name, stmts)); }; EPromptoBuilder.prototype.exitNative_getter_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new declaration.NativeGetterMethodDeclaration(name, stmts)); }; EPromptoBuilder.prototype.exitSetter_method_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new declaration.SetterMethodDeclaration(name, stmts)); }; EPromptoBuilder.prototype.exitMember_method_declaration = function(ctx) { var comments = this.readComments(ctx.comment_statement()); var annotations = this.readAnnotations(ctx.annotation_constructor()); var ctx_ = ctx.children[ctx.getChildCount()-1]; var decl = this.getNodeValue(ctx_); if(decl!=null) { decl.comments = comments; decl.annotations = annotations; this.setNodeValue(ctx, decl); } }; EPromptoBuilder.prototype.exitStatement_list = function(ctx) { var self = this; var items = new statement.StatementList(); ctx.statement().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitAbstract_method_declaration = function(ctx) { var type = this.getNodeValue(ctx.typ); var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); this.setNodeValue(ctx, new declaration.AbstractMethodDeclaration(name, args, type)); }; EPromptoBuilder.prototype.exitConcrete_method_declaration = function(ctx) { var type = this.getNodeValue(ctx.typ); var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new declaration.ConcreteMethodDeclaration(name, args, type, stmts)); }; EPromptoBuilder.prototype.exitMethod_declaration = function(ctx) { var value = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitMethodCallStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitMethod_identifier = function(ctx) { var value = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitConstructorFrom = function(ctx) { var type = this.getNodeValue(ctx.typ); var copyFrom = this.getNodeValue(ctx.copyExp) || null; var args = this.getNodeValue(ctx.args) || null; var arg = this.getNodeValue(ctx.arg) || null; if(arg!==null) { if(args===null) { args = new grammar.ArgumentAssignmentList(); } args.add(arg); } this.setNodeValue(ctx, new expression.ConstructorExpression(type, copyFrom, args, true)); }; EPromptoBuilder.prototype.exitConstructorNoFrom = function(ctx) { var type = this.getNodeValue(ctx.typ); var args = this.getNodeValue(ctx.args) || null; var arg = this.getNodeValue(ctx.arg) || null; if(arg!==null) { if(args===null) { args = new grammar.ArgumentAssignmentList(); } args.add(arg); } this.setNodeValue(ctx, new expression.ConstructorExpression(type, null, args, true)); }; EPromptoBuilder.prototype.exitAssertion = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new parser.Assertion(exp)); }; EPromptoBuilder.prototype.exitAssertion_list = function(ctx) { var self = this; var items = new utils.ExpressionList(); ctx.assertion().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitAssignInstanceStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitAssign_instance_statement = function(ctx) { var inst = this.getNodeValue(ctx.inst); var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new statement.AssignInstanceStatement(inst, exp)); }; EPromptoBuilder.prototype.exitAssign_variable_statement = function(ctx) { var name = this.getNodeValue(ctx.variable_identifier()); var exp = this.getNodeValue(ctx.expression()); this.setNodeValue(ctx, new statement.AssignVariableStatement(name, exp)); }; EPromptoBuilder.prototype.exitAssign_tuple_statement = function(ctx) { var items = this.getNodeValue(ctx.items); var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new statement.AssignTupleStatement(items, exp)); }; EPromptoBuilder.prototype.exitRootInstance = function(ctx) { var name = this.getNodeValue(ctx.variable_identifier()); this.setNodeValue(ctx, new instance.VariableInstance(name)); }; EPromptoBuilder.prototype.exitRoughlyEqualsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.EqualsExpression(left, grammar.EqOp.ROUGHLY, right)); }; EPromptoBuilder.prototype.exitChildInstance = function(ctx) { var parent = this.getNodeValue(ctx.assignable_instance()); var child = this.getNodeValue(ctx.child_instance()); child.parent = parent; this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitMemberInstance = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new instance.MemberInstance(name)); }; EPromptoBuilder.prototype.exitIsATypeExpression = function(ctx) { var type = this.getNodeValue(ctx.category_or_any_type()); var exp = new expression.TypeExpression(type); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitIsOtherExpression = function(ctx) { var exp = this.getNodeValue(ctx.expression()); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitIsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); var op = right instanceof expression.TypeExpression ? grammar.EqOp.IS_A : grammar.EqOp.IS; this.setNodeValue(ctx, new expression.EqualsExpression(left, op, right)); }; EPromptoBuilder.prototype.exitIsNotExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); var op = right instanceof expression.TypeExpression ? grammar.EqOp.IS_NOT_A : grammar.EqOp.IS_NOT; this.setNodeValue(ctx, new expression.EqualsExpression(left, op, right)); }; EPromptoBuilder.prototype.exitItemInstance = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new instance.ItemInstance(exp)); }; EPromptoBuilder.prototype.exitConstructorExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitNative_statement_list = function(ctx) { var self = this; var items = new statement.StatementList(); ctx.native_statement().forEach(function (r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitJava_identifier = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitJavascript_identifier = function(ctx) { var id = new grammar.Identifier(ctx.getText()); this.setNodeValue(ctx, id); }; EPromptoBuilder.prototype.exitJavascript_member_expression = function(ctx) { var name = ctx.name.getText (); this.setNodeValue (ctx, new javascript.JavaScriptMemberExpression(name)); }; EPromptoBuilder.prototype.exitJavascript_new_expression = function(ctx) { var method = this.getNodeValue(ctx.javascript_method_expression()); this.setNodeValue (ctx, new javascript.JavaScriptNewExpression(method)); }; EPromptoBuilder.prototype.exitJavascript_primary_expression = function(ctx) { var exp = this.getNodeValue (ctx.getChild(0)); this.setNodeValue (ctx, exp); }; EPromptoBuilder.prototype.exitJavascript_this_expression = function(ctx) { this.setNodeValue (ctx, new javascript.JavaScriptThisExpression ()); }; EPromptoBuilder.prototype.exitJavaIdentifier = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new java.JavaIdentifierExpression(null, name)); }; EPromptoBuilder.prototype.exitJavaIdentifierExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJavaChildIdentifier = function(ctx) { var parent = this.getNodeValue(ctx.parent); var name = this.getNodeValue(ctx.name); var child = new java.JavaIdentifierExpression(parent, name); this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitJavaClassIdentifier = function(ctx) { var klass = this.getNodeValue(ctx.klass); this.setNodeValue(ctx, klass); }; EPromptoBuilder.prototype.exitJavaChildClassIdentifier = function(ctx) { var parent = this.getNodeValue(ctx.parent); var child = new java.JavaIdentifierExpression(parent, ctx.name.text); this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitJavaPrimaryExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJavascriptBooleanLiteral = function(ctx) { this.setNodeValue(ctx, new javascript.JavaScriptBooleanLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavascriptCharacterLiteral = function(ctx) { this.setNodeValue(ctx, new javascript.JavaScriptCharacterLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavascriptTextLiteral = function(ctx) { this.setNodeValue(ctx, new javascript.JavaScriptTextLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavascriptIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new javascript.JavaScriptIntegerLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavascriptDecimalLiteral = function(ctx) { this.setNodeValue(ctx, new javascript.JavaScriptDecimalLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavascriptPrimaryExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJavascript_identifier_expression = function(ctx) { var id = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new javascript.JavaScriptIdentifierExpression(id)); }; EPromptoBuilder.prototype.exitJavaSelectorExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); var child = this.getNodeValue(ctx.child); child.parent = parent; this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitJavascriptSelectorExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); var child = this.getNodeValue(ctx.child); child.parent = parent; this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitJavaScriptMemberExpression = function(ctx) { var id = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new javascript.JavaScriptMemberExpression(id)); }; EPromptoBuilder.prototype.exitJava_primary_expression = function(ctx) { var exp = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJava_item_expression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new java.JavaItemExpression(exp)); }; EPromptoBuilder.prototype.exitJavascript_item_expression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new javascript.JavaScriptItemExpression(exp)); }; EPromptoBuilder.prototype.exitJavaItemExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJavascriptItemExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitJavaStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmt = new java.JavaStatement(exp,false); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitJavascriptStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmt = new javascript.JavaScriptStatement(exp,false); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitJavaReturnStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new java.JavaStatement(exp,true)); }; EPromptoBuilder.prototype.exitJavascriptReturnStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new javascript.JavaScriptStatement(exp,true)); }; EPromptoBuilder.prototype.exitJavaNativeStatement = function(ctx) { var stmt = this.getNodeValue(ctx.java_statement()); var call = new java.JavaNativeCall(stmt); this.setNodeValue(ctx, call); }; EPromptoBuilder.prototype.exitJavaScriptNativeStatement = function(ctx) { var stmt = this.getNodeValue(ctx.javascript_native_statement()); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitJavascript_native_statement = function(ctx) { var stmt = this.getNodeValue(ctx.javascript_statement()); var module = this.getNodeValue(ctx.javascript_module()); stmt.module = module || null; this.setNodeValue(ctx, new javascript.JavaScriptNativeCall(stmt)); }; EPromptoBuilder.prototype.exitNative_method_declaration = function(ctx) { var type = this.getNodeValue(ctx.typ); var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); var stmts = this.getNodeValue(ctx.stmts); var decl = new declaration.NativeMethodDeclaration(name, args, type, stmts); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitJavaArgumentList = function(ctx) { var item = this.getNodeValue(ctx.item); this.setNodeValue(ctx, new java.JavaExpressionList(item)); }; EPromptoBuilder.prototype.exitJavascriptArgumentList = function(ctx) { var item = this.getNodeValue(ctx.item); this.setNodeValue(ctx, new javascript.JavaScriptExpressionList(item)); }; EPromptoBuilder.prototype.exitJavaArgumentListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var items = this.getNodeValue(ctx.items); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitJavascriptArgumentListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var items = this.getNodeValue(ctx.items); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitJava_method_expression = function(ctx) { var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); this.setNodeValue(ctx, new java.JavaMethodExpression(name, args)); }; EPromptoBuilder.prototype.exitJava_this_expression = function(ctx) { this.setNodeValue(ctx, new java.JavaThisExpression()); }; EPromptoBuilder.prototype.exitJavaScriptMethodExpression = function(ctx) { var method = this.getNodeValue(ctx.method); this.setNodeValue(ctx, method); }; EPromptoBuilder.prototype.exitJavascript_method_expression = function(ctx) { var id = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); this.setNodeValue(ctx, new javascript.JavaScriptMethodExpression(id, args)); }; EPromptoBuilder.prototype.exitJavaMethodExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitFullDeclarationList = function(ctx) { var items = this.getNodeValue(ctx.declarations()) || new declaration.DeclarationList(); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitDeclaration = function(ctx) { var comments = this.readComments(ctx.comment_statement()); var annotations = this.readAnnotations(ctx.annotation_constructor()); var ctx_ = ctx.children[ctx.getChildCount()-1]; var decl = this.getNodeValue(ctx_); if(decl!=null) { decl.comments = comments; decl.annotations = annotations; this.setNodeValue(ctx, decl); } }; EPromptoBuilder.prototype.exitDeclarations = function(ctx) { var self = this; var items = new declaration.DeclarationList(); ctx.declaration().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitIteratorExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); var name = this.getNodeValue(ctx.name); var source = this.getNodeValue(ctx.source); this.setNodeValue(ctx, new expression.IteratorExpression(name, source, exp)); }; EPromptoBuilder.prototype.exitIteratorType = function(ctx) { var typ = this.getNodeValue(ctx.i); this.setNodeValue(ctx, new type.IteratorType(typ)); }; EPromptoBuilder.prototype.exitJavaBooleanLiteral = function(ctx) { this.setNodeValue(ctx, new java.JavaBooleanLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavaIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new java.JavaIntegerLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavaDecimalLiteral = function(ctx) { this.setNodeValue(ctx, new java.JavaDecimalLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavaCharacterLiteral = function(ctx) { this.setNodeValue(ctx, new java.JavaCharacterLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavaTextLiteral = function(ctx) { this.setNodeValue(ctx, new java.JavaTextLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitJavaCategoryBinding = function(ctx) { var map = this.getNodeValue(ctx.binding); this.setNodeValue(ctx, new java.JavaNativeCategoryBinding(map)); }; EPromptoBuilder.prototype.exitJavaScriptCategoryBinding = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.binding)); }; EPromptoBuilder.prototype.exitJavascript_category_binding = function(ctx) { var identifier = ctx.javascript_identifier().map(function(cx) { return cx.getText(); }).join("."); var module = this.getNodeValue(ctx.javascript_module()) || null; var map = new javascript.JavaScriptNativeCategoryBinding(identifier, module); this.setNodeValue(ctx, map); }; EPromptoBuilder.prototype.exitJavascript_module = function(ctx) { var ids = ctx.javascript_identifier().map(function(rule) { return rule.getText(); }); var module = new javascript.JavaScriptModule(ids); this.setNodeValue(ctx, module); }; EPromptoBuilder.prototype.exitNativeCategoryBindingList = function(ctx) { var item = this.getNodeValue(ctx.item); var items = new grammar.NativeCategoryBindingList(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitNativeCategoryBindingListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var items = this.getNodeValue(ctx.items); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitNative_category_bindings = function(ctx) { var items = this.getNodeValue(ctx.items); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitNative_category_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs); var bindings = this.getNodeValue(ctx.bindings); var methods = this.getNodeValue(ctx.methods); var decl = new declaration.NativeCategoryDeclaration(name, attrs, bindings, null, methods); decl.storable = ctx.STORABLE()!=null; this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitNative_widget_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var bindings = this.getNodeValue(ctx.bindings); var methods = this.getNodeValue(ctx.methods); var decl = new declaration.NativeWidgetDeclaration(name, bindings, methods); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitNativeCategoryDeclaration = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitNative_resource_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs); var bindings = this.getNodeValue(ctx.bindings); var methods = this.getNodeValue(ctx.methods); var decl = new declaration.NativeResourceDeclaration(name, attrs, bindings, null, methods); decl.storable = ctx.STORABLE()!=null; this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitResource_declaration = function(ctx) { var decl = this.getNodeValue(ctx.native_resource_declaration()); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitParenthesis_expression = function(ctx) { var exp = this.getNodeValue(ctx.expression()); this.setNodeValue(ctx, new expression.ParenthesisExpression(exp)); }; EPromptoBuilder.prototype.exitParenthesisExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitNative_symbol_list = function(ctx) { var self = this; var items = new grammar.NativeSymbolList(); ctx.native_symbol().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitEnum_native_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var type = this.getNodeValue(ctx.typ); var symbols = this.getNodeValue(ctx.symbols); this.setNodeValue(ctx, new declaration.EnumeratedNativeDeclaration(name, type, symbols)); }; EPromptoBuilder.prototype.exitFor_each_statement = function(ctx) { var name1 = this.getNodeValue(ctx.name1); var name2 = this.getNodeValue(ctx.name2); var source = this.getNodeValue(ctx.source); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.ForEachStatement(name1, name2, source, stmts)); }; EPromptoBuilder.prototype.exitForEachStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitSymbols_token = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitKey_token = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitValue_token = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitNamed_argument = function(ctx) { var name = this.getNodeValue(ctx.variable_identifier()); var arg = new argument.UnresolvedArgument(name); var exp = this.getNodeValue(ctx.literal_expression()); arg.defaultExpression = exp || null; this.setNodeValue(ctx, arg); }; EPromptoBuilder.prototype.exitClosureStatement = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, new statement.DeclarationStatement(decl)); }; EPromptoBuilder.prototype.exitReturn_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new statement.ReturnStatement(exp)); }; EPromptoBuilder.prototype.exitReturnStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitClosureExpression = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new expression.MethodExpression(name)); }; EPromptoBuilder.prototype.exitIf_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); var elseIfs = this.getNodeValue(ctx.elseIfs); var elseStmts = this.getNodeValue(ctx.elseStmts); this.setNodeValue(ctx, new statement.IfStatement(exp, stmts, elseIfs, elseStmts)); }; EPromptoBuilder.prototype.exitElseIfStatementList = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); var elem = new statement.IfElement(exp, stmts); this.setNodeValue(ctx, new statement.IfElementList(elem)); }; EPromptoBuilder.prototype.exitElseIfStatementListItem = function(ctx) { var items = this.getNodeValue(ctx.items); var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); var elem = new statement.IfElement(exp, stmts); items.add(elem); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitIfStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitSwitchStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitAssignTupleStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitRaiseStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitWriteStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitWithResourceStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitWhileStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitDoWhileStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitTryStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitEqualsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.EqualsExpression(left, grammar.EqOp.EQUALS, right)); }; EPromptoBuilder.prototype.exitNotEqualsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.EqualsExpression(left, grammar.EqOp.NOT_EQUALS, right)); }; EPromptoBuilder.prototype.exitGreaterThanExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.CompareExpression(left, grammar.CmpOp.GT, right)); }; EPromptoBuilder.prototype.exitGreaterThanOrEqualExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.CompareExpression(left, grammar.CmpOp.GTE, right)); }; EPromptoBuilder.prototype.exitLessThanExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.CompareExpression(left, grammar.CmpOp.LT, right)); }; EPromptoBuilder.prototype.exitLessThanOrEqualExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.CompareExpression(left, grammar.CmpOp.LTE, right)); }; EPromptoBuilder.prototype.exitAtomicSwitchCase = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.AtomicSwitchCase(exp, stmts)); }; EPromptoBuilder.prototype.exitCollection_literal = function(ctx) { var value = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitCollectionSwitchCase = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.CollectionSwitchCase(exp, stmts)); }; EPromptoBuilder.prototype.exitSwitch_case_statement_list = function(ctx) { var self = this; var items = new statement.SwitchCaseList(); ctx.switch_case_statement().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitSwitch_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var cases = this.getNodeValue(ctx.cases); var stmts = this.getNodeValue(ctx.stmts); var stmt = new statement.SwitchStatement(exp, cases, stmts); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitLiteralRangeLiteral = function(ctx) { var low = this.getNodeValue(ctx.low); var high = this.getNodeValue(ctx.high); this.setNodeValue(ctx, new literal.RangeLiteral(low, high)); }; EPromptoBuilder.prototype.exitLiteralListLiteral = function(ctx) { var exp = this.getNodeValue(ctx.literal_list_literal()); this.setNodeValue(ctx, new literal.ListLiteral(false, exp)); }; EPromptoBuilder.prototype.exitLiteral_list_literal = function(ctx) { var self = this; var items = new utils.ExpressionList(); ctx.atomic_literal().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitInExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.IN, right)); }; EPromptoBuilder.prototype.exitNotInExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.NOT_IN, right)); }; EPromptoBuilder.prototype.exitHasExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.HAS, right)); }; EPromptoBuilder.prototype.exitNotHasExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.NOT_HAS, right)); }; EPromptoBuilder.prototype.exitHasAllExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.HAS_ALL, right)); }; EPromptoBuilder.prototype.exitNotHasAllExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.NOT_HAS_ALL, right)); }; EPromptoBuilder.prototype.exitHasAnyExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.HAS_ANY, right)); }; EPromptoBuilder.prototype.exitNotHasAnyExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ContainsExpression(left, grammar.ContOp.NOT_HAS_ANY, right)); }; EPromptoBuilder.prototype.exitContainsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.EqualsExpression(left, grammar.EqOp.CONTAINS, right)); }; EPromptoBuilder.prototype.exitNotContainsExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.EqualsExpression(left, grammar.EqOp.NOT_CONTAINS, right)); }; EPromptoBuilder.prototype.exitDivideExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.DivideExpression(left, right)); }; EPromptoBuilder.prototype.exitIntDivideExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.IntDivideExpression(left, right)); }; EPromptoBuilder.prototype.exitModuloExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.ModuloExpression(left, right)); }; EPromptoBuilder.prototype.exitAnnotation_constructor = function(ctx) { var name = this.getNodeValue(ctx.name); var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new grammar.Annotation(name, exp)); }; EPromptoBuilder.prototype.exitAnnotation_identifier = function(ctx) { var name = ctx.getText(); this.setNodeValue(ctx, new grammar.Identifier(name)); }; EPromptoBuilder.prototype.exitAndExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.AndExpression(left, right)); }; EPromptoBuilder.prototype.exitNullLiteral = function(ctx) { this.setNodeValue(ctx, literal.NullLiteral.instance); }; EPromptoBuilder.prototype.exitOperator_argument = function(ctx) { var value = this.getNodeValue (ctx.getChild (0)); this.setNodeValue (ctx, value); }; EPromptoBuilder.prototype.exitOperatorArgument = function(ctx) { var arg = this.getNodeValue(ctx.arg); arg.mutable = ctx.MUTABLE()!=null; this.setNodeValue(ctx, arg); }; EPromptoBuilder.prototype.exitOperatorPlus = function(ctx) { this.setNodeValue(ctx, grammar.Operator.PLUS); }; EPromptoBuilder.prototype.exitOperatorMinus = function(ctx) { this.setNodeValue(ctx, grammar.Operator.MINUS); }; EPromptoBuilder.prototype.exitOperatorMultiply = function(ctx) { this.setNodeValue(ctx, grammar.Operator.MULTIPLY); }; EPromptoBuilder.prototype.exitOperatorDivide = function(ctx) { this.setNodeValue(ctx, grammar.Operator.DIVIDE); }; EPromptoBuilder.prototype.exitOperatorIDivide = function(ctx) { this.setNodeValue(ctx, grammar.Operator.IDIVIDE); }; EPromptoBuilder.prototype.exitOperatorModulo = function(ctx) { this.setNodeValue(ctx, grammar.Operator.MODULO); }; EPromptoBuilder.prototype.exitNative_member_method_declaration = function(ctx) { var value = this.getNodeValue (ctx.getChild (0)); this.setNodeValue (ctx, value); }; EPromptoBuilder.prototype.exitOperator_method_declaration= function(ctx) { var op = this.getNodeValue(ctx.op); var arg = this.getNodeValue(ctx.arg); var typ = this.getNodeValue(ctx.typ); var stmts = this.getNodeValue(ctx.stmts); var decl = new declaration.OperatorMethodDeclaration(op, arg, typ, stmts); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitOrder_by = function(ctx) { var self = this; var names = new grammar.IdentifierList(); ctx.variable_identifier().map( function(ctx_) { names.push(self.getNodeValue(ctx_)); }); var clause = new grammar.OrderByClause(names, ctx.DESC()!=null); this.setNodeValue(ctx, clause); }; EPromptoBuilder.prototype.exitOrder_by_list = function(ctx) { var self = this; var list = new grammar.OrderByClauseList(); ctx.order_by().map( function(ctx_) { list.add(self.getNodeValue(ctx_)); }); this.setNodeValue(ctx, list); }; EPromptoBuilder.prototype.exitOrExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.OrExpression(left, right)); }; EPromptoBuilder.prototype.exitMultiplyExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var right = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.MultiplyExpression(left, right)); }; EPromptoBuilder.prototype.exitMutable_category_type = function(ctx) { var typ = this.getNodeValue (ctx.category_type()); typ.mutable = ctx.MUTABLE()!=null; this.setNodeValue(ctx, typ); }; EPromptoBuilder.prototype.exitMinusExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.MinusExpression(exp)); }; EPromptoBuilder.prototype.exitNotExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.NotExpression(exp)); }; EPromptoBuilder.prototype.exitWhile_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.WhileStatement(exp, stmts)); }; EPromptoBuilder.prototype.exitDo_while_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.DoWhileStatement(exp, stmts)); }; EPromptoBuilder.prototype.exitSingleton_category_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs); var methods = this.getNodeValue(ctx.methods); this.setNodeValue(ctx, new declaration.SingletonCategoryDeclaration(name, attrs, methods)); }; EPromptoBuilder.prototype.exitSingletonCategoryDeclaration = function(ctx) { var decl = this.getNodeValue(ctx.decl); this.setNodeValue(ctx, decl); }; EPromptoBuilder.prototype.exitSliceFirstAndLast = function(ctx) { var first = this.getNodeValue(ctx.first); var last = this.getNodeValue(ctx.last); this.setNodeValue(ctx, new expression.SliceSelector(null, first, last)); }; EPromptoBuilder.prototype.exitSliceFirstOnly = function(ctx) { var first = this.getNodeValue(ctx.first); this.setNodeValue(ctx, new expression.SliceSelector(null, first, null)); }; EPromptoBuilder.prototype.exitSliceLastOnly = function(ctx) { var last = this.getNodeValue(ctx.last); this.setNodeValue(ctx, new expression.SliceSelector(null, null, last)); }; EPromptoBuilder.prototype.exitSorted_expression = function(ctx) { var source = this.getNodeValue(ctx.source); var desc = ctx.DESC()!=null; var key = this.getNodeValue(ctx.key); this.setNodeValue(ctx, new expression.SortedExpression(source, desc, key)); }; EPromptoBuilder.prototype.exitSortedExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitDocumentExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitDocument_expression = function(ctx) { var exp = this.getNodeValue(ctx.expression()); this.setNodeValue(ctx, new expression.DocumentExpression(exp)); }; EPromptoBuilder.prototype.exitDocumentType = function(ctx) { this.setNodeValue(ctx, type.DocumentType.instance); }; EPromptoBuilder.prototype.exitDocument_literal = function(ctx) { var entries = this.getNodeValue(ctx.dict_entry_list()); var items = entries ? new literal.DocEntryList(entries.items) : null; this.setNodeValue(ctx, new literal.DocumentLiteral(items)); }; EPromptoBuilder.prototype.exitFetchExpression = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.exp)); }; EPromptoBuilder.prototype.exitFetchStatement = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.stmt)); }; EPromptoBuilder.prototype.exitFetchMany = function(ctx) { var category = this.getNodeValue(ctx.typ); var predicate = this.getNodeValue(ctx.predicate); var start = this.getNodeValue(ctx.xstart); var stop = this.getNodeValue(ctx.xstop); var orderBy = this.getNodeValue(ctx.orderby); this.setNodeValue(ctx, new expression.FetchManyExpression(category, start, stop, predicate, orderBy)); }; EPromptoBuilder.prototype.exitFetchManyAsync = function(ctx) { var category = this.getNodeValue(ctx.typ); var predicate = this.getNodeValue(ctx.predicate); var start = this.getNodeValue(ctx.xstart); var stop = this.getNodeValue(ctx.xstop); var orderBy = this.getNodeValue(ctx.orderby); var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.FetchManyStatement(category, start, stop, predicate, orderBy, name, stmts)); }; EPromptoBuilder.prototype.exitFetchOne = function(ctx) { var category = this.getNodeValue(ctx.typ); var predicate = this.getNodeValue(ctx.predicate); this.setNodeValue(ctx, new expression.FetchOneExpression(category, predicate)); }; EPromptoBuilder.prototype.exitFetchOneAsync = function(ctx) { var category = this.getNodeValue(ctx.typ); var predicate = this.getNodeValue(ctx.predicate); var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.FetchOneStatement(category, predicate, name, stmts)); }; EPromptoBuilder.prototype.exitFilteredListExpression = function(ctx) { var filtered = this.getNodeValue(ctx.filtered_list_suffix()); var source = this.getNodeValue(ctx.src); filtered.source = source; this.setNodeValue(ctx, filtered); }; EPromptoBuilder.prototype.exitFiltered_list_suffix = function(ctx) { var itemName = this.getNodeValue(ctx.name); var predicate = this.getNodeValue(ctx.predicate); this.setNodeValue(ctx, new expression.FilteredExpression(itemName, null, predicate)); }; EPromptoBuilder.prototype.exitCode_type = function(ctx) { this.setNodeValue(ctx, type.CodeType.instance); }; EPromptoBuilder.prototype.exitExecuteExpression = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new expression.ExecuteExpression(name)); }; EPromptoBuilder.prototype.exitExpression_list = function(ctx) { var self = this; var items = new utils.ExpressionList(); ctx.expression().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitExpression_tuple = function(ctx) { var self = this; var items = new utils.ExpressionList(); ctx.expression().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitCodeExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new expression.CodeExpression(exp)); }; EPromptoBuilder.prototype.exitCode_argument = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new argument.CodeArgument(name)); }; EPromptoBuilder.prototype.exitCategory_or_any_type = function(ctx) { var exp = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitCategory_symbol = function(ctx) { var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); var arg = this.getNodeValue(ctx.arg) || null; if(arg!==null) { args.add(arg); } this.setNodeValue(ctx, new expression.CategorySymbol(name, args)); }; EPromptoBuilder.prototype.exitCategory_symbol_list = function(ctx) { var self = this; var items = new grammar.CategorySymbolList(); ctx.category_symbol().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitEnum_category_declaration = function(ctx) { var name = this.getNodeValue(ctx.name); var attrs = this.getNodeValue(ctx.attrs); var parent = this.getNodeValue(ctx.derived); var derived = parent==null ? null : new grammar.IdentifierList(parent); var symbols = this.getNodeValue(ctx.symbols); this.setNodeValue(ctx, new declaration.EnumeratedCategoryDeclaration(name, attrs, derived, symbols)); }; EPromptoBuilder.prototype.exitEnum_declaration = function(ctx) { var value = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitRead_all_expression = function(ctx) { var source = this.getNodeValue(ctx.source); this.setNodeValue(ctx, new expression.ReadAllExpression(source)); }; EPromptoBuilder.prototype.exitRead_one_expression = function(ctx) { var source = this.getNodeValue(ctx.source); this.setNodeValue(ctx, new expression.ReadOneExpression(source)); }; EPromptoBuilder.prototype.exitReadAllExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitReadOneExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitWith_singleton_statement = function(ctx) { var name = this.getNodeValue(ctx.typ); var typ = new type.CategoryType(name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.WithSingletonStatement(typ, stmts)); }; EPromptoBuilder.prototype.exitWithSingletonStatement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitWrite_statement = function(ctx) { var what = this.getNodeValue(ctx.what); var target = this.getNodeValue(ctx.target); this.setNodeValue(ctx, new statement.WriteStatement(what, target)); }; EPromptoBuilder.prototype.exitWith_resource_statement = function(ctx) { var stmt = this.getNodeValue(ctx.stmt); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.WithResourceStatement(stmt, stmts)); }; EPromptoBuilder.prototype.exitAnyType = function(ctx) { this.setNodeValue(ctx, type.AnyType.instance); }; EPromptoBuilder.prototype.exitAnyListType = function(ctx) { var typ = this.getNodeValue(ctx.any_type()); this.setNodeValue(ctx, new type.ListType(typ)); }; EPromptoBuilder.prototype.exitAnyDictType = function(ctx) { var typ = this.getNodeValue(ctx.typ); this.setNodeValue(ctx, new type.DictType(typ)); }; EPromptoBuilder.prototype.exitCastExpression = function(ctx) { var left = this.getNodeValue(ctx.left); var type = this.getNodeValue(ctx.right); this.setNodeValue(ctx, new expression.CastExpression(left, type)); } EPromptoBuilder.prototype.exitCatchAtomicStatement = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.AtomicSwitchCase(new expression.SymbolExpression(name), stmts)); }; EPromptoBuilder.prototype.exitCatchCollectionStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmts = this.getNodeValue(ctx.stmts); this.setNodeValue(ctx, new statement.CollectionSwitchCase(exp, stmts)); }; EPromptoBuilder.prototype.exitCatch_statement_list = function(ctx) { var self = this; var items = new statement.SwitchCaseList(); ctx.catch_statement().forEach(function(r) { var item = self.getNodeValue(r); items.add(item); }); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitTry_statement = function(ctx) { var name = this.getNodeValue(ctx.name); var stmts = this.getNodeValue(ctx.stmts); var handlers = this.getNodeValue(ctx.handlers); var anyStmts = this.getNodeValue(ctx.anyStmts); var finalStmts = this.getNodeValue(ctx.finalStmts); var stmt = new statement.SwitchErrorStatement(name, stmts, handlers, anyStmts, finalStmts); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitRaise_statement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new statement.RaiseStatement(exp)); }; EPromptoBuilder.prototype.exitMatchingList = function(ctx) { var exp = this.getNodeValue(ctx.source); this.setNodeValue(ctx, new constraint.MatchingCollectionConstraint(exp)); }; EPromptoBuilder.prototype.exitMatchingRange = function(ctx) { var exp = this.getNodeValue(ctx.source); this.setNodeValue(ctx, new constraint.MatchingCollectionConstraint(exp)); }; EPromptoBuilder.prototype.exitMatchingExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new constraint.MatchingExpressionConstraint(exp)); }; EPromptoBuilder.prototype.exitMatchingPattern = function(ctx) { this.setNodeValue(ctx, new constraint.MatchingPatternConstraint(new literal.TextLiteral(ctx.text.text))); }; EPromptoBuilder.prototype.exitLiteralSetLiteral = function(ctx) { var items = this.getNodeValue(ctx.literal_list_literal()); this.setNodeValue(ctx, new literal.SetLiteral(items)); }; EPromptoBuilder.prototype.exitInvocation_expression = function(ctx) { var name = this.getNodeValue(ctx.name); var select = new expression.MethodSelector(null, name); this.setNodeValue(ctx, new statement.MethodCall(select)); }; EPromptoBuilder.prototype.exitInvocationExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitInvokeStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitCsharp_identifier = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitCSharpIdentifier = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new csharp.CSharpIdentifierExpression(null, name)); }; EPromptoBuilder.prototype.exitCSharpChildIdentifier = function(ctx) { var parent = this.getNodeValue(ctx.parent); var name = this.getNodeValue(ctx.name); var child = new csharp.CSharpIdentifierExpression(parent, name); this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitCSharpBooleanLiteral = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpBooleanLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitCSharpIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpIntegerLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitCSharpDecimalLiteral = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpDecimalLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitCSharpCharacterLiteral = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpCharacterLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitCSharpTextLiteral = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpTextLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitCSharpCategoryBinding = function(ctx) { var binding = this.getNodeValue(ctx.binding); this.setNodeValue(ctx, new csharp.CSharpNativeCategoryBinding(binding)); }; EPromptoBuilder.prototype.exitCsharp_primary_expression = function(ctx) { var value = this.getNodeValue(ctx.getChild(0)); this.setNodeValue(ctx, value); }; EPromptoBuilder.prototype.exitCsharp_this_expression = function(ctx) { this.setNodeValue(ctx, new csharp.CSharpThisExpression()); }; EPromptoBuilder.prototype.exitCsharp_method_expression = function(ctx) { var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); this.setNodeValue(ctx, new csharp.CSharpMethodExpression(name, args)); }; EPromptoBuilder.prototype.exitCSharpMethodExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitCSharpArgumentList = function(ctx) { var item = this.getNodeValue(ctx.item); this.setNodeValue(ctx, new csharp.CSharpExpressionList(item)); }; EPromptoBuilder.prototype.exitCSharpArgumentListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var items = this.getNodeValue(ctx.items); items.add(item); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitCSharpNativeStatement = function(ctx) { var stmt = this.getNodeValue(ctx.csharp_statement()); var call = new csharp.CSharpNativeCall(stmt); this.setNodeValue(ctx, call); }; EPromptoBuilder.prototype.exitCSharpPromptoIdentifier = function(ctx) { var name = ctx.DOLLAR_IDENTIFIER().getText(); this.setNodeValue(ctx, new csharp.CSharpIdentifierExpression(null, name)); }; EPromptoBuilder.prototype.exitCSharpPrimaryExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitCSharpSelectorExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); var child = this.getNodeValue(ctx.child); child.parent = parent; this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitCSharpStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); var stmt = new csharp.CSharpStatement(exp,false); this.setNodeValue(ctx, stmt); }; EPromptoBuilder.prototype.exitCSharpReturnStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new csharp.CSharpStatement(exp,true)); }; EPromptoBuilder.prototype.exitPythonStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new python.PythonStatement(exp,false)); }; EPromptoBuilder.prototype.exitPythonReturnStatement = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new python.PythonStatement(exp,true)); }; EPromptoBuilder.prototype.exitPython2CategoryBinding = function(ctx) { var map = this.getNodeValue(ctx.binding); this.setNodeValue(ctx, new python.Python2NativeCategoryBinding(map)); }; EPromptoBuilder.prototype.exitPython3CategoryBinding = function(ctx) { var map = this.getNodeValue(ctx.binding); this.setNodeValue(ctx, new python.Python3NativeCategoryBinding(map)); }; EPromptoBuilder.prototype.exitPython_category_binding = function(ctx) { var identifier = ctx.identifier().getText(); var module = this.getNodeValue(ctx.python_module()) || null; var map = new python.PythonNativeCategoryBinding(identifier, module); this.setNodeValue(ctx, map); }; EPromptoBuilder.prototype.exitPython_method_expression = function(ctx) { var name = this.getNodeValue(ctx.name); var args = this.getNodeValue(ctx.args); var method = new python.PythonMethodExpression(name, args); this.setNodeValue(ctx, method); }; EPromptoBuilder.prototype.exitPythonGlobalMethodExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitPythonMethodExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitPython_module = function(ctx) { var ids = ctx.python_identifier().map(function(rule) { return rule.getText(); }); var module = new python.PythonModule(ids); this.setNodeValue(ctx, module); }; EPromptoBuilder.prototype.exitPython2NativeStatement = function(ctx) { var stmt = this.getNodeValue(ctx.python_native_statement()); this.setNodeValue(ctx, new python.Python2NativeCall(stmt)); }; EPromptoBuilder.prototype.exitPython3NativeStatement = function(ctx) { var stmt = this.getNodeValue(ctx.python_native_statement()); this.setNodeValue(ctx, new python.Python3NativeCall(stmt)); }; EPromptoBuilder.prototype.exitPython_native_statement = function(ctx) { var stmt = this.getNodeValue(ctx.python_statement()); var module = this.getNodeValue(ctx.python_module()); stmt.module = module || null; this.setNodeValue(ctx, new python.PythonNativeCall(stmt)); } EPromptoBuilder.prototype.exitPython_identifier = function(ctx) { this.setNodeValue(ctx, ctx.getText()); }; EPromptoBuilder.prototype.exitPythonIdentifier = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new python.PythonIdentifierExpression(null, name)); }; EPromptoBuilder.prototype.exitPythonIdentifierExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitPythonChildIdentifier = function(ctx) { var parent = this.getNodeValue(ctx.parent); var name = this.getNodeValue(ctx.name); var child = new python.PythonIdentifierExpression(parent, name); this.setNodeValue(ctx, child); }; EPromptoBuilder.prototype.exitPythonBooleanLiteral = function(ctx) { this.setNodeValue(ctx, new python.PythonBooleanLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitPythonIntegerLiteral = function(ctx) { this.setNodeValue(ctx, new python.PythonIntegerLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitPythonDecimalLiteral = function(ctx) { this.setNodeValue(ctx, new python.PythonDecimalLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitPythonCharacterLiteral = function(ctx) { this.setNodeValue(ctx, new python.PythonCharacterLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitPythonTextLiteral = function(ctx) { this.setNodeValue(ctx, new python.PythonTextLiteral(ctx.getText())); }; EPromptoBuilder.prototype.exitPythonLiteralExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitPythonPromptoIdentifier = function(ctx) { var name = ctx.DOLLAR_IDENTIFIER().getText(); this.setNodeValue(ctx, new python.PythonIdentifierExpression(null, name)); }; EPromptoBuilder.prototype.exitPythonPrimaryExpression = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitPythonArgumentList = function(ctx) { var ordinal = this.getNodeValue(ctx.ordinal); var named = this.getNodeValue(ctx.named); ordinal.addAll(named); this.setNodeValue(ctx, ordinal); }; EPromptoBuilder.prototype.exitPythonNamedOnlyArgumentList = function(ctx) { var named = this.getNodeValue(ctx.named); this.setNodeValue(ctx, named); }; EPromptoBuilder.prototype.exitPythonNamedArgumentList = function(ctx) { var name = this.getNodeValue(ctx.name); var exp = this.getNodeValue(ctx.exp); var arg = new python.PythonNamedArgument(name, exp); this.setNodeValue(ctx, new python.PythonArgumentList(arg)); }; EPromptoBuilder.prototype.exitPythonNamedArgumentListItem = function(ctx) { var name = this.getNodeValue(ctx.name); var exp = this.getNodeValue(ctx.exp); var arg = new python.PythonNamedArgument(name, exp); var items = this.getNodeValue(ctx.items); items.add(arg); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitPythonOrdinalOnlyArgumentList = function(ctx) { var ordinal = this.getNodeValue(ctx.ordinal); this.setNodeValue(ctx, ordinal); }; EPromptoBuilder.prototype.exitPythonOrdinalArgumentList = function(ctx) { var item = this.getNodeValue(ctx.item); var arg = new python.PythonOrdinalArgument(item); this.setNodeValue(ctx, new python.PythonArgumentList(arg)); }; EPromptoBuilder.prototype.exitPythonOrdinalArgumentListItem = function(ctx) { var item = this.getNodeValue(ctx.item); var arg = new python.PythonOrdinalArgument(item); var items = this.getNodeValue(ctx.items); items.add(arg); this.setNodeValue(ctx, items); }; EPromptoBuilder.prototype.exitPythonSelectorExpression = function(ctx) { var parent = this.getNodeValue(ctx.parent); var selector = this.getNodeValue(ctx.child); selector.parent = parent; this.setNodeValue(ctx, selector); }; EPromptoBuilder.prototype.exitPythonSelfExpression = function(ctx) { this.setNodeValue(ctx, new python.PythonSelfExpression()); }; EPromptoBuilder.prototype.exitJsxChild = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.jsx)); }; EPromptoBuilder.prototype.exitJsxCode = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new jsx.JsxCode(exp)); }; EPromptoBuilder.prototype.exitJsxExpression = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.exp)); }; EPromptoBuilder.prototype.exitJsxElement = function(ctx) { var elem = this.getNodeValue(ctx.opening); var closing = this.getNodeValue(ctx.closing); elem.setClosing(closing); var children = this.getNodeValue(ctx.children_); elem.setChildren(children); this.setNodeValue(ctx, elem); }; EPromptoBuilder.prototype.exitJsxSelfClosing = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.jsx)); }; EPromptoBuilder.prototype.exitJsxText = function(ctx) { var text = parser.ParserUtils.getFullText(ctx.text); this.setNodeValue(ctx, new jsx.JsxText(text)); }; EPromptoBuilder.prototype.exitJsxValue = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new jsx.JsxExpression(exp)); }; EPromptoBuilder.prototype.exitJsx_attribute = function(ctx) { var name = this.getNodeValue(ctx.name); var value = this.getNodeValue(ctx.value); var suite = this.getJsxWhiteSpace(ctx.jsx_ws()); this.setNodeValue(ctx, new jsx.JsxAttribute(name, value, suite)); }; EPromptoBuilder.prototype.exitJsx_children = function(ctx) { var list = ctx.jsx_child().map(function(cx) { return this.getNodeValue(cx); }, this); this.setNodeValue(ctx, list); }; EPromptoBuilder.prototype.exitJsx_element_name = function(ctx) { var name = ctx.getText(); this.setNodeValue(ctx, new grammar.Identifier(name)); }; EPromptoBuilder.prototype.exitJsx_expression = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.getChild(0))); }; EPromptoBuilder.prototype.exitJsx_identifier = function(ctx) { var name = ctx.getText(); this.setNodeValue(ctx, new grammar.Identifier(name)); }; EPromptoBuilder.prototype.exitJsxLiteral = function(ctx) { var text = ctx.getText(); this.setNodeValue(ctx, new jsx.JsxLiteral(text)); }; EPromptoBuilder.prototype.exitJsx_opening = function(ctx) { var name = this.getNodeValue(ctx.name); var nameSuite = this.getJsxWhiteSpace(ctx.jsx_ws()); var attributes = ctx.jsx_attribute() .map(function(cx) { return this.getNodeValue(cx); }, this); this.setNodeValue(ctx, new jsx.JsxElement(name, nameSuite, attributes, null)); }; EPromptoBuilder.prototype.exitJsx_closing = function(ctx) { var name = this.getNodeValue(ctx.name); this.setNodeValue(ctx, new jsx.JsxClosing(name, null)); }; EPromptoBuilder.prototype.exitJsx_self_closing = function(ctx) { var name = this.getNodeValue(ctx.name); var nameSuite = this.getJsxWhiteSpace(ctx.jsx_ws()); var attributes = ctx.jsx_attribute() .map(function(cx) { return this.getNodeValue(cx); }, this); this.setNodeValue(ctx, new jsx.JsxSelfClosing(name, nameSuite, attributes, null)); }; EPromptoBuilder.prototype.exitCssExpression = function(ctx) { this.setNodeValue(ctx, this.getNodeValue(ctx.exp)); } EPromptoBuilder.prototype.exitCss_expression = function(ctx) { var exp = new css.CssExpression(); ctx.css_field().forEach(function(cx) { var field = this.getNodeValue(cx); exp.addField(field); }, this); this.setNodeValue(ctx, exp); }; EPromptoBuilder.prototype.exitCss_field = function(ctx) { var name = ctx.name.getText(); var value = this.getNodeValue(ctx.value); this.setNodeValue(ctx, new css.CssField(name, value)); }; EPromptoBuilder.prototype.exitCssText = function(ctx) { var text = ctx.text.getText(); this.setNodeValue(ctx, new css.CssText(text)); }; EPromptoBuilder.prototype.exitCssValue = function(ctx) { var exp = this.getNodeValue(ctx.exp); this.setNodeValue(ctx, new css.CssCode(exp)); }; EPromptoBuilder.prototype.buildSection = function(node, section) { var first = this.findFirstValidToken(node.start.tokenIndex); var last = this.findLastValidToken(node.stop.tokenIndex); section.setSectionFrom(this.path, first, last, parser.Dialect.E); }; EPromptoBuilder.prototype.findFirstValidToken = function(idx) { if(idx===-1) { // happens because input.index() is called before any other read operation (bug?) idx = 0; } do { var token = this.readValidToken(idx++); if(token!==null) { return token; } } while(idx=0) { var token = this.readValidToken(idx--); if(token!==null) { return token; } } return null; }; EPromptoBuilder.prototype.readValidToken = function(idx) { var token = this.input.get(idx); var text = token.text; // ignore trailing whitespace if(text!==null && text.replace(/(\n|\r|\t|' ')/g,"").length>0) { return token; } else { return null; } }; exports.EPromptoBuilder = EPromptoBuilder; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { exports.AttributeArgument = __webpack_require__(120).AttributeArgument; exports.CategoryArgument = __webpack_require__(122).CategoryArgument; exports.ExtendedArgument = __webpack_require__(124).ExtendedArgument; exports.CodeArgument = __webpack_require__(125).CodeArgument; exports.UnresolvedArgument = __webpack_require__(127).UnresolvedArgument; __webpack_require__(124).resolve(); /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { var Argument = __webpack_require__(121).Argument; function AttributeArgument(id) { Argument.call(this, id); return this; } AttributeArgument.prototype = Object.create(Argument.prototype); AttributeArgument.prototype.constructor = AttributeArgument; AttributeArgument.prototype.toString = function() { return this.id.name; }; AttributeArgument.prototype.getProto = function() { return this.id.name; }; AttributeArgument.prototype.getTranspiledName = function(context) { return this.id.name; }; AttributeArgument.prototype.register = function(context) { context.registerValue(this, true); if(this.defaultExpression!=null) try { context.setValue(this.id, this.defaultExpression.interpret(context)); } catch(error) { throw new SyntaxError("Unable to register default value: "+ this.defaultExpression.toString() + " for argument: " + this.name); } }; AttributeArgument.prototype.check = function(context) { var actual = context.getRegisteredDeclaration(this.name); if(actual==null) throw new SyntaxError("Unknown attribute: \"" + this.name + "\""); }; AttributeArgument.prototype.getType = function(context) { var named = context.getRegisteredDeclaration(this.name); return named.getType(context); }; AttributeArgument.prototype.checkValue = function(context, value) { var actual = context.getRegisteredDeclaration(this.name); return actual.checkValue(context,value); }; AttributeArgument.prototype.declare = function(transpiler) { var decl = transpiler.context.getRegisteredDeclaration(this.name); decl.declare(transpiler); }; AttributeArgument.prototype.transpileCall = function(transpiler, expression) { var decl = transpiler.context.getRegisteredDeclaration(this.name); if(decl.constraint) { transpiler.append("$check_").append(this.name).append("("); Argument.prototype.transpileCall.call(this, transpiler, expression); transpiler.append(")"); } else Argument.prototype.transpileCall.call(this, transpiler, expression); }; AttributeArgument.prototype.equals = function(other) { return other === this || (other instanceof AttributeArgument && this.name === other.name); }; exports.AttributeArgument = AttributeArgument; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { var IntegerValue = __webpack_require__(80).IntegerValue; var DecimalValue = __webpack_require__(81).DecimalValue; var IntegerType = __webpack_require__(83).IntegerType; var DecimalType = __webpack_require__(82).DecimalType; function Argument(id) { this.id = id; this.mutable = false; this.defaultExpression = null; return this; } Object.defineProperty(Argument.prototype, "name", { get : function() { return this.id.name; } }); Argument.prototype.checkValue = function(context, expression) { var value = expression.interpret(context); if (value instanceof IntegerValue && this.getType(context)==DecimalType.instance) { return new DecimalValue(value.DecimalValue()); } else if (value instanceof DecimalValue && this.getType(context)==IntegerType.instance) { return new IntegerValue(value.IntegerValue()); } else { return value; } }; Argument.prototype.toDialect = function(writer) { if(this.mutable) writer.append("mutable "); writer.toDialect(this); if(this.defaultExpression!=null) { writer.append(" = "); this.defaultExpression.toDialect(writer); } }; Argument.prototype.transpile = function(transpiler, expression) { transpiler.append(this.name); }; Argument.prototype.transpileCall = function(transpiler, expression) { var expType = expression.check(transpiler.context); if (this.type === IntegerType.instance && expType === DecimalType.instance) { transpiler.append("Math.round("); expression.transpile(transpiler); transpiler.append(")"); } else expression.transpile(transpiler); }; exports.Argument = Argument; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { var Argument = __webpack_require__(121).Argument; var IdentifierList = __webpack_require__(123).IdentifierList; var SyntaxError = __webpack_require__(69).SyntaxError; var utils = __webpack_require__(50); function CategoryArgument(type, id, defaultExpression) { Argument.call(this, id); this.type = type; this.defaultExpression = defaultExpression || null; return this; } CategoryArgument.prototype = Object.create(Argument.prototype); CategoryArgument.prototype.constructor = CategoryArgument; CategoryArgument.prototype.getProto = function() { return this.type.name; }; CategoryArgument.prototype.getTranspiledName = function(context) { return this.type.getTranspiledName(context); }; CategoryArgument.prototype.equals = function(other) { return other === this || (other instanceof CategoryArgument && utils.equalObjects(this.type, other.type)); }; CategoryArgument.prototype.register = function(context) { var actual = context.getRegisteredValue(this.name); if(actual!==null) { throw new SyntaxError("Duplicate argument: \"" + this.name + "\""); } context.registerValue(this); if(this.defaultExpression!=null) context.setValue(this.id, this.defaultExpression.interpret(context)); }; CategoryArgument.prototype.check = function(context) { this.type.checkExists(context); }; CategoryArgument.prototype.declare = function(transpiler) { this.type.declare(transpiler); }; CategoryArgument.prototype.getType = function(context) { return this.type; }; CategoryArgument.prototype.toEDialect = function(writer) { var anonymous = "any"==this.type.name; this.type.toDialect(writer); if(anonymous) { writer.append(' '); writer.append(this.name); } if(!anonymous) { writer.append(' '); writer.append(this.name); } }; CategoryArgument.prototype.toODialect = function(writer) { this.type.toDialect(writer); writer.append(' '); writer.append(this.name); }; CategoryArgument.prototype.toMDialect = function(writer) { writer.append(this.name); writer.append(':'); this.type.toDialect(writer); }; exports.CategoryArgument = CategoryArgument; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; var Dialect = __webpack_require__(110).Dialect; function IdentifierList(item) { ObjectList.call(this); item = item || null; if(item!==null) { this.add(item); } return this; } IdentifierList.prototype = Object.create(ObjectList.prototype); IdentifierList.prototype.constructor = IdentifierList; IdentifierList.prototype.names = function() { return this.map(function(id) { return id.name; } ); }; IdentifierList.prototype.hasAttribute = function(name) { for(var i = 0; i < this.length; i++) { if(this[i].name===name) return true; } return false; }; IdentifierList.prototype.toDialect = function(writer, finalAnd) { finalAnd = finalAnd || false; switch(writer.dialect) { case Dialect.E: this.toEDialect(writer, finalAnd); break; case Dialect.O: this.toODialect(writer); break; case Dialect.M: this.toMDialect(writer); break; } }; IdentifierList.prototype.toEDialect = function(writer, finalAnd) { switch(this.length) { case 0: return; case 1: writer.append(this[0].name); break; default: for(var i=0;i0) { this.forEach(function(id) { writer.append(id.name); writer.append(", "); }); writer.trimLast(2); } }; IdentifierList.prototype.toMDialect = function(writer) { this.toODialect(writer); }; exports.IdentifierList = IdentifierList; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { var CategoryArgument = __webpack_require__(122).CategoryArgument; var IdentifierList = __webpack_require__(123).IdentifierList; var AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; var ConcreteCategoryDeclaration = null; var utils = __webpack_require__(50); exports.resolve = function() { ConcreteCategoryDeclaration = __webpack_require__(57).ConcreteCategoryDeclaration; } function ExtendedArgument(type, id, attributes) { CategoryArgument.call(this, type, id); this.attributes = attributes; return this; } ExtendedArgument.prototype = Object.create(CategoryArgument.prototype); ExtendedArgument.prototype.constructor = ExtendedArgument; ExtendedArgument.prototype.getProto = function() { return this.type.name + '(' + this.attributes.toString() + ')'; }; ExtendedArgument.prototype.equals = function(obj) { if(obj===this) { return true; } if(obj===null || obj===undefined) { return false; } if(!(obj instanceof ExtendedArgument)) { return false; } return utils.equalObjects(this.type, obj.type) && this.name===obj.name && utils.equalArrays(this.attributes, obj.attributes); }; ExtendedArgument.prototype.register = function(context) { var actual = context.getRegisteredValue(this.name); if(actual!==null) { throw new SyntaxError("Duplicate argument: \"" + this.id.name + "\""); } var declaration = new ConcreteCategoryDeclaration(this.id, this.attributes, new IdentifierList(this.type.id), null); context.registerDeclaration(declaration); context.registerValue(this); if(this.defaultExpression!=null) context.setValue(this.id, this.defaultExpression.interpret(context)); }; ExtendedArgument.prototype.check = function(context) { this.type.checkExists(context); if(this.attributes!==null) { this.attributes.forEach(function(attr) { var actual = context.getRegisteredDeclaration(attr); if (!actual instanceof AttributeDeclaration) { throw new SyntaxError("Unknown attribute: \"" + attr + "\""); } }); } }; ExtendedArgument.prototype.getType = function(context) { var decl = context.getRegisteredDeclaration(this.name); return decl ? decl.getType(context) : this.type; }; ExtendedArgument.prototype.toEDialect = function(writer) { this.type.toDialect(writer); writer.append(' '); writer.append(this.name); switch(this.attributes.length) { case 0: break; case 1: writer.append(" with attribute "); this.attributes.toDialect(writer, false); break; default: writer.append(" with attributes "); this.attributes.toDialect(writer, true); break; } }; ExtendedArgument.prototype.toODialect = function(writer) { this.type.toDialect(writer); writer.append('('); this.attributes.toDialect(writer, false); writer.append(')'); writer.append(' '); writer.append(this.name); }; ExtendedArgument.prototype.toMDialect = function(writer) { writer.append(this.name); writer.append(':'); this.type.toDialect(writer); writer.append('('); this.attributes.toDialect(writer, false); writer.append(')'); }; exports.ExtendedArgument = ExtendedArgument; /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { var CodeType = __webpack_require__(126).CodeType; var Argument = __webpack_require__(121).Argument; function CodeArgument(id) { Argument.call(this, id); return this; } CodeArgument.prototype = Object.create(Argument.prototype); CodeArgument.prototype.constructor = CodeArgument; CodeArgument.prototype.getProto = function() { return CodeType.instance.name; }; CodeArgument.prototype.register = function(context) { var actual = context.getRegisteredValue(this.name); if(actual!=null) { throw new SyntaxError("Duplicate argument: \"" + this.name + "\""); } context.registerValue(this); }; CodeArgument.prototype.check = function(context) { // nothing to do }; CodeArgument.prototype.declare = function(transpiler) { // nothing to do }; CodeArgument.prototype.getType = function(context) { return CodeType.instance; }; CodeArgument.prototype.toDialect = function(writer) { writer.append(CodeType.instance.name); writer.append(" "); writer.append(this.name); }; exports.CodeArgument = CodeArgument; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; function CodeType() { NativeType.call(this, new Identifier("Code")); return this; } CodeType.prototype = Object.create(NativeType.prototype); CodeType.prototype.constructor = CodeType; CodeType.instance = new CodeType(); /* @Override public Class toJavaClass() { return null; } */ exports.CodeType = CodeType; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { var ProblemCollector = __webpack_require__(128).ProblemCollector; var AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; var AttributeArgument = __webpack_require__(120).AttributeArgument; var MethodDeclarationMap = __webpack_require__(55).MethodDeclarationMap; var MethodArgument = __webpack_require__(129).MethodArgument; function UnresolvedArgument(id) { this.id = id; this.resolved = null; return this; } Object.defineProperty(UnresolvedArgument.prototype, "name", { get : function() { return this.id.name; } }); UnresolvedArgument.prototype.getTranspiledName = function(context) { this.resolveAndCheck(context); return this.resolved.getTranspiledName(context); }; UnresolvedArgument.prototype.toDialect = function(writer) { writer.append(this.name); if(this.defaultExpression!=null) { writer.append(" = "); this.defaultExpression.toDialect(writer); } }; UnresolvedArgument.prototype.check = function(context) { this.resolveAndCheck(context); }; UnresolvedArgument.prototype.getProto = function() { return this.name; }; UnresolvedArgument.prototype.getType = function(context) { this.resolveAndCheck(context); return this.resolved.getType(context); }; UnresolvedArgument.prototype.register = function(context) { this.resolveAndCheck(context); this.resolved.register(context); if(this.defaultExpression!=null) context.setValue(this.id, this.defaultExpression.interpret(context)); }; UnresolvedArgument.prototype.checkValue = function(context, value) { this.resolveAndCheck(context); return this.resolved.checkValue(context, value); }; UnresolvedArgument.prototype.resolveAndCheck = function(context) { if(this.resolved!=null) return; // ignore problems during resolution var listener = context.problemListener; try { context.problemListener = new ProblemCollector(); // try out various solutions var named = context.getRegisteredDeclaration(this.name); if (named instanceof AttributeDeclaration) { this.resolved = new AttributeArgument(this.id); } else if (named instanceof MethodDeclarationMap) { this.resolved = new MethodArgument(this.id); } } finally { // restore listener context.problemListener = listener; } if(this.resolved==null) context.problemListener.reportUnknownVariable(this.id); }; UnresolvedArgument.prototype.declare = function(transpiler) { this.resolveAndCheck(transpiler.context); this.resolved.declare(transpiler); }; UnresolvedArgument.prototype.transpile = function(transpiler) { this.resolveAndCheck(transpiler.context); this.resolved.transpile(transpiler); }; UnresolvedArgument.prototype.transpileCall = function(transpiler, expression) { this.resolveAndCheck(transpiler.context); this.resolved.transpileCall(transpiler, expression); }; UnresolvedArgument.prototype.equals = function(other) { return other === this || (other instanceof UnresolvedArgument && this.name === other.name); }; exports.UnresolvedArgument = UnresolvedArgument; /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { var antlr4 = __webpack_require__(1); function ProblemCollector() { antlr4.error.ErrorListener.call(this); this.problems = []; return this; } ProblemCollector.prototype = Object.create(antlr4.error.ErrorListener.prototype); ProblemCollector.prototype.constructor = ProblemCollector; ProblemCollector.prototype.collectProblem = function(problem) { this.problems.push(problem); }; ProblemCollector.prototype.readSection = function(section) { return { path : section.path, startLine : section.start.line, startColumn : section.start.column, endLine : section.end.line, endColumn : section.end.column }; } ProblemCollector.prototype.syntaxError = function(recognizer, offendingSymbol, line, column, msg, e) { var problem = { startLine: line, startColumn: column, endLine: line, endColumn: column + ( offendingSymbol ? offendingSymbol.text.length : 0 ), type: "error", message: msg }; ; this.collectProblem(problem); }; ProblemCollector.prototype.reportDuplicate = function(name, declaration) { var problem = this.readSection(declaration.id); problem.type = "error"; problem.message = "Duplicate name: " + name; this.collectProblem(problem); }; ProblemCollector.prototype.reportUnknownAttribute = function(id) { this.reportUnknown(id, "attribute"); }; ProblemCollector.prototype.reportUnknownCategory = function(id) { this.reportUnknown(id, "category"); }; ProblemCollector.prototype.reportUnknownMethod = function(id) { this.reportUnknown(id, "method"); }; ProblemCollector.prototype.reportUnknownVariable = function(id) { this.reportUnknown(id, "variable"); }; ProblemCollector.prototype.reportUnknownIdentifier = function(id) { this.reportUnknown(id, "identifier"); }; ProblemCollector.prototype.reportEmptyVariable = function(id) { var problem = this.readSection(id); problem.type = "error"; problem.message = "Empty variable: " + id.name; this.collectProblem(problem); }; ProblemCollector.prototype.reportUnknown = function(id, type) { var problem = this.readSection(id); problem.type = "error"; problem.message = "Unknown " + type + ": " + id.name; this.collectProblem(problem); }; ProblemCollector.prototype.reportNoMatchingPrototype = function(method) { var problem = this.readSection(method); problem.type = "error"; problem.message = "No matching prototype for: " + method.toString(); this.collectProblem(problem); }; ProblemCollector.prototype.reportCannotIterate = function(source) { var problem = this.readSection(source); problem.type = "error"; problem.message = "Cannot iterate over: " + source.toString(); this.collectProblem(problem); }; ProblemCollector.prototype.reportInvalidItem = function(parentType, itemType, source) { var problem = this.readSection(source); problem.type = "error"; problem.message = "Type: " + parentType.toString() + " cannot read item of type: " + itemType.toString(); this.collectProblem(problem); }; ProblemCollector.prototype.reportInvalidCast = function(expression, target, actual) { var problem = this.readSection(expression); problem.type = "error"; problem.message = "Cannot cast " + actual.toString() + " to " + target.toString(); this.collectProblem(problem); }; ProblemCollector.prototype.reportExpectingBoolean = function(expression, type) { var problem = this.readSection(expression); problem.type = "error"; problem.message = "Cannot test " + expression.toString() + ", expected a Boolean got a " + type.toString(); this.collectProblem(problem); } ProblemCollector.prototype.reportMissingClosingTag = function(opening) { var problem = this.readSection(opening.id); problem.type = "error"; problem.message = "Missing closing tag '</" + opening.id.name + ">"; this.collectProblem(problem); } ProblemCollector.prototype.reportInvalidClosingTag = function(closing, opening) { var problem = this.readSection(closing); problem.type = "error"; problem.message = "Invalid closing tag: , expected: "; this.collectProblem(problem); } ProblemCollector.prototype.reportInvalidMember = function(section, name) { var problem = this.readSection(section); problem.type = "error"; problem.message = "Invalid member '" + name + "' in " + this.name + " type"; this.collectProblem(problem); }; ProblemCollector.prototype.reportInvalidCopySource = function(section) { var problem = this.readSection(section); problem.type = "error"; problem.message = "Invalid copy source"; this.collectProblem(problem); }; ProblemCollector.prototype.reportNotAResource = function(section) { var problem = this.readSection(section); problem.type = "error"; problem.message = "Not a resource"; this.collectProblem(problem); }; ProblemCollector.prototype.reportNotAResourceContext = function(section) { var problem = this.readSection(section); problem.type = "error"; problem.message = "Not a resource context"; this.collectProblem(problem); }; ProblemCollector.prototype.reportIncompatibleTypes = function(section, left, right) { var problem = this.readSection(section); problem.type = "error"; problem.message = "Type " + left.name + " is not compatible with " + right.name; this.collectProblem(problem); }; exports.ProblemCollector = ProblemCollector; /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { var Argument = __webpack_require__(121).Argument; var MethodType = __webpack_require__(101).MethodType; function MethodArgument(id) { Argument.call(this, id); return this; } MethodArgument.prototype = Object.create(Argument.prototype); MethodArgument.prototype.constructor = MethodArgument; MethodArgument.prototype.getSignature = function(dialect) { return this.name; }; MethodArgument.prototype.toString = function() { return this.name; }; MethodArgument.prototype.getProto = function() { return this.name; }; MethodArgument.prototype.register = function(context) { var actual = context.getRegisteredValue(this.name); if(actual!=null) { throw new SyntaxError("Duplicate argument: \"" + this.name + "\""); } context.registerValue(this); }; MethodArgument.prototype.check = function(context) { var actual = context.getRegisteredDeclaration(this.name); if(actual==null) { throw new SyntaxError("Unknown method: \"" + this.name + "\""); } }; MethodArgument.prototype.getType = function(context) { var method = this.getDeclaration(context); return new MethodType(method); }; MethodArgument.prototype.getDeclaration = function(context) { var methods = context.getRegisteredDeclaration(this.name); if (methods) return methods.getFirst(); else return null; }; MethodArgument.prototype.declare = function(transpiler) { // nothing to do ? }; MethodArgument.prototype.getTranspiledName = function(context) { var method = this.getDeclaration(context); return method.getTranspiledName(context); }; MethodArgument.prototype.equals = function(other) { return other === this || (other instanceof MethodArgument && this.name === other.name); }; exports.MethodArgument = MethodArgument; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { exports.MatchingPatternConstraint = __webpack_require__(131).MatchingPatternConstraint; exports.MatchingCollectionConstraint = __webpack_require__(158).MatchingCollectionConstraint; exports.MatchingExpressionConstraint = __webpack_require__(159).MatchingExpressionConstraint; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { var InvalidDataError = __webpack_require__(132).InvalidDataError; var Identifier = __webpack_require__(73).Identifier; var Variable = __webpack_require__(91).Variable; function MatchingPatternConstraint(expression) { this.expression = expression; this.pattern = null; return this; } MatchingPatternConstraint.prototype.checkValue = function(context, value) { if(this.pattern==null) { var toMatch = this.expression.interpret(context); this.pattern = new RegExp(toMatch); } if(!this.pattern.test(value.toString())) { throw new InvalidDataError(value.toString() + " does not match:" + this.pattern.toString()); } }; MatchingPatternConstraint.prototype.toDialect = function(writer) { writer.append(" matching "); this.expression.toDialect(writer); } MatchingPatternConstraint.prototype.declare = function(transpiler, name, type) { var transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); this.expression.declare(transpiler); this.transpile = function(transpiler) { this.transpileChecker(transpiler, name, type); }; transpiler.declare(this); }; MatchingPatternConstraint.prototype.transpileChecker = function(transpiler, name, type) { transpiler.append("function $check_").append(name).append("(value) {").indent(); var transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); transpiler.append("if(new RegExp("); this.expression.transpile(transpiler); transpiler.append(").test(value))").indent(); transpiler.append("return value;").dedent(); transpiler.append("else").indent(); transpiler.append("throw new IllegalValueError((value == null ? 'null' : value.toString()) + ' does not match: ").append(this.expression.toString()).append("');").dedent(); transpiler.dedent().append("}").newLine(); transpiler.flush(); }; exports.MatchingPatternConstraint = MatchingPatternConstraint; /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { var ExecutionError = __webpack_require__(89).ExecutionError; var TextLiteral = __webpack_require__(133).TextLiteral; function InvalidDataError(message) { ExecutionError.call(this, message); return this; } InvalidDataError.prototype = Object.create(ExecutionError.prototype); InvalidDataError.prototype.constructor = InvalidDataError; InvalidDataError.prototype.getExpression = function(context) { return new TextLiteral("'" + this.message + "'"); }; exports.InvalidDataError = InvalidDataError; /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { var Literal = __webpack_require__(134).Literal; var TextValue = __webpack_require__(78).TextValue; var TextType = __webpack_require__(135).TextType; /*jshint evil:true*/ function unescape(text) { return eval(text); } function TextLiteral(text) { Literal.call(this, text, new TextValue(unescape(text))); return this; } TextLiteral.prototype = Object.create(Literal.prototype); TextLiteral.prototype.constructor = TextLiteral; TextLiteral.prototype.check = function(context) { return TextType.instance; }; TextLiteral.prototype.declare = function(transpiler) { // nothing to do }; TextLiteral.prototype.transpile = function(transpiler) { transpiler.append(this.text); }; exports.TextLiteral = TextLiteral; /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { var Section = __webpack_require__(61).Section; function Literal(text, value) { Section.call(this); this.text = text; this.value = value; return this; } Literal.prototype = Object.create(Section.prototype); Literal.prototype.constructor = Section; Literal.prototype.toDialect = function(writer) { writer.append(this.escapedText(writer.escapeMode)); }; Literal.prototype.escapedText = function(escapeMode) { if(escapeMode) return this.text.replace(/\'/g, "\\'"); else return this.text; }; Literal.prototype.toString = function() { return this.text; }; Literal.prototype.transpile = function(transpiler) { throw new Error("Transpile not implemented by " + this.constructor.name); }; Literal.prototype.getValue = function() { return this.value; }; Literal.prototype.interpret = function(context) { return this.value; }; exports.Literal = Literal; /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { var BuiltInMethodDeclaration = null; var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; var CharacterType = null; var ListType = null; var IntegerType = __webpack_require__(83).IntegerType; var BooleanType = __webpack_require__(72).BooleanType; var AnyType = __webpack_require__(74).AnyType; var Identifier = __webpack_require__(73).Identifier; var TextValue = null; // circular dependency var IntegerValue = __webpack_require__(80).IntegerValue; var BooleanValue = __webpack_require__(76).BooleanValue; var CategoryArgument = __webpack_require__(122).CategoryArgument; var TextLiteral = null; var ListValue = null; var List = __webpack_require__(136).List; var TypeFamily = __webpack_require__(137).TypeFamily; exports.resolve = function() { CharacterType = __webpack_require__(138).CharacterType; ListType = __webpack_require__(71).ListType; TextLiteral = __webpack_require__(133).TextLiteral; ListValue = __webpack_require__(141).ListValue; TextValue = __webpack_require__(78).TextValue; resolveBuiltInMethodDeclaration(); } function TextType() { NativeType.call(this, new Identifier("Text")); this.family = TypeFamily.TEXT; return this; } TextType.prototype = Object.create(NativeType.prototype); TextType.prototype.constructor = TextType; TextType.instance = new TextType(); TextType.prototype.isAssignableFrom = function(context, other) { return NativeType.prototype.isAssignableFrom.call(this, context, other) || (other == CharacterType.instance); }; TextType.prototype.declare = function(transpiler) { var isAText = __webpack_require__(51).isAText; transpiler.require(isAText); }; TextType.prototype.transpile = function(transpiler) { transpiler.append('"Text"'); }; TextType.prototype.checkAdd = function(context, other, tryReverse) { // can add anything to text return this; }; TextType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { left.declare(transpiler); right.declare(transpiler); }; TextType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { var DecimalType = __webpack_require__(82).DecimalType; // can add anything to text left.transpile(transpiler); transpiler.append(" + "); right.transpile(transpiler); if(other === DecimalType.instance) transpiler.append(".toDecimalString()"); }; TextType.prototype.checkMultiply = function(context, other, tryReverse) { if(other instanceof IntegerType) { return TextType.instance; } return NativeType.prototype.checkMultiply.call(this, context, other, tryReverse); }; TextType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareMultiply.call(this, transpiler, other, tryReverse, left, right); }; TextType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance) { left.transpile(transpiler); transpiler.append(".repeat("); right.transpile(transpiler); transpiler.append(")"); } else return NativeType.prototype.transpileMultiply.call(this, transpiler, other, tryReverse, left, right); }; TextType.prototype.checkCompare = function(context, other) { if(other instanceof TextType || other instanceof CharacterType) { return BooleanType.instance; } return NativeType.prototype.checkCompare.call(this, context, other); }; TextType.prototype.declareCompare = function(context, other) { // nothing to do }; TextType.prototype.transpileCompare = function(transpiler, other, operator, left, right) { left.transpile(transpiler); transpiler.append(" ").append(operator.toString()).append(" "); right.transpile(transpiler); }; TextType.prototype.checkItem = function(context, other, expression) { if(other==IntegerType.instance) { return CharacterType.instance; } else { return NativeType.prototype.checkItem.call(this, context, other, expression); } }; TextType.prototype.declareItem = function(transpiler, itemType, item) { // nothing to do }; TextType.prototype.transpileItem = function(transpiler, itemType, item) { transpiler.append("["); item.transpile(transpiler); transpiler.append("-1]"); }; TextType.prototype.checkMember = function(context, section, name) { if ("count"==name) { return IntegerType.instance; } else { return NativeType.prototype.checkMember.call(this, context, section, name); } }; TextType.prototype.declareMember = function(transpiler, name) { if ("count"!==name) { NativeType.prototype.declareMember.call(this, transpiler, name); } }; TextType.prototype.transpileMember = function(transpiler, name) { if ("count"==name) { transpiler.append("length"); } else { NativeType.prototype.transpileMember.call(this, transpiler, name); } }; TextType.prototype.checkContains = function(context, other) { if(other instanceof TextType || other instanceof CharacterType) { return BooleanType.instance; } return NativeType.prototype.checkContains.call(this, context, other); }; TextType.prototype.declareContains = function(transpiler, other, container, item) { container.declare(transpiler); item.declare(transpiler); }; TextType.prototype.transpileContains = function(transpiler, other, container, item) { container.transpile(transpiler); transpiler.append(".includes("); item.transpile(transpiler); transpiler.append(")"); }; TextType.prototype.checkContainsAllOrAny = function(context, other) { return BooleanType.instance; }; TextType.prototype.declareContainsAllOrAny = function(transpiler, other, container, items) { container.declare(transpiler); items.declare(transpiler); }; TextType.prototype.transpileContainsAll = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAll("); items.transpile(transpiler); transpiler.append(")"); }; TextType.prototype.transpileContainsAny = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAny("); items.transpile(transpiler); transpiler.append(")"); }; TextType.prototype.checkSlice = function(context) { return this; }; TextType.prototype.declareSlice = function(transpiler, first, last) { if(first) { first.declare(transpiler); } if(last) { last.declare(transpiler); } }; TextType.prototype.transpileSlice = function(transpiler, first, last) { transpiler.append(".slice1Based("); if(first) { first.transpile(transpiler); } else transpiler.append("null"); if(last) { transpiler.append(","); last.transpile(transpiler); } transpiler.append(")"); }; TextType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { if (typeof(value) == 'string') { return new TextValue(value); } else { return value; // TODO for now } } TextType.prototype.getMemberMethods = function(context, name) { switch (name) { case "startsWith": return [new StartsWithMethodDeclaration()]; case "endsWith": return [new EndsWithMethodDeclaration()]; case "toLowerCase": return [new ToLowerCaseMethodDeclaration()]; case "toUpperCase": return [new ToUpperCaseMethodDeclaration()]; case "toCapitalized": return [new ToCapitalizedMethodDeclaration()]; case "trim": return [new TrimMethodDeclaration()]; case "replace": return [new ReplaceMethodDeclaration()]; case "replaceAll": return [new ReplaceAllMethodDeclaration()]; case "split": return [new SplitMethodDeclaration()]; case "indexOf": return [new IndexOfMethodDeclaration()]; default: return NativeType.prototype.getMemberMethods.call(context, name); } }; function ToLowerCaseMethodDeclaration() { BuiltInMethodDeclaration.call(this, "toLowerCase"); return this; } function ToUpperCaseMethodDeclaration() { BuiltInMethodDeclaration.call(this, "toUpperCase"); return this; } function TrimMethodDeclaration() { BuiltInMethodDeclaration.call(this, "trim"); return this; } function ToCapitalizedMethodDeclaration() { BuiltInMethodDeclaration.call(this, "toCapitalized"); return this; } function SplitMethodDeclaration() { BuiltInMethodDeclaration.call(this, "split", new CategoryArgument(TextType.instance, new Identifier("separator"), new TextLiteral('" "'))); return this; } function StartsWithMethodDeclaration() { BuiltInMethodDeclaration.call(this, "startsWith", new CategoryArgument(TextType.instance, new Identifier("value"))); return this; } function EndsWithMethodDeclaration() { BuiltInMethodDeclaration.call(this, "endsWith", new CategoryArgument(TextType.instance, new Identifier("value"))); return this; } function ReplaceMethodDeclaration() { BuiltInMethodDeclaration.call(this, "replace", new CategoryArgument(TextType.instance, new Identifier("toReplace")), new CategoryArgument(TextType.instance, new Identifier("replaceWith"))); return this; } function ReplaceAllMethodDeclaration() { BuiltInMethodDeclaration.call(this, "replaceAll", new CategoryArgument(TextType.instance, new Identifier("toReplace")), new CategoryArgument(TextType.instance, new Identifier("replaceWith"))); return this; } function IndexOfMethodDeclaration() { BuiltInMethodDeclaration.call(this, "indexOf", new CategoryArgument(TextType.instance, new Identifier("value"))); return this; } function resolveBuiltInMethodDeclaration() { BuiltInMethodDeclaration = __webpack_require__(145).BuiltInMethodDeclaration; ToLowerCaseMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); ToLowerCaseMethodDeclaration.prototype.constructor = ToLowerCaseMethodDeclaration; ToLowerCaseMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); return new TextValue(value.toLowerCase()); }; ToLowerCaseMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; ToLowerCaseMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("toLowerCase()"); }; ToUpperCaseMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); ToUpperCaseMethodDeclaration.prototype.constructor = ToUpperCaseMethodDeclaration; ToUpperCaseMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); return new TextValue(value.toUpperCase()); }; ToUpperCaseMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; ToUpperCaseMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("toUpperCase()"); }; ToCapitalizedMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); ToCapitalizedMethodDeclaration.prototype.constructor = ToCapitalizedMethodDeclaration; ToCapitalizedMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); value = value.replace( /(^|\s)([a-z])/g , function(m, p1, p2){ return p1 + p2.toUpperCase(); } ); return new TextValue(value); }; ToCapitalizedMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("replace( /(^|\\s)([a-z])/g , function(m, p1, p2){ return p1 + p2.toUpperCase(); } )"); }; ToCapitalizedMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; TrimMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); TrimMethodDeclaration.prototype.constructor = TrimMethodDeclaration; TrimMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); value = value.trim(); return new TextValue(value); }; TrimMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; TrimMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("trim()"); }; ReplaceMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); ReplaceMethodDeclaration.prototype.constructor = ReplaceMethodDeclaration; ReplaceMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var toReplace = context.getValue(new Identifier("toReplace")).getStorableData(); var replaceWith = context.getValue(new Identifier("replaceWith")).getStorableData(); value = value.replace(toReplace, replaceWith); return new TextValue(value); }; ReplaceMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; ReplaceMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("replace("); assignments.find("toReplace").transpile(transpiler); transpiler.append(","); assignments.find("replaceWith").transpile(transpiler); transpiler.append(")"); }; ReplaceAllMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); ReplaceAllMethodDeclaration.prototype.constructor = ReplaceAllMethodDeclaration; ReplaceAllMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var toReplace = context.getValue(new Identifier("toReplace")).getStorableData(); var replaceWith = context.getValue(new Identifier("replaceWith")).getStorableData(); value = value.replace(new RegExp(toReplace, 'g'), replaceWith); return new TextValue(value); }; ReplaceAllMethodDeclaration.prototype.check = function(context) { return TextType.instance; }; ReplaceAllMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("replace(new RegExp("); assignments.find("toReplace").transpile(transpiler); transpiler.append(", 'g'),"); assignments.find("replaceWith").transpile(transpiler); transpiler.append(")"); }; SplitMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); SplitMethodDeclaration.prototype.constructor = SplitMethodDeclaration; SplitMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var sep = context.getValue(new Identifier("separator")).getStorableData(); var list = value.split(sep); var texts = list.map(function(s) { return new TextValue(s); }); return new ListValue(TextType.instance, texts); }; SplitMethodDeclaration.prototype.check = function(context) { return new ListType(TextType.instance); }; SplitMethodDeclaration.prototype.declareCall = function(transpiler) { transpiler.require(List); }; SplitMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("splitToList("); if(assignments) assignments[0].transpile(transpiler); else transpiler.append("' '"); // default transpiler.append(")"); }; StartsWithMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); StartsWithMethodDeclaration.prototype.constructor = StartsWithMethodDeclaration; StartsWithMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var find = context.getValue(new Identifier("value")).getStorableData(); var startsWith = value.indexOf(find)===0; return BooleanValue.ValueOf(startsWith); }; StartsWithMethodDeclaration.prototype.check = function(context) { return BooleanType.instance; }; StartsWithMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("startsWith("); assignments[0].transpile(transpiler); transpiler.append(")"); }; EndsWithMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); EndsWithMethodDeclaration.prototype.constructor = EndsWithMethodDeclaration; EndsWithMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var find = context.getValue(new Identifier("value")).getStorableData(); var endsWith = value.indexOf(find)===value.length-find.length; return BooleanValue.ValueOf(endsWith); }; EndsWithMethodDeclaration.prototype.check = function(context) { return BooleanType.instance; }; EndsWithMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("endsWith("); assignments[0].transpile(transpiler); transpiler.append(")"); }; IndexOfMethodDeclaration.prototype = Object.create(BuiltInMethodDeclaration.prototype); IndexOfMethodDeclaration.prototype.constructor = IndexOfMethodDeclaration; IndexOfMethodDeclaration.prototype.interpret = function(context) { var value = this.getValue(context).getStorableData(); var find = context.getValue(new Identifier("value")).getStorableData(); var index = value.indexOf(find); return new IntegerValue(index + 1); }; IndexOfMethodDeclaration.prototype.check = function(context) { return IntegerType.instance; }; IndexOfMethodDeclaration.prototype.transpileCall = function(transpiler, assignments) { transpiler.append("indexOf1Based("); assignments[0].transpile(transpiler); transpiler.append(")"); }; } exports.TextType = TextType; /***/ }), /* 136 */ /***/ (function(module, exports) { function List(mutable, items) { Array.call(this); if(items) this.addItems(items); this.mutable = mutable; return this; } List.prototype = Object.create(Array.prototype); List.prototype.constructor = List; List.prototype.addItems = function(items) { if(typeof(StrictSet) !== 'undefined' && items instanceof StrictSet) items = Array.from(items.set.values()); this.push.apply(this, items); return this; // enable fluid API }; List.prototype.add = function(items) { if(typeof(StrictSet) !== 'undefined' && items instanceof StrictSet) items = Array.from(items.set.values()); var concat = new List(false); concat.addItems(this); concat.addItems(items); return concat; }; List.prototype.remove = function(items) { var excluded = (typeof(StrictSet) !== 'undefined' && items instanceof StrictSet) ? items : new Set(items); var remaining = this.filter(function(item) { return !excluded.has(item); }); var concat = new List(false); concat.addItems(remaining); return concat; }; List.prototype.sorted = function(sortFunction) { var sorted = Array.from(this).sort(sortFunction); return new List(false, sorted); }; List.prototype.filtered = function(filterFunction) { var filtered = this.filter(filterFunction); return new List(false, filtered); }; List.prototype.item = function(idx) { if(idx==null) throw new ReferenceError(); else if(idx<1 || idx>this.length) throw new RangeError(); else return this[idx-1]; }; List.prototype.getItem = function (idx, create) { if(idx==null) throw new ReferenceError(); else if(idx<1 || idx>this.length) throw new RangeError(); else { if(!this[idx - 1] && create) this[idx - 1] = new Document(); return this[idx - 1] || null; } }; List.prototype.setItem = function (idx, value) { if(!this.mutable) throw new NotMutableError(); else if(idx==null) throw new ReferenceError(); else if(idx<1 || idx>this.length) throw new RangeError(); else this[idx-1] = value; }; List.prototype.has = function(item, noCheckEquals) { var set = new StrictSet(this); return set.has(item, noCheckEquals); }; List.prototype.hasAll = function(items, noCheckEquals) { var set = new StrictSet(this); return set.hasAll(items, noCheckEquals); }; List.prototype.hasAny = function(items, noCheckEquals) { var set = new StrictSet(this); return set.hasAny(items, noCheckEquals); }; List.prototype.slice1Based = function(start, last) { if(start) { if (start < 0 || start >= this.length) throw new RangeError(); start = start - 1; } else start = 0; if(!last) return new List(false, this.slice(start)); if(last >= 0) { if(last<=start || last>= this.length - 1) throw new RangeError(); return new List(false, this.slice(start, last)); } else { // TODO check Range return new List(false, this.slice(start, 1 + last)); } }; List.prototype.iterate = function (fn) { var self = this; return { length: self.length, iterator: function() { var idx = 0; return { hasNext: function() { return idx < self.length; }, next: function() { return fn(self[idx++]); } }; }, toArray: function() { var array = []; var iterator = this.iterator(); while(iterator.hasNext()) array.push(iterator.next()); return array; }, getText: function() { return this.toArray().join(", "); } } }; List.prototype.collectStorables = function(storablesToAdd) { this.forEach(function(item) { if(item && item.collectStorables) item.collectStorables(storablesToAdd); }); }; List.prototype.equals = function(o) { o = o || null; if(this===o) { return true; } if(!(o instanceof List) || this.length !== o.length) { return false; } for(var i=0;i=1) return new CharacterValue(value.value.substring(0, 1)); else throw new InvalidDataError("Cannot convert " + value.toString() + " to CharacterValue"); }; CharacterType.prototype.checkMember = function(context, section, name) { if ("codePoint"==name) { return IntegerType.instance; } else { return NativeType.prototype.checkMember.call(this, context, section, name); } }; CharacterType.prototype.declareMember = function(transpiler, name) { if ("codePoint"!==name) { NativeType.prototype.declareMember.call(this, transpiler, name); } }; CharacterType.prototype.transpileMember = function(transpiler, name) { if ("codePoint"==name) { transpiler.append("charCodeAt(0)"); } else { NativeType.prototype.transpileMember.call(this, transpiler, name); } }; CharacterType.prototype.checkAdd = function(context, other, tryReverse) { return TextType.instance; }; CharacterType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { left.declare(transpiler); right.declare(transpiler); }; CharacterType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { // can add anything to text left.transpile(transpiler); transpiler.append(" + "); right.transpile(transpiler); }; CharacterType.prototype.checkMultiply = function(context, other, tryReverse) { if(other === IntegerType.instance) { return TextType.instance; } return NativeType.prototype.checkMultiply.apply(this, context, other, tryReverse); }; CharacterType.prototype.declareMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance) { left.declare(transpiler); right.declare(transpiler); } else return NativeType.prototype.declareMultiply.call(this, transpiler, other, tryReverse, left, right); }; CharacterType.prototype.transpileMultiply = function(transpiler, other, tryReverse, left, right) { if (other === IntegerType.instance) { left.transpile(transpiler); transpiler.append(".repeat("); right.transpile(transpiler); transpiler.append(")"); } else return NativeType.prototype.transpileMultiply.call(this, transpiler, other, tryReverse, left, right); }; CharacterType.prototype.checkCompare = function(context, other) { if(other instanceof CharacterType || other instanceof TextType) { return BooleanType.instance; } return NativeType.prototype.checkCompare.apply(this, context, other); }; CharacterType.prototype.declareCompare = function(context, other) { // nothing to do }; CharacterType.prototype.transpileCompare = function(transpiler, other, operator, left, right) { left.transpile(transpiler); transpiler.append(" ").append(operator.toString()).append(" "); right.transpile(transpiler); }; CharacterType.prototype.checkRange = function(context, other) { if(other instanceof CharacterType) { return new RangeType(this); } else { return NativeType.prototype.checkRange.call(this, context, other); } }; CharacterType.prototype.declareRange = function(transpiler, other) { if(other === CharacterType.instance) { var module = __webpack_require__(140); transpiler.require(module.Range); transpiler.require(module.IntegerRange); transpiler.require(module.CharacterRange); } else { return NativeType.prototype.declareRange.call(this, transpiler, other); } }; CharacterType.prototype.transpileRange = function(transpiler, first, last) { transpiler.append("new CharacterRange("); first.transpile(transpiler); transpiler.append(","); last.transpile(transpiler); transpiler.append(")"); }; CharacterType.prototype.newRange = function(left, right) { if(left instanceof CharacterValue && right instanceof CharacterValue) { return new CharacterRange(left, right); } else { return CharacterType.prototype.newRange.call(this, left, right); } }; exports.CharacterType = CharacterType; /***/ }), /* 139 */ /***/ (function(module, exports, __webpack_require__) { var RangeValue = __webpack_require__(87).RangeValue; var IntegerValue = __webpack_require__(80).IntegerValue; var CharacterValue = null; var CharacterType = null; exports.resolve = function() { CharacterValue = __webpack_require__(79).CharacterValue; CharacterType = __webpack_require__(138).CharacterType; } function CharacterRange(left, right) { RangeValue.call(this, CharacterType.instance, left, right); return this; } CharacterRange.prototype = Object.create(RangeValue.prototype); CharacterRange.prototype.constructor = CharacterRange; CharacterRange.prototype.size = function() { return 1 + this.high.value.charCodeAt(0) - this.low.value.charCodeAt(0); }; CharacterRange.prototype.getItem = function(index) { var result = this.low.value.charCodeAt(0) + index - 1; if(result>this.high.value.charCodeAt(0)) { throw new IndexOutOfBoundsException(); } else { return new CharacterValue(String.fromCharCode(result)); } }; /* @Override public RangeValue newInstance(CharacterValue left, CharacterValue right) { return new CharacterRange(left, right); } */ exports.CharacterRange = CharacterRange; /***/ }), /* 140 */ /***/ (function(module, exports) { function Range(first, last) { this.first = first; this.last = last; return this; } Range.prototype.toString = function() { return "[" + this.first + ".." + this.last + "]"; }; Range.prototype.getText = Range.prototype.toString; Range.prototype.iterator = function() { var self = this; return { idx: 1, // since we are calling item() length: self.length, hasNext: function() { return this.idx <= this.length }, next : function() { return self.item(this.idx++); } }; }; Range.prototype.equals = function(obj) { if(Object.is(this, obj)) return true; else if(Object.getPrototypeOf(this) === Object.getPrototypeOf(obj)) return equalObjects(this.first, obj.first) && equalObjects(this.last, obj.last); else return false; }; Range.prototype.hasAll = function(items) { if(typeof(StrictSet) !== 'undefined' && items instanceof StrictSet) items = Array.from(items.set.values()); for (var i = 0; i < items.length; i++) { if (!this.has(items[i])) return false; } return true; }; Range.prototype.slice1Based = function(start, end) { this.checkRange(start, end); var range = Object.create(this); range.first = start ? this.item(start) : this.first; range.last = end ? ( end > 0 ? this.item(end) : this.item(this.length + 1 + end) ) : this.last; return range; }; Range.prototype.checkRange = function(start, end) { if(start && (start<1 || start>this.length)) throw new RangeError(); if(!start) start = 1; if(end) { if(end>=0 && (end<1 || end>this.length)) throw new RangeError(); else if(end<-this.length) throw new RangeError(); } }; Range.prototype.hasAny = function(items) { if(typeof(StrictSet) !== 'undefined' && items instanceof StrictSet) items = Array.from(items.set.values()); for (var i = 0; i < items.length; i++) { if (this.has(items[i])) return true; } return false; }; function IntegerRange(first, last) { Range.call(this, first, last); return this; } IntegerRange.prototype = Object.create(Range.prototype); IntegerRange.prototype.constructor = IntegerRange; Object.defineProperty(IntegerRange.prototype, "length", { get: function() { return 1 + this.last - this.first; } }); IntegerRange.prototype.item = function(idx) { return this.first + idx - 1; }; IntegerRange.prototype.has = function(value) { var int = Math.floor(value); return int==value && int>=this.first && int<=this.last; }; function CharacterRange(first, last) { IntegerRange.call(this, first.charCodeAt(0), last.charCodeAt(0)); return this; } CharacterRange.prototype = Object.create(IntegerRange.prototype); CharacterRange.prototype.constructor = CharacterRange; CharacterRange.prototype.has = function(value) { var int = value.charCodeAt(0); return int>=this.first && int<=this.last; }; CharacterRange.prototype.item = function(idx) { return String.fromCharCode(this.first + idx - 1); }; function DateRange(first, last) { Range.call(this, first, last); return this; } DateRange.prototype = Object.create(Range.prototype); DateRange.prototype.constructor = DateRange; Object.defineProperty(DateRange.prototype, "length", { get: function() { var h = this.last.valueOf(); var l = this.first.valueOf(); return 1 + ( (h-l)/(24*60*60*1000)); } }); DateRange.prototype.item = function(idx) { var millis = this.first.valueOf() + (idx-1)*(24*60*60*1000); if(millis > this.last.valueOf()) { throw new RangeError(); } else { return new LocalDate(millis); } }; DateRange.prototype.has = function(value) { var int = value.valueOf(); return int>=this.first.valueOf() && int<=this.last.valueOf(); }; function TimeRange(first, last) { Range.call(this, first, last); return this; } TimeRange.prototype = Object.create(Range.prototype); TimeRange.prototype.constructor = TimeRange; Object.defineProperty(TimeRange.prototype, "length", { get: function() { return 1 + (this.last.valueOf() - this.first.valueOf())/1000; } }); TimeRange.prototype.item = function(idx) { var result = this.first.valueOf() + (idx-1)*1000; if(result > this.last.valueOf()) { throw new RangeError(); } return new LocalTime(result); }; TimeRange.prototype.has = function(value) { var int = value.valueOf(); return int >= this.first.valueOf() && int <= this.last.valueOf(); }; exports.Range = Range; exports.IntegerRange = IntegerRange; exports.CharacterRange = CharacterRange; exports.DateRange = DateRange; exports.TimeRange = TimeRange; /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { var BaseValueList = __webpack_require__(142).BaseValueList; var BooleanValue = __webpack_require__(76).BooleanValue; var IntegerValue = __webpack_require__(80).IntegerValue; var multiplyArray = __webpack_require__(51).multiplyArray; var ListType = null; var SetValue = null; exports.resolve = function() { ListType = __webpack_require__(71).ListType; SetValue = __webpack_require__(143).SetValue; }; function ListValue(itemType, items, item, mutable) { BaseValueList.call(this, new ListType(itemType), items, item, mutable); this.storables = null; return this; } ListValue.prototype = Object.create(BaseValueList.prototype); ListValue.prototype.constructor = ListValue; ListValue.prototype.newInstance = function(items) { return new ListValue(this.type.itemType, items); }; ListValue.prototype.getStorableData = function() { if(this.storables == null) this.storables = this.items.map(function(item) { return item.getStorableData(); }); return this.storables; }; ListValue.prototype.collectStorables = function(list) { this.items.map(function(item) { item.collectStorables(list); }); }; ListValue.prototype.Add = function(context, value) { if (value instanceof ListValue) { var items = this.items.concat(value.items); return new ListValue(this.type.itemType, items); } else if(value instanceof SetValue) { var items1 = Array.from(value.items.set.values()); var items2 = this.items.concat(items1); return new ListValue(this.type.itemType, items2); } else { return BaseValueList.prototype.Add.apply(this, context, value); } }; ListValue.prototype.Subtract = function(context, value) { if (value instanceof ListValue) { var setValue = new SetValue(this.type.itemType); value = setValue.Add(context, value); } if(value instanceof SetValue) { var items = this.items.filter(function(item) { return !value.items.has(item); }); return new ListValue(this.type.itemType, items); } else { return BaseValueList.prototype.Subtract.apply(this, context, value); } }; ListValue.prototype.Multiply = function(context, value) { if (value instanceof IntegerValue) { var count = value.value; if (count < 0) { throw new SyntaxError("Negative repeat count:" + count); } else { var items = multiplyArray(this.items, count); return new ListValue(this.type.itemType, items); } } else { return BaseValueList.prototype.Multiply.apply(this, context, value); } }; ListValue.prototype.toDialect = function(writer) { writer.append('['); BaseValueList.prototype.toDialect.call(this, writer); writer.append(']'); }; ListValue.prototype.filter = function(context, itemId, filter) { var result = new ListValue(this.type.itemType); var iter = this.getIterator(context); while(iter.hasNext()) { var o = iter.next(); context.setValue(itemId, o); var test = filter.interpret(context); if(!(test instanceof BooleanValue)) { throw new InternalError("Illegal test result: " + test); } if(test.value) { result.add(o); } } return result; } exports.ListValue = ListValue; /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; var Container = __webpack_require__(77).Container; var IntegerValue = __webpack_require__(80).IntegerValue; var PromptoError = __webpack_require__(64).PromptoError; var InternalError = __webpack_require__(63).InternalError; var IndexOutOfRangeError = __webpack_require__(88).IndexOutOfRangeError; /* an abstract list of values, common to ListValue and TupleValue */ function BaseValueList(type, items, item, mutable) { Container.call(this, type); this.items = items || []; item = item || null; if(item!==null) { this.add(item); } this.mutable = mutable || false; return this; } BaseValueList.prototype = Object.create(Container.prototype); BaseValueList.prototype.constructor = BaseValueList; BaseValueList.prototype.toString = function() { return "[" + this.items.join(", ") + "]"; }; BaseValueList.prototype.add = function(o) { this.items.push(o); }; BaseValueList.prototype.setItem = function(index, value) { this.items[index] = value; }; BaseValueList.prototype.setItemInContext = function(context, index, value) { if (index instanceof IntegerValue) { var idx = index.IntegerValue() - 1; if (idx > this.items.length) { throw new IndexOutOfRangeError(); } this.items[idx] = value; } else throw new SyntaxError("No such item:" + index.toString()) }; BaseValueList.prototype.get = function(index) { return this.items[index]; }; BaseValueList.prototype.size = function() { return this.items.length; }; BaseValueList.prototype.isEmpty = function() { return this.items.length===0; }; BaseValueList.prototype.slice = function(fi, li) { var first = this.checkFirst(fi); var last = this.checkLast(li); var items = this.items.slice(first-1,last); return this.newInstance(items); }; BaseValueList.prototype.checkFirst = function(fi) { var value = (fi == null) ? 1 : fi.IntegerValue(); if (value < 1 || value > this.items.length) { throw new IndexOutOfRangeError(); } return value; }; BaseValueList.prototype.checkLast = function(li) { var value = (li == null) ? this.items.length : li.IntegerValue(); if (value < 0) { value = this.items.length + 1 + li.IntegerValue(); } if (value < 1 || value > this.items.length) { throw new IndexOutOfRangeError(); } return value; }; BaseValueList.prototype.hasItem = function(context, lval) { for (var i=0;ithis.items.length) { throw new IndexOutOfRangeError(); } var value = this.items[idx] || null; if(value==null) { return null; } if (value instanceof Value) { return value; } else { throw new InternalError("Item not a value!"); } } catch (e) { if(e instanceof PromptoError) { throw e; } else { throw new InternalError(e.toString()); } } } else throw new SyntaxError("No such item:" + index.toString()); }; BaseValueList.prototype.equals = function(obj) { if(obj instanceof BaseValueList) { if(this.items.length!=obj.items.length) { return false; } else { for(var i=0;i0) { this.items.forEach(function(o) { if(o.toDialect) o.toDialect(writer); else writer.append(o.toString()); writer.append(", "); }); writer.trimLast(2); } }; BaseValueList.prototype.toJson = function(context, json, instanceId, fieldName, withType, binaries) { var values = []; this.items.map(function(item) { item.toJson(context, values, instanceId, fieldName, withType, binaries); }); if(Array.isArray(json)) json.push(values); else json[fieldName] = values; }; exports.BaseValueList = BaseValueList; /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { var BooleanValue = __webpack_require__(76).BooleanValue; var Value = __webpack_require__(77).Value; var IntegerValue = __webpack_require__(80).IntegerValue; var SetType = __webpack_require__(144).SetType; var StrictSet = __webpack_require__(85).StrictSet; var ListValue = null; exports.resolve = function() { SetType = __webpack_require__(144).SetType; ListValue = __webpack_require__(141).ListValue; }; function SetValue(itemType, items) { Value.call(this, new SetType(itemType)); this.itemType = null; this.items = items || new StrictSet(); return this; } SetValue.prototype = Object.create(Value.prototype); SetValue.prototype.constructor = SetValue; SetValue.prototype.add = function(item) { this.items.add(item); }; SetValue.prototype.toString = function() { return this.items.toString(); }; SetValue.prototype.size = function() { return this.items.length; }; SetValue.prototype.getMemberValue = function(context, name) { if ("count"==name) { return new IntegerValue(this.items.length); } else { return Value.prototype.getMemberValue.call(this, context, name); } }; SetValue.prototype.isEmpty = function() { return this.items.length === 0; }; SetValue.prototype.hasItem = function(context, item) { return this.items.has(item); }; SetValue.prototype.getItemInContext = function(context, index) { if (index instanceof IntegerValue) { var idx = index.IntegerValue(); var items = Array.from(this.items.set.values()); if(idx<1 || idx>items.length) throw new IndexOutOfRangeError(); return items[idx-1]; } else throw new SyntaxError("No such item:" + index.toString()); }; SetValue.prototype.Add = function(context, value) { if (value instanceof SetValue || value instanceof ListValue) { var set = new StrictSet(); set.addItems(this.items); set.addItems(value.items); return new SetValue(this.type.itemType, set); } else { return Value.prototype.Add.apply(this, context, value); } }; SetValue.prototype.Subtract = function(context, value) { if (value instanceof ListValue) { var setValue = new SetValue(this.type.itemType); value = setValue.Add(context, value); } if (value instanceof SetValue) { var set = new StrictSet(); var iter = this.items.iterator(); while(iter.hasNext()) { var item = iter.next(); if(!value.items.has(item)) set.set.add(item); } return new SetValue(this.type.itemType, set); } else { return Value.prototype.Subtract.apply(this, context, value); } }; SetValue.prototype.filter = function(context, itemId, filter) { var result = new SetValue(this.type.itemType); var iter = this.getIterator(context); while(iter.hasNext()) { var o = iter.next(); context.setValue(itemId, o); var test = filter.interpret(context); if(!(test instanceof BooleanValue)) { throw new InternalError("Illegal test result: " + test); } if(test.value) { result.add(o); } } return result; } SetValue.prototype.getIterator = function(context) { return this.items.iterator(); }; SetValue.prototype.equals = function(obj) { if(obj instanceof SetValue) { return this.items.equals(obj.items); } else { return false; } }; exports.SetValue = SetValue; /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { var ContainerType = __webpack_require__(65).ContainerType; var ListType = __webpack_require__(71).ListType; var IntegerType = __webpack_require__(83).IntegerType; var BooleanType = __webpack_require__(72).BooleanType; var Identifier = __webpack_require__(73).Identifier; function SetType(itemType) { ContainerType.call(this, new Identifier(itemType.name+"<>"), itemType); this.itemType = itemType; return this; } SetType.prototype = Object.create(ContainerType.prototype); SetType.prototype.constructor = SetType; SetType.prototype.withItemType = function(itemType) { return new SetType(itemType); }; SetType.prototype.getTranspiledName = function(context) { return this.itemType.getTranspiledName(context) + "_set"; }; SetType.prototype.equals = function(obj) { if(obj===this) { return true; } if(obj===null) { return false; } if(!(obj instanceof SetType)) { return false; } return this.itemType.equals(obj.itemType); }; SetType.prototype.checkAdd = function(context, other, tryReverse) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { return this; } else { return ContainerType.prototype.checkAdd.call(this, context, other, tryReverse); } }; SetType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareAdd.call(this, transpiler, other, tryReverse, left, right); } }; SetType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { left.transpile(transpiler); transpiler.append(".addAll("); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileAdd.call(this, transpiler, other, tryReverse, left, right); } }; SetType.prototype.checkSubtract = function(context, other) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { return this; } else { return ContainerType.prototype.checkSubtract.call(this, context, other); } }; SetType.prototype.declareSubtract = function(transpiler, other, left, right) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareSubtract.call(this, transpiler, other, left, right); } }; SetType.prototype.transpileSubtract= function(transpiler, other, left, right) { if((other instanceof SetType || other instanceof ListType) && this.itemType.equals(other.itemType)) { left.transpile(transpiler); transpiler.append(".remove("); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileSubtract.call(this, transpiler, other, left, right); } }; SetType.prototype.checkItem = function(context, other, expression) { if(other==IntegerType.instance) { return this.itemType; } else { return ContainerType.prototype.checkItem.call(this, context, other, expression); } }; SetType.prototype.declareItem = function(transpiler, itemType, item) { // nothing to do }; SetType.prototype.transpileItem = function(transpiler, itemType, item) { transpiler.append(".item("); item.transpile(transpiler); transpiler.append("-1)"); }; SetType.prototype.declareContains = function(transpiler, other, container, item) { container.declare(transpiler); item.declare(transpiler); }; SetType.prototype.transpileContains = function(transpiler, other, container, item) { container.transpile(transpiler); transpiler.append(".has("); item.transpile(transpiler); transpiler.append(")"); }; SetType.prototype.checkContainsAllOrAny = function(context, other) { return BooleanType.instance; } SetType.prototype.declareContainsAllOrAny = function(transpiler, other, container, items) { var StrictSet = __webpack_require__(85).StrictSet; transpiler.require(StrictSet); container.declare(transpiler); items.declare(transpiler); }; SetType.prototype.transpileContainsAll = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAll("); items.transpile(transpiler); transpiler.append(")"); }; SetType.prototype.transpileContainsAny = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAny("); items.transpile(transpiler); transpiler.append(")"); }; SetType.prototype.checkIterator = function(context, source) { return this.itemType; } SetType.prototype.isAssignableFrom = function(context, other) { return ContainerType.prototype.isAssignableFrom.call(this, context, other) || ((other instanceof SetType) && this.itemType.isAssignableFrom(context, other.itemType)); }; exports.SetType = SetType; /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { var BaseMethodDeclaration = __webpack_require__(146).BaseMethodDeclaration; var ArgumentList = __webpack_require__(147).ArgumentList; var BuiltInContext = null; exports.resolve = function() { BuiltInContext = __webpack_require__(55).BuiltInContext; }; function BuiltInMethodDeclaration(name) { var args = null; if ( arguments.length > 1 ) { args = new ArgumentList(); for(var i = 1;i0) return this.name; else return [this.name].concat(this.args.map(function(arg) { return arg.getTranspiledName(context); })).join("$"); }; BaseMethodDeclaration.prototype.transpileProlog = function(transpiler) { if (this.memberOf) transpiler.append(this.memberOf.name).append(".prototype.").append(this.getTranspiledName(transpiler.context)).append(" = function ("); else transpiler.append("function ").append(this.getTranspiledName(transpiler.context)).append(" ("); this.args.transpile(transpiler); transpiler.append(") {").indent(); }; BaseMethodDeclaration.prototype.transpileEpilog = function(transpiler) { transpiler.dedent().append("}"); if(this.memberOf) transpiler.append(";"); transpiler.newLine(); }; BaseMethodDeclaration.prototype.unregister = function(context) { context.unregisterMethodDeclaration (this, this.getProto(context)); }; BaseMethodDeclaration.prototype.register = function(context) { context.registerMethodDeclaration(this); }; BaseMethodDeclaration.prototype.registerArguments = function(context) { if(this.args!=null) { this.args.register(context); } }; BaseMethodDeclaration.prototype.declareArguments = function(transpiler) { if(this.args!=null) { this.args.declare(transpiler); } }; BaseMethodDeclaration.prototype.isAssignableTo = function(context, assignments, checkInstance, allowDerived) { var listener = context.problemListener; try { context.problemListener = new ProblemListener(); var local = context.newLocalContext(); this.registerArguments(local); var assignmentsList = new ArgumentAssignmentList(assignments); for(var i=0;i=0 ? assignmentsList[idx] : null; if(assignment==null) { // missing argument if(argument.defaultExpression!=null) assignment = new ArgumentAssignment(argument, argument.defaultExpression); else return false; } if(!assignment.isAssignableToArgument(local, argument, this, checkInstance, allowDerived)) { return false; } if(idx>=0) assignmentsList.remove(idx); } return assignmentsList.length===0; } catch (e) { if(e instanceof SyntaxError) { return false; } else { throw e; } } finally { context.problemListener = listener; } }; BaseMethodDeclaration.prototype.isEligibleAsMain = function() { return false; }; exports.BaseMethodDeclaration = BaseMethodDeclaration; /***/ }), /* 147 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; var CodeArgument = __webpack_require__(125).CodeArgument; function ArgumentList() { ObjectList.call(this); for (var i=0; i < arguments.length; i++) { this.add(arguments[i]); } return this; } ArgumentList.prototype = Object.create(ObjectList.prototype); ArgumentList.prototype.constructor = ArgumentList; ArgumentList.prototype.register = function(context) { this.forEach(function(arg) { arg.register(context); }); }; ArgumentList.prototype.check = function(context) { this.forEach(function(arg) { arg.check(context); }); }; ArgumentList.prototype.declare = function(transpiler) { this.forEach(function(arg) { arg.declare(transpiler); }); }; ArgumentList.prototype.find = function(name) { for(var i=0;i1) { writer.trimLast(2); writer.append(" and "); } this[this.length-1].toDialect(writer); writer.append(" "); }; ArgumentList.prototype.toODialect = function(writer) { if(this.length>0) { this.forEach(function(arg) { arg.toDialect(writer); writer.append(", "); }); writer.trimLast(2); } }; ArgumentList.prototype.toMDialect = function(writer) { this.toODialect(writer); }; ArgumentList.prototype.transpile = function(transpiler) { var args = this.filter(function(arg) { return !(arg instanceof CodeArgument); }) if(args.length>0) { args.forEach(function (arg) { arg.transpile(transpiler); transpiler.append(", "); }); transpiler.trimLast(2); } }; exports.ArgumentList = ArgumentList; /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; var Dialect = __webpack_require__(110).Dialect; var ContextualExpression = __webpack_require__(149).ContextualExpression; var AttributeArgument = __webpack_require__(120).AttributeArgument; var ArgumentAssignment = __webpack_require__(150).ArgumentAssignment; var AndExpression = null; var UnresolvedIdentifier = null; exports.resolve = function() { AndExpression = __webpack_require__(156).AndExpression; UnresolvedIdentifier = __webpack_require__(94).UnresolvedIdentifier; } function ArgumentAssignmentList(items) { ObjectList.call(this, items || []); return this; } ArgumentAssignmentList.prototype = Object.create(ObjectList.prototype); ArgumentAssignmentList.prototype.constructor = ArgumentAssignmentList; /* post-fix expression priority for final assignment in E dialect */ /* 'xyz with a and b as c' should read 'xyz with a, b as c' NOT 'xyz with (a and b) as c' */ ArgumentAssignmentList.prototype.checkLastAnd = function() { var assignment = this.slice(-1).pop(); if(assignment!=null && assignment.argument!=null && assignment.expression instanceof AndExpression) { var and = assignment.expression; if(and.left instanceof UnresolvedIdentifier) { var id = and.left.id; var leading = id.name.charAt(0); if(leading !== leading.toUpperCase()) { this.pop(); // add AttributeArgument var argument = new AttributeArgument(id); var attribute = new ArgumentAssignment(argument, null); this.add(attribute); // fix last assignment assignment.expression = and.right; this.add(assignment); } } } }; ArgumentAssignmentList.prototype.findIndex = function(name) { for(var i=0;i0 && this[0].argument==null) index = 0; if(index>=0) { assignment = local[index]; local.splice(index, 1); } if(assignment==null) { if (argument.defaultExpression != null) assignments.push(new ArgumentAssignment(argument, argument.defaultExpression)); else throw new SyntaxError("Missing argument:" + argument.name); } else { var expression = new ContextualExpression(context, assignment.expression); assignments.push(new ArgumentAssignment(argument, expression)); } } if(local.length > 0) throw new SyntaxError("Method has no argument:" + local[0].name); return assignments; }; ArgumentAssignmentList.prototype.toDialect = function(writer) { writer.toDialect(this); }; ArgumentAssignmentList.prototype.toEDialect = function(writer) { var idx = 0; // anonymous argument before 'with' if(this.length>0 && this[0].argument==null) { writer.append(' '); this[idx++].toDialect(writer); } if(idx0) writer.trimLast(2); writer.append(")"); }; ArgumentAssignmentList.prototype.toMDialect = function(writer) { this.toODialect(writer); }; ArgumentAssignmentList.prototype.declare = function(transpiler) { this.forEach(function(arg) { arg.declare(transpiler); }); }; ArgumentAssignmentList.prototype.transpile = function(transpiler) { transpiler.append("("); this.forEach(function(arg) { arg.transpile(transpiler); transpiler.append(", "); }); if(this.length>0) transpiler.trimLast(2); transpiler.append(")"); }; exports.ArgumentAssignmentList = ArgumentAssignmentList; /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; function ContextualExpression(calling, expression) { Value.call(this, null); // TODO check that this is not a problem this.calling = calling; this.expression = expression; return this; } ContextualExpression.prototype = Object.create(Value.prototype); ContextualExpression.prototype.constructor = ContextualExpression; ContextualExpression.prototype.toDialect = function(dialect) { return this.expression.toDialect(dialect); }; ContextualExpression.prototype.check = function(context) { return this.expression.check(this.calling); }; ContextualExpression.prototype.interpret = function(context) { return this.expression.interpret(this.calling); }; ContextualExpression.prototype.transpile = function(transpiler) { transpiler = transpiler.newChildTranspiler(this.calling); this.expression.transpile(transpiler); transpiler.flush(); }; exports.ContextualExpression = ContextualExpression; /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { var CategoryType = null; var InstanceExpression = __webpack_require__(151).InstanceExpression; var MemberSelector = __webpack_require__(102).MemberSelector; var Variable = __webpack_require__(91).Variable; var VoidType = __webpack_require__(153).VoidType; var PromptoError = __webpack_require__(64).PromptoError; var Specificity = __webpack_require__(155).Specificity; exports.resolve = function() { CategoryType = __webpack_require__(93).CategoryType; } function ArgumentAssignment(argument, expression) { this.argument = argument; this._expression = expression; return this; } Object.defineProperty(ArgumentAssignment.prototype, "id", { get : function() { return this.argument.id; } }); Object.defineProperty(ArgumentAssignment.prototype, "name", { get : function() { return this.argument ? this.argument.name : null; } }); Object.defineProperty(ArgumentAssignment.prototype, "expression", { get : function() { return this._expression ? this._expression : new InstanceExpression(this.id); }, set : function(expression) { this._expression = expression; } }); // needed for error reporting Object.defineProperty(ArgumentAssignment.prototype, "end", { get : function() { return this.expression.end; } }); ArgumentAssignment.prototype.toDialect = function(writer) { writer.toDialect(this); }; ArgumentAssignment.prototype.toODialect = function(writer) { if(!this._expression) { writer.append(this.argument.name); } else { if (this.argument != null) { writer.append(this.argument.name); writer.append(" = "); } this._expression.toDialect(writer); } }; ArgumentAssignment.prototype.toMDialect = function(writer) { if(!this._expression) { writer.append(this.argument.name); } else { if (this.argument != null) { writer.append(this.argument.name); writer.append(" = "); } this._expression.toDialect(writer); } }; ArgumentAssignment.prototype.toEDialect = function(writer) { if(!this._expression) { writer.append(this.argument.name); } else { this._expression.toDialect(writer); if (this.argument != null) { writer.append(" as "); writer.append(this.argument.name); } } }; ArgumentAssignment.prototype.declare = function(transpiler) { if(this._expression) this._expression.declare(transpiler); }; ArgumentAssignment.prototype.transpile = function(transpiler) { this._expression.transpile(transpiler); }; ArgumentAssignment.prototype.toString = function() { if(!this._expression) { return this.argument.name; } else { if (this.argument === null) { return this._expression.toString(); } else { return this.name + " = " + this._expression.toString(); } } }; ArgumentAssignment.prototype.equals = function(obj) { if(obj==this) { return true; } else if(obj==null) { return false; } else if(!(obj instanceof ArgumentAssignment)) { return false; } else { return this.argument.equals(obj.argument) && this.expression.equals(other.expression); } }; ArgumentAssignment.prototype.check = function(context) { var actual = context.getRegisteredValue(this.argument.name); if(actual==null) { var actualType = this.expression.check(context); context.registerValue(new Variable(this.argument.id, actualType)); } else { // need to check type compatibility var actualType = actual.getType(context); var newType = this.expression.check(context); actualType.checkAssignableFrom(context, newType, this); } return VoidType.instance; }; ArgumentAssignment.prototype.resolve = function(context, methodDeclaration, checkInstance, allowDerived) { // since we support implicit members, it's time to resolve them var name = this.argument.name; var expression = this.expression; var argument = methodDeclaration.args.find(name); var required = argument.getType(context); var actual = expression.check(context.getCallingContext()); if(checkInstance && actual instanceof CategoryType) { var value = expression.interpret(context.getCallingContext()); if(value && value.getType) { actual = value.getType(); } } var assignable = required.isAssignableFrom(context, actual); // when in dispatch, allow derived if(!assignable && allowDerived) assignable = actual.isAssignableFrom(context, required); // try passing member if(!assignable && (actual instanceof CategoryType)) { expression = new MemberSelector(expression, this.argument.id); } return expression; }; ArgumentAssignment.prototype.makeAssignment = function(context, declaration) { var argument = this.argument; // when 1st argument, can be unnamed if(argument===null) { if(declaration.args.length==0) { throw new SyntaxError("Method has no argument"); } argument = declaration.args[0]; } else { argument = declaration.args.find(this.name); } if(argument==null) { throw new SyntaxError("Method has no argument:" + this.name); } }; ArgumentAssignment.prototype.isAssignableToArgument = function(context, argument, declaration, checkInstance, allowDerived) { return this.computeSpecificity(context, argument, declaration, checkInstance, allowDerived)!==Specificity.INCOMPATIBLE; }; ArgumentAssignment.prototype.computeSpecificity = function(context, argument, declaration, checkInstance, allowDerived) { try { var required = argument.getType(context); var actual = this.expression.check(context); // retrieve actual runtime type if(checkInstance && (actual instanceof CategoryType)) { var value = this.expression.interpret(context.getCallingContext()); if(value && value.getType) { actual = value.getType(); } } if(actual.equals(required)) { return Specificity.EXACT; } else if(required.isAssignableFrom(context, actual)) { return Specificity.INHERITED; } else if(allowDerived && actual.isAssignableFrom(context, required)) { return Specificity.DERIVED; } actual = this.resolve(context, declaration, checkInstance).check(context); if(required.isAssignableFrom(context, actual)) { return Specificity.IMPLICIT; } else if(allowDerived && actual.isAssignableFrom(context, required)) { return Specificity.IMPLICIT; } } catch(error) { if(!(error instanceof PromptoError )) { throw error; } } return Specificity.INCOMPATIBLE; }; exports.ArgumentAssignment = ArgumentAssignment; /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { var Variable = __webpack_require__(91).Variable; var LinkedVariable = __webpack_require__(152).LinkedVariable; var Identifier = __webpack_require__(73).Identifier; var Argument = __webpack_require__(121).Argument; var Dialect = __webpack_require__(110).Dialect; var CategoryDeclaration = null; var VoidType = __webpack_require__(153).VoidType; var MethodType = __webpack_require__(101).MethodType; var ClosureValue = __webpack_require__(154).ClosureValue; var Section = __webpack_require__(61).Section; var AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; var MethodDeclarationMap = null; var InstanceContext = null; exports.resolve = function() { CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; MethodDeclarationMap = __webpack_require__(55).MethodDeclarationMap; InstanceContext = __webpack_require__(55).InstanceContext; } function InstanceExpression(id) { Section.prototype.copySectionFrom.call(this, id); this.id = id; return this; } Object.defineProperty(InstanceExpression.prototype, "name", { get : function() { return this.id.name; } }); InstanceExpression.prototype.toString = function() { return this.name; }; InstanceExpression.prototype.declare = function(transpiler) { var named = transpiler.context.getRegistered(this.name); if(named instanceof MethodDeclarationMap) { var decl = named.getFirst(); // don't declare member methods if(decl.memberOf!=null) return; // don't declare closures if(decl.declarationStatement) return; decl.declare(transpiler); } }; InstanceExpression.prototype.transpile = function(transpiler) { var context = transpiler.context.contextForValue(this.name); if(context instanceof InstanceContext) { context.instanceType.transpileInstance(transpiler); transpiler.append("."); } var named = transpiler.context.getRegistered(this.name); if(named instanceof MethodDeclarationMap) { transpiler.append(named.getFirst().getTranspiledName()); // need to bind instance methods if(context instanceof InstanceContext) { transpiler.append(".bind("); context.instanceType.transpileInstance(transpiler); transpiler.append(")"); } } else { if (transpiler.getterName === this.name) transpiler.append("$"); transpiler.append(this.name); } }; InstanceExpression.prototype.toDialect = function(writer, requireMethod) { if(requireMethod === undefined) requireMethod = true; if(requireMethod && this.requiresMethod(writer)) writer.append("Method: "); writer.append(this.name); }; InstanceExpression.prototype.requiresMethod = function(writer) { if(writer.dialect!=Dialect.E) return false; var o = writer.context.getRegistered(this.name); if(o instanceof MethodDeclarationMap) return true; return false; }; InstanceExpression.prototype.check = function(context) { var named = context.getRegistered(this.id.name); if(named==null) { named = context.getRegisteredDeclaration(this.id.name); } if (named instanceof Variable) { // local variable return named.getType(context); } else if(named instanceof LinkedVariable) { // local variable return named.getType(context); } else if (named instanceof Argument) { // named argument return named.getType(context); } else if(named instanceof CategoryDeclaration) { // any p with x return named.getType(context); } else if(named instanceof AttributeDeclaration) { // in category method return named.getType(context); } else if(named instanceof MethodDeclarationMap) { // global method or closure return new MethodType(named.getFirst()); } else { context.problemListener.reportUnknownVariable(this.id); return VoidType.instance; } }; InstanceExpression.prototype.interpret = function(context) { if(context.hasValue(this.id)) { return context.getValue(this.id); } else { var named = context.getRegistered(this.id); if (named instanceof MethodDeclarationMap) { var decl = named.getFirst(); return new ClosureValue(context, new MethodType(decl)) } else { throw new SyntaxError("No method with name:" + this.name); } } }; exports.InstanceExpression = InstanceExpression; /***/ }), /* 152 */ /***/ (function(module, exports) { /* used for downcast */ function LinkedVariable (type, linked) { this.type = type; this.linked = linked; return this; } LinkedVariable.prototype.getType = function(context) { return this.type; }; Object.defineProperty(LinkedVariable.prototype, "name", { get : function() { return this.linked.name; } }); exports.LinkedVariable = LinkedVariable; /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; function VoidType() { NativeType.call(this, new Identifier("Void")); return this; } VoidType.prototype = Object.create(NativeType.prototype); VoidType.prototype.constructor = VoidType; VoidType.prototype.isAssignableFrom = function(context, other) { // illegal, but happens during syntax checking, if error is collected rather than thrown return false; }; VoidType.instance = new VoidType(); exports.VoidType = VoidType; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { var MethodType = __webpack_require__(101).MethodType; var Value = __webpack_require__(77).Value; function ClosureValue(context, type) { Value.call(this, type); this.context = context; return this; } ClosureValue.prototype = Object.create(Value.prototype); ClosureValue.prototype.constructor = ClosureValue; ClosureValue.prototype.interpret = function(context) { var parentMost = this.context.getParentMostContext(); parentMost.setParentContext(context); var result = this.type.method.interpret(this.context); parentMost.setParentContext(null); return result; }; exports.ClosureValue = ClosureValue; /***/ }), /* 155 */ /***/ (function(module, exports) { function Specificity(ordinal, name) { this.ordinal = ordinal; this.name = name; return this; } Specificity.INCOMPATIBLE = new Specificity(0, "INCOMPATIBLE"); Specificity.IMPLICIT = new Specificity(1, "IMPLICIT"); Specificity.INHERITED = new Specificity(2, "INHERITED"); Specificity.EXACT = new Specificity(3, "EXACT"); Specificity.DERIVED = new Specificity(4, "DERIVED"); Specificity.prototype.moreSpecificThan = function(other) { // DERIVED, EXACT, INHERITED, IMPLICIT return this.ordinal > other.ordinal; } Specificity.prototype.toString = function() { return this.name; } exports.Specificity = Specificity; /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { var CodeWriter = __webpack_require__(54).CodeWriter; var Dialect = __webpack_require__(110).Dialect; var Value = __webpack_require__(77).Value; var BooleanValue = __webpack_require__(76).BooleanValue; function AndExpression(left, right) { this.left = left; this.right = right; return this; } AndExpression.prototype.toString = function() { return this.left.toString() + " and " + this.right.toString(); }; AndExpression.prototype.toDialect = function(writer) { writer.toDialect(this); }; AndExpression.prototype.operatorToDialect = function(dialect) { switch(dialect) { case Dialect.E: case Dialect.M: return " and "; case Dialect.O: return " && "; default: throw new Exception("Unsupported: " + dialect.name); } }; AndExpression.prototype.toEDialect = function(writer) { this.left.toDialect(writer); writer.append(" and "); this.right.toDialect(writer); }; AndExpression.prototype.toODialect = function(writer) { this.left.toDialect(writer); writer.append(" && "); this.right.toDialect(writer); }; AndExpression.prototype.toMDialect = function(writer) { this.left.toDialect(writer); writer.append(" and "); this.right.toDialect(writer); }; AndExpression.prototype.check = function(context) { var lt = this.left.check(context); var rt = this.right.check(context); return lt.checkAnd(context, rt); }; AndExpression.prototype.interpret = function(context) { var lval = this.left.interpret(context); var rval = this.right.interpret(context); return lval.And(rval); }; AndExpression.prototype.declare = function(transpiler) { this.left.declare(transpiler); this.right.declare(transpiler); }; AndExpression.prototype.transpile = function(transpiler) { this.left.transpile(transpiler); transpiler.append(" && "); this.right.transpile(transpiler); }; AndExpression.prototype.interpretAssert = function(context, test) { var lval = this.left.interpret(context); var rval = this.right.interpret(context); var result = lval.And(rval); if(result==BooleanValue.TRUE) return true; var expected = this.getExpected(context, test.dialect); var actual = lval.toString() + this.operatorToDialect(test.dialect) + rval.toString(); test.printFailedAssertion(context, expected, actual); return false; }; AndExpression.prototype.getExpected = function(context, dialect, escapeMode) { var writer = new CodeWriter(dialect, context); writer.escapeMode = escapeMode; this.toDialect(writer); return writer.toString(); }; AndExpression.prototype.transpileFound = function(transpiler, dialect) { transpiler.append("("); this.left.transpile(transpiler); transpiler.append(") + '").append(this.operatorToDialect(dialect)).append("' + ("); this.right.transpile(transpiler); transpiler.append(")"); }; exports.AndExpression = AndExpression; /***/ }), /* 157 */ /***/ (function(module, exports, __webpack_require__) { var ProblemCollector = __webpack_require__(128).ProblemCollector; var SyntaxError = __webpack_require__(69).SyntaxError; function ProblemListener() { ProblemCollector.call(this); return this; } ProblemListener.prototype = Object.create(ProblemCollector.prototype); ProblemListener.prototype.constructor = ProblemListener; ProblemListener.prototype.readSection = function(section) { return {}; // avoid NPE when section unused }; ProblemListener.prototype.collectProblem = function(problem) { throw new SyntaxError(problem.message); }; exports.ProblemListener = ProblemListener; /***/ }), /* 158 */ /***/ (function(module, exports, __webpack_require__) { var InvalidDataError = __webpack_require__(132).InvalidDataError; var Identifier = __webpack_require__(73).Identifier; var Variable = __webpack_require__(91).Variable; var StrictSet = __webpack_require__(85).StrictSet; function MatchingCollectionConstraint(collection) { this.collection = collection; return this; } MatchingCollectionConstraint.prototype.checkValue = function(context, value) { var container = this.collection.interpret(context); if(container.hasItem) { if(!(container.hasItem(context, value))) { throw new InvalidDataError("" + value.toString() + " is not in: " + this.collection.toString()); } } else { throw new InvalidDataError("Not a collection: " + this.collection.toString()); } }; MatchingCollectionConstraint.prototype.toDialect = function(writer) { writer.append(" in "); this.collection.toDialect(writer); }; MatchingCollectionConstraint.prototype.declare = function(transpiler, name, type) { transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); this.collection.declare(transpiler); this.transpile = function(transpiler) { this.transpileChecker(transpiler, name, type); }; transpiler.declare(this); transpiler.require(StrictSet); }; MatchingCollectionConstraint.prototype.transpileChecker = function(transpiler, name, type) { transpiler.append("function $check_").append(name).append("(value) {").indent(); var transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); transpiler.append("if("); this.collection.transpile(transpiler); transpiler.append(".has(value))").indent(); transpiler.append("return value;").dedent(); transpiler.append("else").indent(); transpiler.append("throw new IllegalValueError((value == null ? 'null' : value.toString()) + ' is not in: \"").append(this.collection.toString()).append("\"');").dedent(); transpiler.dedent().append("}").newLine(); transpiler.flush(); }; exports.MatchingCollectionConstraint = MatchingCollectionConstraint; /***/ }), /* 159 */ /***/ (function(module, exports, __webpack_require__) { var InvalidDataError = __webpack_require__(132).InvalidDataError; var Identifier = __webpack_require__(73).Identifier; var Variable = __webpack_require__(91).Variable; var AnyType = __webpack_require__(74).AnyType; function MatchingExpressionConstraint(expression) { this.expression = expression; return this; } MatchingExpressionConstraint.prototype.checkValue = function(context, value) { var child = context.newChildContext(); var id = new Identifier("value"); child.registerValue(new Variable(id, AnyType.instance)); child.setValue(id, value); var test = this.expression.interpret(child); if(!test.value) { throw new InvalidDataError((value == null ? "null" : value.toString()) + " does not match:" + this.expression.toString()); } }; MatchingExpressionConstraint.prototype.toDialect = function(writer) { writer.append(" matching "); this.expression.toDialect(writer); } MatchingExpressionConstraint.prototype.declare = function(transpiler, name, type) { var transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); this.expression.declare(transpiler); this.transpile = function(transpiler) { this.transpileChecker(transpiler, name, type); }; transpiler.declare(this); }; MatchingExpressionConstraint.prototype.transpileChecker = function(transpiler, name, type) { transpiler.append("function $check_").append(name).append("(value) {").indent(); transpiler = transpiler.newChildTranspiler(); var id = new Identifier("value"); transpiler.context.registerValue(new Variable(id, type)); transpiler.append("if("); this.expression.transpile(transpiler); transpiler.append(")").indent(); transpiler.append("return value;").dedent(); transpiler.append("else").indent(); transpiler.append("throw new IllegalValueError((value == null ? 'null' : value.toString()) + ' does not match: \"").append(this.expression.toString()).append("\"');").dedent(); transpiler.dedent().append("}").newLine(); transpiler.flush(); }; exports.MatchingExpressionConstraint = MatchingExpressionConstraint; /***/ }), /* 160 */ /***/ (function(module, exports, __webpack_require__) { exports.VariableInstance = __webpack_require__(161).VariableInstance; exports.MemberInstance = __webpack_require__(167).MemberInstance; exports.ItemInstance = __webpack_require__(169).ItemInstance; /***/ }), /* 161 */ /***/ (function(module, exports, __webpack_require__) { var Variable = __webpack_require__(91).Variable; var NullValue = __webpack_require__(108).NullValue; var CodeType = __webpack_require__(126).CodeType; var DocumentType = __webpack_require__(162).DocumentType; function VariableInstance(id) { this.id = id; return this; } Object.defineProperty(VariableInstance.prototype, "name", { get : function() { return this.id.name; } }); VariableInstance.prototype.toDialect = function(writer, expression) { if(expression!=null) try { var type = expression.check(writer.context); var actual = writer.context.getRegisteredValue(this.name); if(actual==null) writer.context.registerValue(new Variable(this.id, type)); } catch(e) { // console.log(e.stack); // TODO warning } writer.append(this.name); }; VariableInstance.prototype.toString = function() { return this.name; }; VariableInstance.prototype.check = function(context) { var actual = context.getRegisteredValue(this.id); return actual.type; }; VariableInstance.prototype.checkAssignValue = function(context, valueType, section) { var actual = context.getRegisteredValue(this.id); if(actual==null) { context.registerValue(new Variable(this.id, valueType)); return valueType; } else { // need to check type compatibility actual.type.checkAssignableFrom(context, valueType, section); return actual.type; } }; VariableInstance.prototype.checkAssignMember = function(context, name, valueType, section) { var actual = context.getRegisteredValue(this.id); if(actual==null) context.problemListener.reportUnknownVariable(section, this.id); return valueType; }; VariableInstance.prototype.checkAssignItem = function(context, itemType, valueType, section) { var actual = context.getRegisteredValue(this.id); if(actual==null) context.problemListener.reportUnknownVariable(section, this.id); var parentType = actual.getType(context); return parentType.checkItem(context, itemType); }; VariableInstance.prototype.assign = function(context, expression) { var value = expression.interpret(context); if(context.getRegisteredValue(this.name)==null) { var type = expression.check(context); context.registerValue(new Variable(this.id, type)); } context.setValue(this.id, value); }; VariableInstance.prototype.interpret = function(context) { return context.getValue(this.id); }; VariableInstance.prototype.declareAssign = function(transpiler, expression) { if(transpiler.context.getRegisteredValue(this.name)==null) { var valueType = expression.check(transpiler.context); transpiler.context.registerValue(new Variable(this.id, valueType)); // Code expressions need to be interpreted as part of full check if (valueType === CodeType.instance) { transpiler.context.setValue(this.id, expression.interpret(transpiler.context)); } } expression.declare(transpiler); }; VariableInstance.prototype.transpileAssign = function(transpiler, expression) { if(transpiler.context.getRegisteredValue(this.name)==null) { var type = expression.check(transpiler.context); transpiler.context.registerValue(new Variable(this.id, type)); transpiler.append("var "); } var context = transpiler.context.contextForValue(this.id.name); if(context.instanceType) { context.instanceType.transpileInstance(transpiler); transpiler.append(".setMember('").append(this.name).append("', "); expression.transpile(transpiler); transpiler.append(")"); } else { transpiler.append(this.name); transpiler.append(" = "); expression.transpile(transpiler); } }; VariableInstance.prototype.transpileAssignParent = function(transpiler) { transpiler.append(this.name); }; VariableInstance.prototype.declare = function(transpiler) { // nothing to do }; VariableInstance.prototype.transpile = function(transpiler) { transpiler.append(this.name); }; exports.VariableInstance = VariableInstance; /***/ }), /* 162 */ /***/ (function(module, exports, __webpack_require__) { var MissingType = __webpack_require__(163).MissingType; var NativeType = __webpack_require__(67).NativeType; var TextType = __webpack_require__(135).TextType; var NullType = __webpack_require__(109).NullType; var AnyType = __webpack_require__(74).AnyType; var Identifier = __webpack_require__(73).Identifier; var TextLiteral = __webpack_require__(133).TextLiteral; var TextValue = __webpack_require__(78).TextValue; var IntegerValue = __webpack_require__(80).IntegerValue; var MethodDeclarationMap = null; var ExpressionValue = __webpack_require__(164).ExpressionValue; var DocumentValue = null; var Document = __webpack_require__(165).Document; var List = __webpack_require__(136).List; var ArgumentAssignmentList = null; var ArgumentAssignment = null; var MethodCall = __webpack_require__(95).MethodCall; var MethodSelector = __webpack_require__(100).MethodSelector; var compareValues = __webpack_require__(51).compareValues; exports.resolve = function() { MethodDeclarationMap = __webpack_require__(55).MethodDeclarationMap; ArgumentAssignmentList = __webpack_require__(148).ArgumentAssignmentList; ArgumentAssignment = __webpack_require__(150).ArgumentAssignment; DocumentValue = __webpack_require__(166).DocumentValue; }; function DocumentType() { NativeType.call(this, new Identifier("Document")); return this; } DocumentType.prototype = Object.create(NativeType.prototype); DocumentType.prototype.constructor = DocumentType; DocumentType.prototype.withItemType = function(itemType) { return this; }; DocumentType.prototype.isMoreSpecificThan = function(context, other) { if ((other instanceof NullType) || (other instanceof AnyType) || (other instanceof MissingType)) return true; else return NativeType.prototype.isMoreSpecificThan.call(this, context, other); }; DocumentType.prototype.checkMember = function(context, section, name) { return AnyType.instance; }; DocumentType.prototype.convertJavaScriptValueToPromptoValue = function(context, value, returnType) { if(value instanceof Document) return new DocumentValue(value); else return NativeType.prototype.convertJavaScriptValueToPromptoValue.call(this, context, value, returnType); }; DocumentType.prototype.declare = function(transpiler) { transpiler.register(Document); transpiler.register(List); }; DocumentType.prototype.transpile = function(transpiler) { transpiler.append('Document') }; DocumentType.prototype.declareMember = function(transpiler, name) { // nothing to do }; DocumentType.prototype.transpileMember = function(transpiler, name) { if ("text"!==name) { transpiler.append(name); } else { transpiler.append("getText()"); } }; DocumentType.prototype.transpileAssignMember = function(transpiler, name) { transpiler.append(".getMember('").append(name).append("', true)"); }; DocumentType.prototype.transpileAssignMemberValue = function(transpiler, name, expression) { transpiler.append(".setMember('").append(name).append("', "); expression.transpile(transpiler); transpiler.append(")"); }; DocumentType.prototype.transpileAssignItemValue = function(transpiler, item, expression) { transpiler.append(".setItem("); item.transpile(transpiler); transpiler.append(", "); expression.transpile(transpiler); transpiler.append(")"); }; DocumentType.prototype.declareSorted = function(transpiler, key) { if(key==null) key = new TextLiteral('"key"'); var keyname = key.toString(); var decl = this.findGlobalMethod(transpiler.context, keyname, true); if (decl != null) { decl.declare(transpiler); } else { transpiler = transpiler.newDocumentTranspiler(); key.declare(transpiler); } }; DocumentType.prototype.transpileSorted = function(transpiler, desc, key) { if(key==null) key = new TextLiteral('"key"'); var keyname = key.toString(); var decl = this.findGlobalMethod(transpiler.context, keyname, false); if (decl != null) { this.transpileSortedByGlobalMethod(transpiler, desc, decl.getTranspiledName(transpiler.context)); } else if(key instanceof TextLiteral) { this.transpileSortedByEntry(transpiler, desc, key); } else { this.transpileSortedByExpression(transpiler, desc, key); } }; DocumentType.prototype.transpileSortedByGlobalMethod = function(transpiler, desc, name) { transpiler.append("function(o1, o2) { return ") .append(name).append("(o1) === ").append(name).append("(o2)").append(" ? 0 : ") .append(name).append("(o1) > ").append(name).append("(o2)").append(" ? "); if(desc) transpiler.append("-1 : 1; }"); else transpiler.append("1 : -1; }"); }; DocumentType.prototype.transpileSortedByEntry = function(transpiler, descending, key) { transpiler.append("function(o1, o2) { return "); this.transpileEqualEntries(transpiler, key); transpiler.append(" ? 0 : "); this.transpileGreaterEntries(transpiler, key); transpiler.append(" ? "); if(descending) transpiler.append("-1 : 1; }"); else transpiler.append("1 : -1; }"); }; DocumentType.prototype.transpileEqualEntries = function(transpiler, key) { transpiler.append("o1["); key.transpile(transpiler); transpiler.append("] === o2["); key.transpile(transpiler); transpiler.append("]"); }; DocumentType.prototype.transpileGreaterEntries = function(transpiler, key) { transpiler.append("o1["); key.transpile(transpiler); transpiler.append("] > o2["); key.transpile(transpiler); transpiler.append("]"); }; DocumentType.prototype.transpileSortedByExpression = function(transpiler, descending, key) { transpiler = transpiler.newDocumentTranspiler(); transpiler.append("function(o1, o2) { var v1 = (function() { return "); key.transpile(transpiler); transpiler.append("; }).bind(o1)(); var v2 = (function() { return "); key.transpile(transpiler); transpiler.append("; }).bind(o2)(); return v1===v2 ? 0 : v1 > v2 ? "); if(descending) transpiler.append("-1 : 1; }"); else transpiler.append("1 : -1; }"); transpiler.flush(); }; DocumentType.prototype.checkItem = function(context, itemType) { if(itemType===TextType.instance) return AnyType.instance; else throw ("text"); }; DocumentType.prototype.transpileItem = function(transpiler, type, item) { transpiler.append(".item("); item.transpile(transpiler); transpiler.append(")"); }; DocumentType.prototype.readJSONValue = function(context, node, parts) { var instance = new DocumentValue(); for(key in node) { var value = this.readJSONField(context, node[key], parts); instance.setMember(context, key, value); } return instance; }; DocumentType.prototype.readJSONField = function(context, node, parts) { if(!node) return NullValue.instance; else if(typeof(node)===typeof(true)) return Boolean.ValueOf(node); else if(typeof(node)===typeof(1)) return new IntegerValue(node); else if(typeof(node)===typeof(1.0)) return new Decimal(node) else if(typeof(node)===typeof("")) return new TextValue(node) else if(typeof(node)===typeof([])) throw new Error("list"); else if(typeof(node)===typeof({})) throw new Error("dict/object"); else throw new Error(typeof(node).toString()); }; DocumentType.prototype.sort = function(context, list, desc, key) { if (list.size() <= 1) { return list; } key = key || null; if (key == null) { key = new TextLiteral('"key"'); } var keyname = key.toString(); var call = this.findGlobalMethod(context, keyname, true); if(call!=null) { return this.sortByGlobalMethod(context, list, desc, call); } else if(key instanceof TextLiteral) { return this.sortByEntry(context, list, desc, key); } else { return this.sortByExpression(context, list, desc, key); } }; /* look for a method which takes Document as sole parameter */ DocumentType.prototype.findGlobalMethod = function(context, name, returnCall) { var methods = context.getRegisteredDeclaration(name); if(!(methods instanceof MethodDeclarationMap)) return null; else if(!methods.protos[DocumentType.instance.name]) return null; else if(returnCall) { var exp = new ExpressionValue(this, new DocumentValue()); var arg = new ArgumentAssignment(null, exp); var args = new ArgumentAssignmentList([arg]); return new MethodCall(new MethodSelector(null, new Identifier(name)), args); } else return methods.protos[DocumentType.instance.name]; }; DocumentType.prototype.sortByGlobalMethod = function(context, list, desc, call) { var self = this; function cmp(o1, o2) { var assignment = call.assignments[0]; assignment._expression = new ExpressionValue(self, o1); var value1 = call.interpret(context); assignment._expression = new ExpressionValue(self, o2); var value2 = call.interpret(context); return compareValues(value1, value2); } return NativeType.prototype.doSort(context, list, cmp, desc); }; DocumentType.prototype.sortByEntry = function(context, list, desc, key) { var name = key.value.getStorableData(); function cmp(o1, o2) { var value1 = o1.getMemberValue(context, name); var value2 = o2.getMemberValue(context, name); return compareValues(value1, value2); } return NativeType.prototype.doSort(context, list, cmp, desc); }; DocumentType.prototype.sortByExpression = function(context, list, desc, expression) { function cmp(o1, o2) { var co = context.newDocumentContext(o1, false); var value1 = expression.interpret(co); co = context.newDocumentContext(o2, false); var value2 = expression.interpret(co); return compareValues(value1, value2); } return NativeType.prototype.doSort(context, list, cmp, desc); }; DocumentType.instance = new DocumentType(); exports.DocumentType = DocumentType; /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { var NativeType = __webpack_require__(67).NativeType; var Identifier = __webpack_require__(73).Identifier; function MissingType() { NativeType.call(this, new Identifier("*")); return this; } MissingType.prototype = Object.create(NativeType.prototype); MissingType.prototype.constructor = MissingType; MissingType.instance = new MissingType(); MissingType.prototype.isAssignableFrom = function(context, other) { return true; }; exports.MissingType = MissingType; /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { var Value = __webpack_require__(77).Value; function ExpressionValue(type, value) { Value.call(this, type); this.value = value; // make this sliceable this.sliceable = value.slice ? value : null; return this; } ExpressionValue.prototype = Object.create(Value.prototype); ExpressionValue.prototype.constructor = ExpressionValue; ExpressionValue.prototype.check = function(context) { return this.type; }; ExpressionValue.prototype.interpret = function(context) { if(this.value.interpret) { return this.value.interpret(context); } else { return this.value; } }; ExpressionValue.prototype.declare = function(transpiler) { if(this.value.declare) { return this.value.declare(transpiler); } }; ExpressionValue.prototype.transpile = function(transpiler) { if (this.value.transpile) { return this.value.transpile(transpiler); } ; }; ExpressionValue.prototype.toString = function() { return this.value.toString(); }; ExpressionValue.prototype.toDialect = function(dialect) { return this.value.toDialect(dialect); }; exports.ExpressionValue = ExpressionValue; /***/ }), /* 165 */ /***/ (function(module, exports) { function Document(entries) { if(entries) Object.getOwnPropertyNames(entries).forEach(function(name) { this[name] = entries[name]; }, this); return this; } Document.prototype.toString = function() { return JSON.stringify(this); }; Document.prototype.getText = function() { if(this.hasOwnProperty("text")) return this.text; else return this.toString(); }; Document.prototype.getMember = function(name, create) { if(this.hasOwnProperty(name)) return this[name]; else if(create) { this[name] = new Document(); return this[name]; } else return null; }; Document.prototype.setMember = function(name, value) { this[name] = value; }; Document.prototype.setItem = function(index, value) { this[index] = value; }; Document.prototype.item = function(index) { return this[index]; }; Document.prototype.toJson = function(json, instanceId, fieldName, withType, binaries) { var values = {}; Object.getOwnPropertyNames(this).forEach(function (key) { var value = this[key]; if(!value || typeof(value)===typeof(true) || typeof(value)===typeof(1) || typeof(value)===typeof(1.0) || typeof(value)===typeof("")) values[key] = value; else { var id = this; // TODO create identifier value.toJson(values, id, key, withType, binaries); } }, this); var doc = withType ? {type: "Document", value: values} : values; if (Array.isArray(json)) json.push(doc); else json[fieldName] = doc; }; Document.prototype.fromJson = function(node, parts) { for (key in node) { this[key] = this.readJsonField(node[key], parts); } }; Document.prototype.readJsonField = function(node, parts) { if(!node || typeof(node)===typeof(true) || typeof(node)===typeof(1) || typeof(node)===typeof(1.0) || typeof(node)===typeof("")) return node; else if(typeof(node)===typeof([])) throw new Error("list"); else if(typeof(node)===typeof({})) throw new Error("dict/object"); else throw new Error(typeof(node).toString()); }; exports.Document = Document; /***/ }), /* 166 */ /***/ (function(module, exports, __webpack_require__) { var NullValue = __webpack_require__(108).NullValue; var Value = __webpack_require__(77).Value; var TextValue = __webpack_require__(78).TextValue; var DocumentType = __webpack_require__(162).DocumentType; var Document = __webpack_require__(165).Document; function DocumentValue(values) { Value.call(this, DocumentType.instance); this.mutable = true; this.values = values || new Document(); return this; } DocumentValue.prototype = Object.create(Value.prototype); DocumentValue.prototype.constructor = DocumentValue; DocumentValue.prototype.getMemberNames = function() { return Object.getOwnPropertyNames(this.values); }; DocumentValue.prototype.getStorableData = function() { return this.values; }; DocumentValue.prototype.hasMember = function(name) { return this.values.hasOwnProperty(name); } DocumentValue.prototype.getMemberValue = function(context, name, autoCreate) { if(this.values.hasOwnProperty(name)) return this.values[name] || null; else if("text" == name) return new TextValue(this.toString()); else if(autoCreate) { result = new DocumentValue(); this.values[name] = result; return result; } else return NullValue.instance; }; DocumentValue.prototype.setMember = function(context, name, value) { this.values[name] = value; }; DocumentValue.prototype.getItemInContext = function(context, index) { if (index instanceof TextValue) { // TODO autocreate return this.values[index.value] || NullValue.instance; } else { throw new SyntaxError("No such item:" + index.toString()) } }; DocumentValue.prototype.setItemInContext = function(context, index, value) { if (index instanceof TextValue) { this.values[index.value] = value } else { throw new SyntaxError("No such item:" + index.toString()); } }; DocumentValue.prototype.equals = function(other) { return other==this; }; DocumentValue.prototype.toString = function() { var binaries = {}; // create json type-aware object graph and collect binaries var values = {}; // need a temporary parent for (var key in this.values) { var value = this.values[key]; if(typeof(value) === 'function') continue; if (value == null || value == undefined) values[key] = null; else { var id = this; // TODO create identifier value.toJson(null, values, id, key, false, binaries); } } return JSON.stringify(values); }; DocumentValue.prototype.toJson = function(context, json, instanceId, fieldName, withType, binaries) { var values = {}; Object.getOwnPropertyNames(this.values).forEach(function(key) { var value = this.values[key]; if (value == null || value == undefined) values[key] = null; else { var id = this; // TODO create identifier value.toJson(context, values, id, key, withType, binaries); } }, this); var doc = withType ? { type: DocumentType.instance.name, value: values} : values; if(Array.isArray(json)) json.push(doc); else json[fieldName] = doc; }; DocumentValue.prototype.declare = function(transpiler) { transpiler.require(Document); }; exports.DocumentValue = DocumentValue; /***/ }), /* 167 */ /***/ (function(module, exports, __webpack_require__) { var DocumentValue = __webpack_require__(166).DocumentValue; var NotMutableError = __webpack_require__(168).NotMutableError; function MemberInstance(id) { this.parent = null; this.id = id; return this; } Object.defineProperty(MemberInstance.prototype, "name", { get : function() { return this.id.name; } }); MemberInstance.prototype.toString = function() { return this.parent.toString() + "." + this.name; }; MemberInstance.prototype.toDialect = function(writer) { this.parent.toDialect(writer); writer.append("."); writer.append(this.name); }; MemberInstance.prototype.interpret = function(context) { var root = this.parent.interpret(context); return root.getMemberValue(context, this.name, true); }; MemberInstance.prototype.checkAssignValue = function(context, valueType, section) { return this.parent.checkAssignMember(context, this.name, valueType, section); }; MemberInstance.prototype.checkAssignMember = function(context, name, valueType, section) { this.parent.checkAssignMember(context, this.name, section); return valueType; // TODO }; MemberInstance.prototype.checkAssignItem = function(context, itemType, valueType, section) { return valueType; // TODO }; MemberInstance.prototype.assign = function(context, expression) { var root = this.parent.interpret(context); if(!root.mutable) throw new NotMutableError(); var value = expression.interpret(context); root.setMember(context, this.name, value); }; MemberInstance.prototype.check = function(context) { var parentType = this.parent.check(context); return parentType.checkMember(context, this.id, this.name); }; MemberInstance.prototype.declare = function(transpiler) { this.parent.declare(transpiler); }; MemberInstance.prototype.transpile = function(transpiler) { this.parent.transpile(transpiler); transpiler.append(".").append(this.name); }; MemberInstance.prototype.declareAssign = function(transpiler, expression) { this.parent.declare(transpiler); expression.declare(transpiler); }; MemberInstance.prototype.transpileAssign = function(transpiler, expression) { var parentType = this.parent.check(transpiler.context); this.parent.transpileAssignParent(transpiler); parentType.transpileAssignMemberValue(transpiler, this.name, expression); }; MemberInstance.prototype.transpileAssignParent = function(transpiler) { var parentType = this.parent.check(transpiler.context); this.parent.transpileAssignParent(transpiler); parentType.transpileAssignMember(transpiler, this.name); }; exports.MemberInstance = MemberInstance; /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { var ExecutionError = __webpack_require__(89).ExecutionError; function NotMutableError() { ExecutionError.call(this); return this; } NotMutableError.prototype = Object.create(ExecutionError.prototype); NotMutableError.prototype.constructor = NotMutableError; NotMutableError.prototype.getExpression = function(context) { return context.getRegisteredValue("NOT_MUTABLE"); }; exports.NotMutableError = NotMutableError; /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { var InvalidDataError = __webpack_require__(132).InvalidDataError; var NotMutableError = __webpack_require__(168).NotMutableError; var IntegerType = __webpack_require__(83).IntegerType; var AnyType = __webpack_require__(74).AnyType; var BaseValueList = __webpack_require__(142).BaseValueList; var IntegerValue = __webpack_require__(80).IntegerValue; var Value = __webpack_require__(77).Value; function ItemInstance(item) { this.parent = null; this.item = item; return this; } ItemInstance.prototype.toString = function() { return this.parent.toString() + "[" + this.item.toString() + "]"; }; ItemInstance.prototype.toDialect = function(writer) { this.parent.toDialect(writer); writer.append('['); this.item.toDialect(writer); writer.append(']'); } ItemInstance.prototype.check = function(context) { var parentType = this.parent.check(context); var itemType = this.item.check(context); return parentType.checkItem(context, itemType); }; ItemInstance.prototype.checkAssignValue = function(context, valueType, section) { var itemType = this.item.check(context); return this.parent.checkAssignItem(context, itemType, valueType, section); }; ItemInstance.prototype.checkAssignMember = function(context, name, valueType, section) { return AnyType.instance }; ItemInstance.prototype.checkAssignItem = function(context, itemType, valueType, section) { return AnyType.instance }; ItemInstance.prototype.assign = function(context, expression) { var root = this.parent.interpret(context); if(!root.mutable) throw new NotMutableError(); var item = this.item.interpret(context); var value = expression.interpret(context); if (root.setItemInContext) { root.setItemInContext(context, item, value); } else { throw new SyntaxError("Unknown item/key: " + typeof(item)); } }; ItemInstance.prototype.interpret = function(context) { var root = this.parent.interpret(context); var item = this.item.interpret(context); if (root.getItemInContext) { return root.getItemInContext(context, item); } else { throw new SyntaxError("Unknown item/key: " + typeof(item)); } }; ItemInstance.prototype.declare = function(transpiler) { this.parent.declare(transpiler); this.item.declare(transpiler); }; ItemInstance.prototype.transpile = function(transpiler) { this.parent.transpile(transpiler); transpiler.append(".item("); this.item.transpile(transpiler); transpiler.append(")"); }; ItemInstance.prototype.declareAssign = function(transpiler, expression) { this.parent.declare(transpiler); this.item.declare(transpiler); expression.declare(transpiler); }; ItemInstance.prototype.transpileAssign = function(transpiler, expression) { var parentType = this.parent.check(transpiler.context); this.parent.transpileAssignParent(transpiler); parentType.transpileAssignItemValue(transpiler, this.item, expression); }; ItemInstance.prototype.transpileAssignParent = function(transpiler) { this.parent.transpileAssignParent(transpiler); transpiler.append(".getItem("); this.item.transpile(transpiler); transpiler.append(", true)"); }; exports.ItemInstance = ItemInstance; /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { exports.AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; exports.CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; exports.ConcreteCategoryDeclaration = __webpack_require__(57).ConcreteCategoryDeclaration; exports.ConcreteWidgetDeclaration = __webpack_require__(171).ConcreteWidgetDeclaration; exports.DeclarationList = __webpack_require__(172).DeclarationList; exports.AbstractMethodDeclaration = __webpack_require__(176).AbstractMethodDeclaration; exports.ConcreteMethodDeclaration = __webpack_require__(177).ConcreteMethodDeclaration; exports.NativeMethodDeclaration = __webpack_require__(186).NativeMethodDeclaration; exports.TestMethodDeclaration = __webpack_require__(174).TestMethodDeclaration; exports.EnumeratedCategoryDeclaration = __webpack_require__(56).EnumeratedCategoryDeclaration; exports.SingletonCategoryDeclaration = __webpack_require__(303).SingletonCategoryDeclaration; exports.NativeCategoryDeclaration = __webpack_require__(304).NativeCategoryDeclaration; exports.NativeResourceDeclaration = __webpack_require__(321).NativeResourceDeclaration; exports.NativeWidgetDeclaration = __webpack_require__(324).NativeWidgetDeclaration; exports.EnumeratedNativeDeclaration = __webpack_require__(173).EnumeratedNativeDeclaration; exports.OperatorMethodDeclaration = __webpack_require__(325).OperatorMethodDeclaration; exports.GetterMethodDeclaration = __webpack_require__(326).GetterMethodDeclaration; exports.SetterMethodDeclaration = __webpack_require__(327).SetterMethodDeclaration; exports.NativeGetterMethodDeclaration = __webpack_require__(328).NativeGetterMethodDeclaration; exports.NativeSetterMethodDeclaration = __webpack_require__(329).NativeSetterMethodDeclaration; exports.DispatchMethodDeclaration = __webpack_require__(330).DispatchMethodDeclaration; exports.BuiltInMethodDeclaration = __webpack_require__(145).BuiltInMethodDeclaration; __webpack_require__(146).resolve(); __webpack_require__(57).resolve(); __webpack_require__(330).resolve(); __webpack_require__(145).resolve(); /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { var ConcreteCategoryDeclaration = __webpack_require__(57).ConcreteCategoryDeclaration; var CategoryType = __webpack_require__(93).CategoryType; var IdentifierList = __webpack_require__(123).IdentifierList; function ConcreteWidgetDeclaration(name, derivedFrom, methods) { derivedFrom = derivedFrom==null ? null : new IdentifierList(derivedFrom); ConcreteCategoryDeclaration.call(this, name, null, derivedFrom, methods); return this; } ConcreteWidgetDeclaration.prototype = Object.create(ConcreteCategoryDeclaration.prototype); ConcreteWidgetDeclaration.prototype.constructor = ConcreteWidgetDeclaration; ConcreteWidgetDeclaration.prototype.isWidget = function(context) { return true; }; ConcreteWidgetDeclaration.prototype.getDeclarationType = function() { return "Widget"; }; ConcreteWidgetDeclaration.prototype.categoryTypeToEDialect = function(writer) { if(this.derivedFrom==null) writer.append("widget"); else this.derivedFrom.toDialect(writer, true); }; ConcreteWidgetDeclaration.prototype.categoryTypeToODialect = function(writer) { writer.append("widget"); }; ConcreteWidgetDeclaration.prototype.categoryTypeToMDialect = function(writer) { writer.append("widget"); }; ConcreteWidgetDeclaration.prototype.declareRoot = function(transpiler) { // nothing to do }; ConcreteWidgetDeclaration.prototype.transpile = function(transpiler) { var parent = this.derivedFrom!=null && this.derivedFrom.length>0 ? this.derivedFrom[0] : null; transpiler.append("function ").append(this.name).append("() {"); transpiler.indent(); this.transpileGetterSetterAttributes(transpiler); this.transpileSuperConstructor(transpiler); this.transpileLocalAttributes(transpiler); transpiler.append("return this;"); transpiler.dedent(); transpiler.append("}"); transpiler.newLine(); if(parent!=null) transpiler.append(this.name).append(".prototype = Object.create(").append(parent.toString()).append(".prototype);").newLine(); else transpiler.append(this.name).append(".prototype = Object.create(React.Component.prototype);").newLine(); transpiler.append(this.name).append(".prototype.constructor = ").append(this.name).append(";").newLine(); transpiler = transpiler.newInstanceTranspiler(new CategoryType(this.id)); this.transpileLoaders(transpiler); this.transpileMethods(transpiler); this.transpileGetterSetters(transpiler); transpiler.flush(); return true; }; ConcreteWidgetDeclaration.prototype.transpileRootConstructor = function(transpiler) { return transpiler.append("React.Component.call(this);"); }; exports.ConcreteWidgetDeclaration = ConcreteWidgetDeclaration; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; var AttributeDeclaration = __webpack_require__(59).AttributeDeclaration; var CategoryDeclaration = __webpack_require__(58).CategoryDeclaration; var EnumeratedNativeDeclaration = __webpack_require__(173).EnumeratedNativeDeclaration; var BaseMethodDeclaration = __webpack_require__(146).BaseMethodDeclaration; var TestMethodDeclaration = __webpack_require__(174).TestMethodDeclaration; function DeclarationList(items, item) { items = items || []; ObjectList.call(this, items); item = item || null; if(item!==null) { this.add(item); } return this; } DeclarationList.prototype = Object.create(ObjectList.prototype); DeclarationList.prototype.constructor = DeclarationList; DeclarationList.prototype.register = function(context) { this.registerAttributes(context); this.registerCategories(context); this.registerEnumerated(context); this.registerMethods(context); this.registerTests(context); }; DeclarationList.prototype.registerAttributes = function(context) { this.forEach(function (decl) { if(decl instanceof AttributeDeclaration) decl.register(context); }); }; DeclarationList.prototype.registerCategories = function(context) { this.forEach(function (decl) { if(decl instanceof CategoryDeclaration) decl.register(context); }); }; DeclarationList.prototype.registerEnumerated = function(context) { this.forEach(function (decl) { if(decl instanceof EnumeratedNativeDeclaration) decl.register(context); }); }; DeclarationList.prototype.registerMethods = function(context) { this.forEach(function (decl) { if(decl instanceof BaseMethodDeclaration) decl.register(context); }); }; DeclarationList.prototype.registerTests = function(context) { this.forEach(function (decl) { if(decl instanceof TestMethodDeclaration) decl.register(context); }); }; DeclarationList.prototype.unregister = function(context) { this.forEach(function(decl) { decl.unregister(context); }); }; DeclarationList.prototype.check = function(context) { this.forEach(function(decl) { decl.check(context, true); }); }; DeclarationList.prototype.toDialect = function(writer) { this.forEach(function(decl) { if(decl.comments) { decl.comments.forEach(function (cmt) { cmt.toDialect(writer); }); } if(decl.annotations) { decl.annotations.forEach(function (ann) { ann.toDialect(writer); }); } decl.toDialect(writer); writer.newLine(); }); }; exports.DeclarationList = DeclarationList; /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { var BaseDeclaration = __webpack_require__(60).BaseDeclaration; var EnumeratedNativeType = __webpack_require__(70).EnumeratedNativeType; var List = __webpack_require__(136).List; function EnumeratedNativeDeclaration(id, derivedFrom, symbols) { BaseDeclaration.call(this, id); this.type = new EnumeratedNativeType(id, derivedFrom); this.symbols = symbols || []; this.symbols.forEach(function (symbol) { symbol.type = this.type; }, this); return this; } EnumeratedNativeDeclaration.prototype = Object.create(BaseDeclaration.prototype); EnumeratedNativeDeclaration.prototype.constructor = EnumeratedNativeDeclaration; EnumeratedNativeDeclaration.prototype.getDeclarationType = function() { return "Enumerated"; }; EnumeratedNativeDeclaration.prototype.unregister = function(context) { context.unregisterDeclaration (this); this.symbols.forEach(function(symbol) { symbol.unregister(context); }); }; EnumeratedNativeDeclaration.prototype.toDialect = function(writer) { writer.toDialect(this); }; EnumeratedNativeDeclaration.prototype.toMDialect = function(writer) { writer.append("enum ").append(this.name).append('('); this.type.derivedFrom.toDialect(writer); writer.append("):").newLine().indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.newLine(); }); writer.dedent(); } EnumeratedNativeDeclaration.prototype.toODialect = function(writer) { writer.append("enumerated ").append(this.name).append('('); this.type.derivedFrom.toDialect(writer); writer.append(") {").newLine().indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.append(";").newLine(); }); writer.dedent().append("}").newLine(); } EnumeratedNativeDeclaration.prototype.toEDialect = function(writer) { writer.append("define ").append(this.name).append(" as enumerated "); this.type.derivedFrom.toDialect(writer); writer.append(" with symbols:").newLine().indent(); this.symbols.forEach(function(symbol) { symbol.toDialect(writer); writer.newLine(); }); writer.dedent(); }; EnumeratedNativeDeclaration.prototype.register = function(context) { context.registerDeclaration(this); this.symbols.forEach(function(symbol) { symbol.register(context); }); }; EnumeratedNativeDeclaration.prototype.check = function(context, isStart) { this.symbols.forEach(function(symbol) { symbol.check(context); }); return this.type; }; EnumeratedNativeDeclaration.prototype.transpile = function(transpiler) { transpiler.append("function " + this.name + "(name, value) { this.name = name; this.value = value; return this; };").newLine(); transpiler.append(this.name).append(".prototype.toString = function() { return this.name; };").newLine(); this.symbols.forEach(function(symbol) {symbol.initialize(transpiler);}); var names = this.symbols.map(function(symbol) { return symbol.name; }); transpiler.append(this.name).append(".symbols = new List(false, [").append(names.join(", ")).append("]);"); }; EnumeratedNativeDeclaration.prototype.getType = function(context) { return this.type; }; EnumeratedNativeDeclaration.prototype.declare = function(transpiler) { transpiler.require(List); }; exports.EnumeratedNativeDeclaration = EnumeratedNativeDeclaration; /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {var isNodeJs = typeof window === 'undefined' && typeof importScripts === 'undefined'; var BaseDeclaration = __webpack_require__(60).BaseDeclaration; var Identifier = __webpack_require__(73).Identifier; var PromptoError = __webpack_require__(64).PromptoError; var VoidType = __webpack_require__(153).VoidType; function TestMethodDeclaration(id, stmts, exps, error) { BaseDeclaration.call(this, id); this.statements = stmts; this.assertions = exps; this.error = error; return this; } TestMethodDeclaration.prototype = Object.create(BaseDeclaration.prototype); TestMethodDeclaration.prototype.constructor = TestMethodDeclaration; TestMethodDeclaration.prototype.getDeclarationType = function() { return "Test"; }; TestMethodDeclaration.prototype.cleanId = function() { var cleanId = this.name.replace(/\W/g,'_'); return cleanId.substring(1, cleanId.length - 1); }; TestMethodDeclaration.prototype.declare = function(transpiler) { transpiler.declare(this); transpiler = transpiler.newLocalTranspiler(); this.statements.declare(transpiler); if(this.assertions) this.assertions.declare(transpiler); if(this.error) this.error.declare(transpiler); }; TestMethodDeclaration.prototype.transpile = function(transpiler) { transpiler = transpiler.newLocalTranspiler(); if (this.error) this.transpileExpectedError(transpiler); else this.transpileAssertions(transpiler); transpiler.flush(); }; TestMethodDeclaration.prototype.transpileAssertions = function(transpiler) { transpiler.append("function ").append(this.cleanId()).append("() {"); transpiler.indent(); transpiler.append("try {"); transpiler.indent(); this.statements.transpile(transpiler); transpiler.append("var success = true;").newLine(); this.assertions.forEach(function (assertion) { transpiler.append("if("); assertion.transpile(transpiler); transpiler.append(")").indent(); transpiler.append("success &= true;").dedent(); transpiler.append("else {").indent(); transpiler.append("success = false;").newLine(); transpiler.printTestName(this.name).append('failed while verifying: '); transpiler.escape(); transpiler.append(assertion.getExpected(transpiler.context, this.dialect, transpiler.escapeMode)); transpiler.unescape(); transpiler.append(", found: ' + "); transpiler.escape(); assertion.transpileFound(transpiler, this.dialect); transpiler.unescape(); transpiler.append(");"); transpiler.dedent(); transpiler.append("}").newLine(); }, this); transpiler.append("if (success)").indent().printTestName(this.name).append("successful');").dedent(); transpiler.dedent(); transpiler.append("} catch (e) {"); transpiler.indent(); transpiler.printTestName(this.name).append("failed with error: ' + e.name);"); transpiler.append("process.stderr.write(e.stack);").newLine(); transpiler.dedent(); transpiler.append("}"); transpiler.dedent(); transpiler.append("}"); transpiler.newLine(); transpiler.flush(); }; var NativeErrorNames = { DIVIDE_BY_ZERO: "DivideByZeroError", INDEX_OUT_OF_RANGE: RangeError.name, NULL_REFERENCE: ReferenceError.name, NOT_MUTABLE: "NotMutableError", NOT_STORABLE: "NotStorableError", READ_WRITE: "ReadWriteError" }; TestMethodDeclaration.prototype.transpileExpectedError = function(transpiler) { transpiler.append("function ").append(this.cleanId()).append("() {"); transpiler.indent(); transpiler.append("try {"); transpiler.indent(); this.statements.transpile(transpiler); transpiler.printTestName(this.name).append("failed while expecting: ").append(this.error.name).append(", found: no error');"); transpiler.dedent(); transpiler.append("} catch (e) {"); transpiler.indent(); transpiler.append("if(e instanceof ").append(NativeErrorNames[this.error.name]).append(") {").indent(); transpiler.printTestName(this.name).append("successful');").dedent(); transpiler.append("} else {").indent(); transpiler.printTestName(this.name).append('failed while expecting: ').append(this.error.name).append(", found: ' + translateError(e));").dedent(); transpiler.append("}"); transpiler.dedent(); transpiler.append("}"); transpiler.dedent(); transpiler.append("}"); transpiler.newLine(); transpiler.flush(); }; TestMethodDeclaration.prototype.check = function(context, isStart) { context = context.newLocalContext(); this.statements.forEach(function(s) { this.checkStatement(context, s); }, this); if(this.assertions!=null) { this.assertions.forEach(function (a) { context = a.check(context); }, this); } return VoidType.instance; }; TestMethodDeclaration.prototype.checkStatement = function(context, statement) { var type = statement.check(context); if(type!=null && type!=VoidType.instance) // null indicates SyntaxError context.problemListener.reportIllegalReturn(statement); }; TestMethodDeclaration.prototype.register = function(context) { context.registerTestDeclaration (this); }; TestMethodDeclaration.prototype.unregister = function(context) { context.unregisterTestDeclaration (this); }; TestMethodDeclaration.prototype.getType = function(context) { return VoidType.instance; }; TestMethodDeclaration.prototype.interpret = function(context) { if (this.interpretBody (context)) { this.interpretNoError (context); this.interpretAsserts (context); } }; TestMethodDeclaration.prototype.interpretNoError = function(context) { // we land here only if no error was raised if (this.error != null) this.printMissingError (context, this.error.name, "no error"); }; TestMethodDeclaration.prototype.interpretAsserts = function(context) { if (this.assertions == null) return; context.enterMethod (this); try { var success = true; this.assertions.forEach(function(a) { success &= a.interpretAssert (context, this); }, this); if (success) this.printSuccess (context); } finally { context.leaveMethod (this); } }; TestMethodDeclaration.print = function(msg) { if(isNodeJs) process.stdout.write(msg); else console.log(msg); }; TestMethodDeclaration.prototype.printMissingError = function(context, expected, actual) { var msg = this.name + " test failed while expecting: " + expected + ", found: " + actual; TestMethodDeclaration.print(msg); }; TestMethodDeclaration.prototype.printFailedAssertion = function(context, expected, actual) { var msg = this.name + " test failed while verifying: " + expected + ", found: " + actual; TestMethodDeclaration.print(msg); }; TestMethodDeclaration.prototype.printSuccess = function(context) { var msg = this.name + " test successful"; TestMethodDeclaration.print(msg); }; TestMethodDeclaration.prototype.interpretBody = function(context) { context.enterMethod (this); try { this.statements.interpret (context); return true; } catch (e) { if(e instanceof PromptoError) { this.interpretError(context, e); // no more to execute return false; } else throw e; } finally { context.leaveMethod (this); } }; TestMethodDeclaration.prototype.interpretError = function(context, ex) { // help fix runtime issues by rethrowing non PromptoErrors if(!ex.interpret) throw ex; var expectedError = this.error == null ? null : this.error.interpret (context); var actual = ex.interpret (context, new Identifier("__test_error__")); if (expectedError!=null && expectedError.equals (actual)) this.printSuccess (context); else { var actualName = actual.getMemberValue (context, "name").toString (); var expectedName = this.error == null ? "SUCCESS" : this.error.name; this.printMissingError (context, expectedName, actualName); } }; TestMethodDeclaration.prototype.toDialect = function(writer) { if (writer.isGlobalContext ()) writer = writer.newLocalWriter (); writer.toDialect(this); }; TestMethodDeclaration.prototype.toMDialect = function(writer) { writer.append ("def test ").append(this.name).append (" ():").newLine().indent (); if(this.statements!=null) this.statements.toDialect (writer); writer.dedent().append("verifying:"); if (this.error != null) { writer.append (" "); this.error.toDialect (writer); writer.newLine(); } else if(this.assertions!=null) { writer.newLine().indent (); this.assertions.forEach(function(a) { a.toDialect (writer); writer.newLine(); }); writer.dedent (); } }; TestMethodDeclaration.prototype.toEDialect = function(writer) { writer.append("define ").append(this.name).append(" as test method doing:").newLine().indent (); if(this.statements!=null) this.statements.toDialect (writer); writer.dedent().append("and verifying"); if (this.error != null) { writer.append(" "); this.error.toDialect (writer); writer.newLine(); } else if(this.assertions!=null) { writer.append(":").newLine().indent (); this.assertions.forEach(function(a) { a.toDialect (writer); writer.newLine(); }); writer.dedent (); } }; TestMethodDeclaration.prototype.toODialect = function(writer) { writer.append("test method ").append(this.name).append(" () {").newLine().indent (); if(this.statements!=null) this.statements.toDialect (writer); writer.dedent().append("} verifying "); if (this.error != null) { this.error.toDialect (writer); writer.append (";").newLine(); } else if(this.assertions!=null) { writer.append ("{").newLine().indent (); this.assertions.forEach(function(a) { a.toDialect (writer); writer.append(";").newLine(); }); writer.dedent().append("}").newLine(); } }; exports.TestMethodDeclaration = TestMethodDeclaration; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(175))) /***/ }), /* 175 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { var BaseMethodDeclaration = __webpack_require__(146).BaseMethodDeclaration; var VoidType = __webpack_require__(153).VoidType; var CodeArgument = __webpack_require__(125).CodeArgument; function AbstractMethodDeclaration(id, args, returnType) { BaseMethodDeclaration.call(this, id, args, returnType); this.returnType = returnType || VoidType.instance; return this; } AbstractMethodDeclaration.prototype = Object.create(BaseMethodDeclaration.prototype); AbstractMethodDeclaration.prototype.constructor = AbstractMethodDeclaration; AbstractMethodDeclaration.prototype.memberCheck = function(declaration, context) { // TODO Auto-generated method stub }; AbstractMethodDeclaration.prototype.check = function(context, isStart) { if(this.args!=null) { this.args.check(context); } if(isStart) { var local = context.newLocalContext(); this.registerArguments(local); } return this.returnType; }; AbstractMethodDeclaration.prototype.declare = function(transpiler) { this.declareArguments(transpiler); }; AbstractMethodDeclaration.prototype.transpile = function(transpiler) { // nothing to do }; AbstractMethodDeclaration.prototype.toMDialect = function(writer) { writer.append("abstract def "); writer.append(this.name); writer.append(" ("); this.args.toDialect(writer); writer.append(")"); if(this.returnType!=null && this.returnType!=VoidType.instance) { writer.append("->"); this.returnType.toDialect(writer); } } AbstractMethodDeclaration.prototype.toEDialect = function(writer) { writer.append("define "); writer.append(this.name); writer.append(" as abstract method "); this.args.toDialect(writer); if(this.returnType!=null && this.returnType!=VoidType.instance) { writer.append("returning "); this.returnType.toDialect(writer); } }; AbstractMethodDeclaration.prototype.toODialect = function(writer) { writer.append("abstract "); if(this.returnType!=null && this.returnType!=VoidType.instance) { this.returnType.toDialect(writer); writer.append(" "); } writer.append("method "); writer.append(this.name); writer.append(" ("); this.args.toDialect(writer); writer.append(");"); } exports.AbstractMethodDeclaration = AbstractMethodDeclaration; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { var BaseMethodDeclaration = __webpack_require__(146).BaseMethodDeclaration; var VoidType = __webpack_require__(153).VoidType; var DictionaryType = __webpack_require__(178).DictionaryType; var TextType = __webpack_require__(135).TextType; var CodeArgument = __webpack_require__(125).CodeArgument; var CategoryArgument = __webpack_require__(122).CategoryArgument; var StatementList = __webpack_require__(181).StatementList; var DeclarationStatement = __webpack_require__(185).DeclarationStatement; function ConcreteMethodDeclaration(id, args, returnType, statements) { BaseMethodDeclaration.call(this, id, args, returnType); this.statements = statements || new StatementList(); this.declarationOf = null; this.statements.forEach(function(stmt) { if(stmt instanceof DeclarationStatement) stmt.declaration.closureOf = this; }, this); return this; } ConcreteMethodDeclaration.prototype = Object.create(BaseMethodDeclaration.prototype); ConcreteMethodDeclaration.prototype.constructor = ConcreteMethodDeclaration; ConcreteMethodDeclaration.prototype.checkMember = function(declaration, context) { context = context.newInstanceContext(null, declaration.getType(context), false) return this.checkChild(context); }; ConcreteMethodDeclaration.prototype.check = function(context, isStart) { if(this.canBeChecked(context)) { return this.fullCheck(context, isStart); } else { return VoidType.instance; } }; ConcreteMethodDeclaration.prototype.canBeChecked = function(context) { if(context.isGlobalContext()) { return !this.mustBeCheckedInCallContext(context); } else { return true; } }; ConcreteMethodDeclaration.prototype.mustBeCheckedInCallContext = function(context) { // if at least one argument is 'Code' if(this.args===null) { return false; } for(var i=0;i"); this.returnType.toDialect(writer); } writer.append(":").newLine().indent(); this.statements.toDialect(writer); writer.dedent(); }; ConcreteMethodDeclaration.prototype.toEDialect = function(writer) { writer.append("define ").append(this.name).append(" as method "); this.args.toDialect(writer); if(this.returnType!=null && this.returnType!=VoidType.instance) { writer.append("returning "); this.returnType.toDialect(writer); writer.append(" "); } writer.append("doing:").newLine().indent(); this.statements.toDialect(writer); writer.dedent(); }; ConcreteMethodDeclaration.prototype.toODialect = function(writer) { if(this.returnType!=null && this.returnType!=VoidType.instance) { this.returnType.toDialect(writer); writer.append(" "); } writer.append("method ").append(this.name).append(" ("); this.args.toDialect(writer); writer.append(") {").newLine().indent(); this.statements.toDialect(writer); writer.dedent().append("}").newLine(); }; ConcreteMethodDeclaration.prototype.declare = function(transpiler) { if(this.declaring) return; this.declaring = true; try { if (!this.memberOf) { transpiler = transpiler.newLocalTranspiler(); transpiler.declare(this); this.declareArguments(transpiler); } if(this.returnType) this.returnType.declare(transpiler); this.registerArguments(transpiler.context); this.statements.declare(transpiler); } finally { this.declaring = false; } }; ConcreteMethodDeclaration.prototype.transpile = function(transpiler) { this.registerArguments(transpiler.context); this.registerCodeArguments(transpiler.context); this.transpileProlog(transpiler); this.statements.transpile(transpiler); this.transpileEpilog(transpiler); }; ConcreteMethodDeclaration.prototype.declareChild = function(transpiler) { this.declareArguments(transpiler); transpiler = transpiler.newChildTranspiler(); this.registerArguments(transpiler.context); return this.statements.declare(transpiler); }; ConcreteMethodDeclaration.prototype.registerCodeArguments = function(context) { if(!this.codeArguments) return; Object.getOwnPropertyNames(this.codeArguments).forEach(function(name) { var arg = this.codeArguments[name]; context.setValue(arg.id, arg.value); }, this); }; ConcreteMethodDeclaration.prototype.fullDeclare = function(transpiler, id) { var declaration = new ConcreteMethodDeclaration(id, this.args, this.returnType, this.statements); declaration.memberOf = this.memberOf; transpiler.declare(declaration); this.statements.declare(transpiler); // remember code arguments declaration.codeArguments = {}; this.args.filter(function(arg) { return arg instanceof CodeArgument; }).forEach(function(arg) { declaration.codeArguments[arg.name] = { id: arg.id, value: transpiler.context.getValue(arg.id) }; }); }; ConcreteMethodDeclaration.prototype.locateSectionAtLine = function(line) { return this.statements.locateSectionAtLine(line); }; exports.ConcreteMethodDeclaration = ConcreteMethodDeclaration; /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { var Identifier = __webpack_require__(73).Identifier; var ContainerType = __webpack_require__(65).ContainerType; var BooleanType = __webpack_require__(72).BooleanType; var IntegerType = __webpack_require__(83).IntegerType; var TextType = __webpack_require__(135).TextType; var SetType = __webpack_require__(144).SetType; var ListType = __webpack_require__(71).ListType; var EntryType = __webpack_require__(179).EntryType; var List = __webpack_require__(136).List; var StrictSet = __webpack_require__(85).StrictSet; var Dictionary = __webpack_require__(180).Dictionary; function DictionaryType(itemType) { ContainerType.call(this, new Identifier(itemType.name + "<:>"), itemType); this.itemType = itemType; return this; } DictionaryType.prototype = Object.create(ContainerType.prototype); DictionaryType.prototype.constructor = DictionaryType; DictionaryType.prototype.withItemType = function(itemType) { return new DictionaryType(itemType); }; DictionaryType.prototype.getTranspiledName = function(context) { return this.itemType.getTranspiledName(context) + "_dict"; }; DictionaryType.prototype.declare = function(transpiler) { transpiler.require(Dictionary); }; DictionaryType.prototype.isAssignableFrom = function(context, other) { return ContainerType.prototype.isAssignableFrom.call(this, context, other) || ((other instanceof DictionaryType) && this.itemType.isAssignableFrom(context, other.itemType)); }; DictionaryType.prototype.equals = function(obj) { if (obj == null) { return false; } else if (obj == this) { return true; } else if (!(obj instanceof DictionaryType)) { return false; } else { return this.itemType.equals(obj.itemType); } }; DictionaryType.prototype.checkAdd = function(context, other, tryReverse) { if(other instanceof DictionaryType && this.itemType.equals(other.itemType)) { return this; } else { return ContainerType.prototype.checkAdd.call(this, context, other, tryReverse); } }; DictionaryType.prototype.declareAdd = function(transpiler, other, tryReverse, left, right) { if(other instanceof DictionaryType && this.itemType.equals(other.itemType)) { left.declare(transpiler); right.declare(transpiler); } else { return ContainerType.prototype.declareAdd.call(this, transpiler, other, tryReverse, left, right); } }; DictionaryType.prototype.transpileAdd = function(transpiler, other, tryReverse, left, right) { if(other instanceof DictionaryType && this.itemType.equals(other.itemType)) { left.transpile(transpiler); transpiler.append(".add("); right.transpile(transpiler); transpiler.append(")"); } else { return ContainerType.prototype.transpileAdd.call(this, transpiler, other, tryReverse, left, right); } }; DictionaryType.prototype.checkContains = function(context, other) { if(other==TextType.instance) { return BooleanType.instance; } else { return ContainerType.prototype.checkContains.call(this, context, other); } }; DictionaryType.prototype.declareContains = function(transpiler, other, container, item) { transpiler.require(StrictSet); container.declare(transpiler); item.declare(transpiler); }; DictionaryType.prototype.transpileContains = function(transpiler, other, container, item) { container.transpile(transpiler); transpiler.append(".has("); item.transpile(transpiler); transpiler.append(")"); }; DictionaryType.prototype.checkContainsAllOrAny = function(context, other) { return BooleanType.instance; }; DictionaryType.prototype.declareContainsAllOrAny = function(transpiler, other, container, items) { transpiler.require(StrictSet); container.declare(transpiler); items.declare(transpiler); }; DictionaryType.prototype.transpileContainsAll = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAll("); items.transpile(transpiler); transpiler.append(")"); }; DictionaryType.prototype.transpileContainsAny = function(transpiler, other, container, items) { container.transpile(transpiler); transpiler.append(".hasAny("); items.transpile(transpiler); transpiler.append(")"); }; DictionaryType.prototype.checkItem = function(context, other, expression) { if(other==TextType.instance) { return this.itemType; } else { return ContainerType.prototype.checkItem.call(this, context, other, expression); } }; DictionaryType.prototype.declareItem = function(transpiler, itemType, item) { // nothing to do }; DictionaryType.prototype.transpileItem = function(transpiler, itemType, item) { transpiler.append(".item("); item.transpile(transpiler); transpiler.append(")"); }; DictionaryType.prototype.transpileAssignItemValue = function(transpiler, item, expression) { transpiler.append(".setItem("); item.transpile(transpiler); transpiler.append(", "); expression.transpile(transpiler); transpiler.append(")"); }; DictionaryType.prototype.checkIterator = function(context, source) { return new EntryType(this.itemType); }; DictionaryType.prototype.checkMember = function(context, section, name) { if ("count"==name) { return IntegerType.instance; } else if("keys"==name) { return new SetType(TextType.instance); } else if ("values"==name) { return new ListType(this.itemType); } else { return ContainerType.prototype.checkMember.call(this, context, section, name); } }; DictionaryType.prototype.declareMember = function(transpiler, name) { if("keys"===name) { transpiler.require(StrictSet); } else if("values"==name) { transpiler.require(List); } else if ("count"!==name) { ContainerType.prototype.declareMember.call(this, transpiler, name); } }; DictionaryType.prototype.transpileMember = function(transpiler, name) { if ("count"===name) { transpiler.append("length"); } else if("keys"===name || "values"==name) { transpiler.append(name); } else { ContainerType.prototype.transpileMember.call(this, transpiler, name); } }; exports.DictionaryType = DictionaryType; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { var BaseType = __webpack_require__(68).BaseType; var BooleanType = __webpack_require__(72).BooleanType; var TextType = __webpack_require__(135).TextType; var Identifier = __webpack_require__(73).Identifier; function EntryType(itemType) { BaseType.call(this, new Identifier(itemType.name + "{}[]")); this.itemType = itemType; return this; } EntryType.prototype = Object.create(BaseType.prototype); EntryType.prototype.constructor = EntryType; EntryType.prototype.checkMember = function(context, section, name) { if ("key"==name) { return TextType.instance; } else if ("value"==name) { return this.itemType; } else { return BaseType.prototype.checkMember.call(this, context, section, name); } }; EntryType.prototype.declareMember = function(transpiler, name) { if ("key"==name) return; else if ("value"==name) this.itemType.declare(transpiler); else return BaseType.prototype.declareMember.call(this, transpiler, name); }; EntryType.prototype.transpileMember = function(transpiler, name) { transpiler.append(name); }; exports.EntryType = EntryType; /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { var List = __webpack_require__(136).List; var StrictSet = __webpack_require__(85).StrictSet; function Dictionary(mutable, entries) { if(entries) Object.getOwnPropertyNames(entries).forEach(function(name) { this[name] = entries[name]; }, this); this.mutable = mutable || false; return this; } Object.defineProperty(Dictionary.prototype, "$keys", { get : function() { return Object.getOwnPropertyNames(this).filter(function(name) { return name!=="mutable"; }); } }); Object.defineProperty(Dictionary.prototype, "length", { get : function() { return this.$keys.length; } }); Object.defineProperty(Dictionary.prototype, "keys", { get : function() { return new StrictSet(this.$keys); } }); Object.defineProperty(Dictionary.prototype, "values", { get : function() { var names = this.$keys.map(function(name) { return this[name]; }, this); return new List(false, names); } }); Dictionary.prototype.iterator = function() { var self = this; var iter = this.keys.iterator(); return { hasNext: iter.hasNext, next: function() { var key = iter.next(); return {key: key, value: self[key] }; } }; }; Dictionary.prototype.add = function(dict) { var result = Object.assign({}, this, dict); result.__proto__ = Dictionary.prototype; return result; } Dictionary.prototype.toString = function() { var vals = this.$keys.map(function (name) { return '"' + name + '":' + this[name]; }, this); return "<" + (vals.length ? vals.join(", ") : ':') + ">"; }; Dictionary.prototype.getText = Dictionary.prototype.toString; Dictionary.prototype.equals = function(dict) { var keys = this.$keys; if (this.length != dict.length) return false; for (var i = 0; i < keys.length; i++) { var key = keys[i]; var v1 = this[key] || null; var v2 = dict[key] || null; if (v1 === v2) continue; else if (v1 === null || v2 === null) return false; else if (v1.equals) { if (!v1.equals(v2)) { return false; } } else if (v2.equals) { if (!v2.equals(v1)) { return false; } } else return false; } return true; }; Dictionary.prototype.has = function(item) { return this.hasOwnProperty(item); }; Dictionary.prototype.hasAll = function(items) { return this.keys.hasAll(items, true); }; Dictionary.prototype.hasAny = function(item) { return this.keys.hasAny(item, true); }; Dictionary.prototype.item = function(item) { if(!item) throw new ReferenceError(); if(!this.hasOwnProperty(item)) throw new RangeError(); return this[item]; }; Dictionary.prototype.setItem = function (item, value) { if(!this.mutable) throw new NotMutableError(); else if(item==null) throw new ReferenceError(); else this[item] = value; }; exports.Dictionary = Dictionary; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { var ObjectList = __webpack_require__(52).ObjectList; var TypeMap = __webpack_require__(182).TypeMap; var VoidType = __webpack_require__(153).VoidType; var Dialect = __webpack_require__(110).Dialect; var PromptoError = __webpack_require__(64).PromptoError; var NullReferenceError = __webpack_require__(107).NullReferenceError; var SimpleStatement = __webpack_require__(96).SimpleStatement; var NativeCall = __webpack_require__(183).NativeCall; var JavaScriptNativeCall = __webpack_require__(184).JavaScriptNativeCall; function StatementList(statement) { ObjectList.call(this); this.add(statement); return this; } StatementList.prototype = Object.create(ObjectList.prototype); StatementList.prototype.constructor = StatementList; StatementList.prototype.check = function(context, returnType) { return this.checkStatements(context, returnType, false); }; StatementList.prototype.checkNative = function(context, returnType) { return this.checkStatements(context, returnType, true); }; StatementList.prototype.checkStatements = function(context, returnType, nativeOnly) { if(returnType==VoidType.instance) { if(nativeOnly) { this.forEach(function (stmt) { if(stmt instanceof JavaScriptNativeCall) stmt.check(context); }); } else { this.forEach(function (stmt) { stmt.check(context); }); } return VoidType.instance; } else { var section = null; var types = new TypeMap(); if(nativeOnly) { this.forEach(function (stmt) { if(stmt instanceof JavaScriptNativeCall) { var type = stmt.check(context); if(!stmt.canReturn()) type = VoidType.instance; if(type!==VoidType.instance) { section = stmt; types[type.name] = type; } } }); } else { this.forEach(function (stmt) { var type = stmt.check(context); if(type!==VoidType.instance) { section = stmt; types[type.name] = type; } }); } return types.inferType(context, section); } }; StatementList.prototype.interpret = function(context) { try { return this.doInterpret(context); } catch(e) { if(e instanceof ReferenceError) { throw new NullReferenceError(); } else { if(!(e instanceof PromptoError)) console.trace(); throw e; } } }; StatementList.prototype.interpretNative = function(context, returnType) { try { return this.doInterpretNative(context, returnType); } catch(e) { if(e instanceof ReferenceError) { throw new NullReferenceError(); } else { if(!(e instanceof PromptoError)) console.trace(); throw e; } } }; StatementList.prototype.doInterpret = function(context) { for(var i=0;i"); this.returnType.toDialect(writer); } writer.append(":").newLine().indent(); this.statements.toDialect(writer); writer.dedent(); }; NativeMethodDeclaration.prototype.toODialect = function(writer) { if(this.returnType!=null && this.returnType!=VoidType.instance) { this.returnType.toDialect(writer); writer.append(" "); } if(this.memberOf==null) writer.append("native "); writer.append("method ").append(this.name).append(" ("); this.args.toDialect(writer); writer.append(") {").newLine().indent(); this.statements.forEach(function(stmt) { stmt.toDialect(writer); writer.newLine(); }); writer.dedent().append("}").newLine(); }; NativeMethodDeclaration.prototype.toEDialect = function(writer) { writer.append("define ").append(this.name).append(" as "); if(this.memberOf==null) writer.append("native "); writer.append("method "); this.args.toDialect(writer); if(this.returnType!=null && this.returnType!=VoidType.instance) { writer.append("returning "); this.returnType.toDialect(writer); writer.append(" "); } writer.append("doing:").newLine().indent(); this.statements.toDialect(writer); writer.dedent().newLine(); }; exports.NativeMethodDeclaration = NativeMethodDeclaration; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { exports.Any = __webpack_require__(75).Any; exports.Blob = __webpack_require__(188).Blob; exports.Cursor = __webpack_require__(295).Cursor; exports.DateTime = __webpack_require__(296).DateTime; exports.Dictionary = __webpack_require__(180).Dictionary; exports.Document = __webpack_require__(165).Document; exports.List = __webpack_require__(136).List; exports.LocalDate = __webpack_require__(298).LocalDate; exports.LocalTime = __webpack_require__(299).LocalTime; exports.Period = __webpack_require__(297).Period; exports.Range = __webpack_require__(140).Range; exports.StrictSet = __webpack_require__(85).StrictSet; exports.Tuple = __webpack_require__(300).Tuple; exports.UUID = __webpack_require__(301).UUID; exports.Version = __webpack_require__(302).Version; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { var utf8BufferToString = __webpack_require__(51).utf8BufferToString; function Blob(data) { this.data = data; return this; } Blob.ofValue = function(value) { var binaries = {}; // create json type-aware object graph and collect binaries var values = {}; // need a temporary parent value.toJson(values, null, "value", true, binaries); var json = JSON.stringify(values["value"]); // add it binaries["value.json"] = stringToUtf8Buffer(json); // zip binaries var zipped = Blob.zipDatas(binaries) // done return new Blob(zipped); }; Blob.zipDatas = function(datas) { var JSZip = __webpack_require__(189); var zip = new JSZip(); return zip.sync(function() { for (var key in datas) zip.file(key, datas[key]); var result = null; zip.generateAsync({type: "arraybuffer", compression: "DEFLATE"}). then(function(value) { result = value; }); return result; }); }; Blob.readParts = function(data) { var JSZip = __webpack_require__(189); var zip = new JSZip(); return zip.sync(function() { var parts = {}; zip.loadAsync(data); zip.forEach(function (entry) { zip.file(entry) .async("arraybuffer") .then(function(value) { parts[entry] = value; }); }); return parts; }); }; Blob.readValue = function(parts) { var data = parts["value.json"] || null; if (data == null) throw new Error("Expecting a 'value.json' part!"); var json = utf8BufferToString(data); return JSON.parse(json); }; Blob.prototype.toDocument = function() { var parts = Blob.readParts(this.data); var value = Blob.readValue(parts); var typeName = value["type"] || null; if (typeName == null) throw new Error("Expecting a 'type' field!"); var type = eval(typeName) if (type != Document) throw new Error("Expecting a Document type!"); value = value["value"] || null; if (value == null) throw new Error("Expecting a 'value' field!"); var instance = new type(); instance.fromJson(value, parts); return instance; }; exports.Blob = Blob; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; /** * Representation a of zip file in js * @constructor */ function JSZip() { // if this constructor is used without `new`, it adds `new` before itself: if(!(this instanceof JSZip)) { return new JSZip(); } if(arguments.length) { throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); } // object containing the files : // { // "folder/" : {...}, // "folder/data.txt" : {...} // } this.files = {}; this.comment = null; // Where we are in the hierarchy this.root = ""; this.clone = function() { var newObj = new JSZip(); for (var i in this) { if (typeof this[i] !== "function") { newObj[i] = this[i]; } } return newObj; }; } JSZip.prototype = __webpack_require__(190); JSZip.prototype.loadAsync = __webpack_require__(286); JSZip.support = __webpack_require__(193); JSZip.defaults = __webpack_require__(256); // TODO find a better way to handle this version, // a require('package.json').version doesn't work with webpack, see #327 JSZip.version = "3.1.3"; JSZip.loadAsync = function (content, options) { return new JSZip().loadAsync(content, options); }; JSZip.external = __webpack_require__(247); module.exports = JSZip; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var utf8 = __webpack_require__(191); var utils = __webpack_require__(192); var GenericWorker = __webpack_require__(250); var StreamHelper = __webpack_require__(251); var defaults = __webpack_require__(256); var CompressedObject = __webpack_require__(257); var ZipObject = __webpack_require__(262); var generate = __webpack_require__(263); var external = __webpack_require__(247); var nodejsUtils = __webpack_require__(225); var NodejsStreamInputAdapter = __webpack_require__(284); var SyncPromise = __webpack_require__(285).SyncPromise; /** * Add a file in the current folder. * @private * @param {string} name the name of the file * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file * @param {Object} originalOptions the options of the file * @return {Object} the new file. */ var fileAdd = function(name, data, originalOptions) { // be sure sub folders exist var dataType = utils.getTypeOf(data), parent; /* * Correct options. */ var o = utils.extend(originalOptions || {}, defaults); o.date = o.date || new Date(); if (o.compression !== null) { o.compression = o.compression.toUpperCase(); } if (typeof o.unixPermissions === "string") { o.unixPermissions = parseInt(o.unixPermissions, 8); } // UNX_IFDIR 0040000 see zipinfo.c if (o.unixPermissions && (o.unixPermissions & 0x4000)) { o.dir = true; } // Bit 4 Directory if (o.dosPermissions && (o.dosPermissions & 0x0010)) { o.dir = true; } if (o.dir) { name = forceTrailingSlash(name); } if (o.createFolders && (parent = parentFolder(name))) { folderAdd.call(this, parent, true); } var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; if (!originalOptions || typeof originalOptions.binary === "undefined") { o.binary = !isUnicodeString; } var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; if (isCompressedEmpty || o.dir || !data || data.length === 0) { o.base64 = false; o.binary = true; data = ""; o.compression = "STORE"; dataType = "string"; } /* * Convert content to fit. */ var zipObjectContent = null; if (data instanceof CompressedObject || data instanceof GenericWorker) { zipObjectContent = data; } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { zipObjectContent = new NodejsStreamInputAdapter(name, data); } else { zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); } var object = new ZipObject(name, zipObjectContent, o); this.files[name] = object; /* TODO: we can't throw an exception because we have async promises (we can have a promise of a Date() for example) but returning a promise is useless because file(name, data) returns the JSZip object for chaining. Should we break that to allow the user to catch the error ? return external.Promise.resolve(zipObjectContent) .then(function () { return object; }); */ }; /** * Find the parent folder of the path. * @private * @param {string} path the path to use * @return {string} the parent folder, or "" */ var parentFolder = function (path) { if (path.slice(-1) === '/') { path = path.substring(0, path.length - 1); } var lastSlash = path.lastIndexOf('/'); return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; }; /** * Returns the path with a slash at the end. * @private * @param {String} path the path to check. * @return {String} the path with a trailing slash. */ var forceTrailingSlash = function(path) { // Check the name ends with a / if (path.slice(-1) !== "/") { path += "/"; // IE doesn't like substr(-1) } return path; }; /** * Add a (sub) folder in the current folder. * @private * @param {string} name the folder's name * @param {boolean=} [createFolders] If true, automatically create sub * folders. Defaults to false. * @return {Object} the new folder. */ var folderAdd = function(name, createFolders) { createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders; name = forceTrailingSlash(name); // Does this folder already exist? if (!this.files[name]) { fileAdd.call(this, name, null, { dir: true, createFolders: createFolders }); } return this.files[name]; }; /** * Cross-window, cross-Node-context regular expression detection * @param {Object} object Anything * @return {Boolean} true if the object is a regular expression, * false otherwise */ function isRegExp(object) { return Object.prototype.toString.call(object) === "[object RegExp]"; } // return the actual prototype of JSZip var out = { sync: function(cb) { var saved_promise = external.Promise; var saved_delay = external.delay; try { // convert async stuff to sync stuff external.Promise = SyncPromise; external.delay = function(callback, args, self) { callback.apply(self || null, args || []); }; // execute return cb.call(); } finally { external.delay = saved_delay; external.Promise = saved_promise; }; }, /** * @see loadAsync */ load: function() { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); }, /** * Call a callback function for each entry at this folder level. * @param {Function} cb the callback function: * function (relativePath, file) {...} * It takes 2 arguments : the relative path and the file. */ forEach: function(cb) { var filename, relativePath, file; for (filename in this.files) { if (!this.files.hasOwnProperty(filename)) { continue; } file = this.files[filename]; relativePath = filename.slice(this.root.length, filename.length); if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... } } }, /** * Filter nested files/folders with the specified function. * @param {Function} search the predicate to use : * function (relativePath, file) {...} * It takes 2 arguments : the relative path and the file. * @return {Array} An array of matching elements. */ filter: function(search) { var result = []; this.forEach(function (relativePath, entry) { if (search(relativePath, entry)) { // the file matches the function result.push(entry); } }); return result; }, /** * Add a file to the zip file, or search a file. * @param {string|RegExp} name The name of the file to add (if data is defined), * the name of the file to find (if no data) or a regex to match files. * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded * @param {Object} o File options * @return {JSZip|Object|Array} this JSZip object (when adding a file), * a file (when searching by string) or an array of files (when searching by regex). */ file: function(name, data, o) { if (arguments.length === 1) { if (isRegExp(name)) { var regexp = name; return this.filter(function(relativePath, file) { return !file.dir && regexp.test(relativePath); }); } else { // text var obj = this.files[this.root + name]; if (obj && !obj.dir) { return obj; } else { return null; } } } else { // more than one argument : we have data ! name = this.root + name; fileAdd.call(this, name, data, o); } return this; }, /** * Add a directory to the zip file, or search. * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. */ folder: function(arg) { if (!arg) { return this; } if (isRegExp(arg)) { return this.filter(function(relativePath, file) { return file.dir && arg.test(relativePath); }); } // else, name is a new folder var name = this.root + arg; var newFolder = folderAdd.call(this, name); // Allow chaining by returning a new object with this folder as the root var ret = this.clone(); ret.root = newFolder.name; return ret; }, /** * Delete a file, or a directory and all sub-files, from the zip * @param {string} name the name of the file to delete * @return {JSZip} this JSZip object */ remove: function(name) { name = this.root + name; var file = this.files[name]; if (!file) { // Look for any folders if (name.slice(-1) !== "/") { name += "/"; } file = this.files[name]; } if (file && !file.dir) { // file delete this.files[name]; } else { // maybe a folder, delete recursively var kids = this.filter(function(relativePath, file) { return file.name.slice(0, name.length) === name; }); for (var i = 0; i < kids.length; i++) { delete this.files[kids[i].name]; } } return this; }, /** * Generate the complete zip file * @param {Object} options the options to generate the zip file : * - compression, "STORE" by default. * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file */ generate: function(options) { throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); }, /** * Generate the complete zip file as an internal stream. * @param {Object} options the options to generate the zip file : * - compression, "STORE" by default. * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. * @return {StreamHelper} the streamed zip file. */ generateInternalStream: function(options) { var worker, opts = {}; try { opts = utils.extend(options || {}, { streamFiles: false, compression: "STORE", compressionOptions : null, type: "", platform: "DOS", comment: null, mimeType: 'application/zip', encodeFileName: utf8.utf8encode }); opts.type = opts.type.toLowerCase(); opts.compression = opts.compression.toUpperCase(); // "binarystring" is prefered but the internals use "string". if(opts.type === "binarystring") { opts.type = "string"; } if (!opts.type) { throw new Error("No output type specified."); } utils.checkSupport(opts.type); // accept nodejs `process.platform` if( opts.platform === 'darwin' || opts.platform === 'freebsd' || opts.platform === 'linux' || opts.platform === 'sunos' ) { opts.platform = "UNIX"; } if (opts.platform === 'win32') { opts.platform = "DOS"; } var comment = opts.comment || this.comment || ""; worker = generate.generateWorker(this, opts, comment); } catch (e) { worker = new GenericWorker("error"); worker.error(e); } return new StreamHelper(worker, opts.type || "string", opts.mimeType); }, /** * Generate the complete zip file asynchronously. * @see generateInternalStream */ generateAsync: function(options, onUpdate) { return this.generateInternalStream(options).accumulate(onUpdate); }, /** * Generate the complete zip file asynchronously. * @see generateInternalStream */ generateNodeStream: function(options, onUpdate) { options = options || {}; if (!options.type) { options.type = "nodebuffer"; } return this.generateInternalStream(options).toNodejsStream(onUpdate); } }; module.exports = out; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var utils = __webpack_require__(192); var support = __webpack_require__(193); var nodejsUtils = __webpack_require__(225); var GenericWorker = __webpack_require__(250); /** * The following functions come from pako, from pako/lib/utils/strings * released under the MIT license, see pako https://github.com/nodeca/pako/ */ // Table with utf8 lengths (calculated by first byte of sequence) // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, // because max possible codepoint is 0x10ffff var _utf8len = new Array(256); for (var i=0; i<256; i++) { _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); } _utf8len[254]=_utf8len[254]=1; // Invalid sequence start // convert string to array (typed, when possible) var string2buf = function (str) { var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; // count binary size for (m_pos = 0; m_pos < str_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { c2 = str.charCodeAt(m_pos+1); if ((c2 & 0xfc00) === 0xdc00) { c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); m_pos++; } } buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; } // allocate buffer if (support.uint8array) { buf = new Uint8Array(buf_len); } else { buf = new Array(buf_len); } // convert for (i=0, m_pos = 0; i < buf_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { c2 = str.charCodeAt(m_pos+1); if ((c2 & 0xfc00) === 0xdc00) { c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); m_pos++; } } if (c < 0x80) { /* one byte */ buf[i++] = c; } else if (c < 0x800) { /* two bytes */ buf[i++] = 0xC0 | (c >>> 6); buf[i++] = 0x80 | (c & 0x3f); } else if (c < 0x10000) { /* three bytes */ buf[i++] = 0xE0 | (c >>> 12); buf[i++] = 0x80 | (c >>> 6 & 0x3f); buf[i++] = 0x80 | (c & 0x3f); } else { /* four bytes */ buf[i++] = 0xf0 | (c >>> 18); buf[i++] = 0x80 | (c >>> 12 & 0x3f); buf[i++] = 0x80 | (c >>> 6 & 0x3f); buf[i++] = 0x80 | (c & 0x3f); } } return buf; }; // Calculate max possible position in utf8 buffer, // that will not break sequence. If that's not possible // - (very small limits) return max size as is. // // buf[] - utf8 bytes array // max - length limit (mandatory); var utf8border = function(buf, max) { var pos; max = max || buf.length; if (max > buf.length) { max = buf.length; } // go back from last position, until start of sequence found pos = max-1; while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } // Fuckup - very small and broken sequence, // return max, because we should return something anyway. if (pos < 0) { return max; } // If we came to start of buffer - that means vuffer is too small, // return max too. if (pos === 0) { return max; } return (pos + _utf8len[buf[pos]] > max) ? pos : max; }; // convert array to string var buf2string = function (buf) { var str, i, out, c, c_len; var len = buf.length; // Reserve max possible length (2 words per char) // NB: by unknown reasons, Array is significantly faster for // String.fromCharCode.apply than Uint16Array. var utf16buf = new Array(len*2); for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } // apply mask on first byte c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; // join the rest while (c_len > 1 && i < len) { c = (c << 6) | (buf[i++] & 0x3f); c_len--; } // terminated by end of string? if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } if (c < 0x10000) { utf16buf[out++] = c; } else { c -= 0x10000; utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); utf16buf[out++] = 0xdc00 | (c & 0x3ff); } } // shrinkBuf(utf16buf, out) if (utf16buf.length !== out) { if(utf16buf.subarray) { utf16buf = utf16buf.subarray(0, out); } else { utf16buf.length = out; } } // return String.fromCharCode.apply(null, utf16buf); return utils.applyFromCharCode(utf16buf); }; // That's all for the pako functions. /** * Transform a javascript string into an array (typed if possible) of bytes, * UTF-8 encoded. * @param {String} str the string to encode * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. */ exports.utf8encode = function utf8encode(str) { if (support.nodebuffer) { return nodejsUtils.newBuffer(str, "utf-8"); } return string2buf(str); }; /** * Transform a bytes array (or a representation) representing an UTF-8 encoded * string into a javascript string. * @param {Array|Uint8Array|Buffer} buf the data de decode * @return {String} the decoded string. */ exports.utf8decode = function utf8decode(buf) { if (support.nodebuffer) { return utils.transformTo("nodebuffer", buf).toString("utf-8"); } buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); return buf2string(buf); }; /** * A worker to decode utf8 encoded binary chunks into string chunks. * @constructor */ function Utf8DecodeWorker() { GenericWorker.call(this, "utf-8 decode"); // the last bytes if a chunk didn't end with a complete codepoint. this.leftOver = null; } utils.inherits(Utf8DecodeWorker, GenericWorker); /** * @see GenericWorker.processChunk */ Utf8DecodeWorker.prototype.processChunk = function (chunk) { var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); // 1st step, re-use what's left of the previous chunk if (this.leftOver && this.leftOver.length) { if(support.uint8array) { var previousData = data; data = new Uint8Array(previousData.length + this.leftOver.length); data.set(this.leftOver, 0); data.set(previousData, this.leftOver.length); } else { data = this.leftOver.concat(data); } this.leftOver = null; } var nextBoundary = utf8border(data); var usableData = data; if (nextBoundary !== data.length) { if (support.uint8array) { usableData = data.subarray(0, nextBoundary); this.leftOver = data.subarray(nextBoundary, data.length); } else { usableData = data.slice(0, nextBoundary); this.leftOver = data.slice(nextBoundary, data.length); } } this.push({ data : exports.utf8decode(usableData), meta : chunk.meta }); }; /** * @see GenericWorker.flush */ Utf8DecodeWorker.prototype.flush = function () { if(this.leftOver && this.leftOver.length) { this.push({ data : exports.utf8decode(this.leftOver), meta : {} }); this.leftOver = null; } }; exports.Utf8DecodeWorker = Utf8DecodeWorker; /** * A worker to endcode string chunks into utf8 encoded binary chunks. * @constructor */ function Utf8EncodeWorker() { GenericWorker.call(this, "utf-8 encode"); } utils.inherits(Utf8EncodeWorker, GenericWorker); /** * @see GenericWorker.processChunk */ Utf8EncodeWorker.prototype.processChunk = function (chunk) { this.push({ data : exports.utf8encode(chunk.data), meta : chunk.meta }); }; exports.Utf8EncodeWorker = Utf8EncodeWorker; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var support = __webpack_require__(193); var base64 = __webpack_require__(224); var nodejsUtils = __webpack_require__(225); var setImmediate = __webpack_require__(226); var external = __webpack_require__(247); /** * Convert a string that pass as a "binary string": it should represent a byte * array but may have > 255 char codes. Be sure to take only the first byte * and returns the byte array. * @param {String} str the string to transform. * @return {Array|Uint8Array} the string in a binary format. */ function string2binary(str) { var result = null; if (support.uint8array) { result = new Uint8Array(str.length); } else { result = new Array(str.length); } return stringToArrayLike(str, result); } /** * Create a new blob with the given content and the given type. * @param {Array[String|ArrayBuffer]} parts the content to put in the blob. DO NOT use * an Uint8Array because the stock browser of android 4 won't accept it (it * will be silently converted to a string, "[object Uint8Array]"). * @param {String} type the mime type of the blob. * @return {Blob} the created blob. */ exports.newBlob = function(parts, type) { exports.checkSupport("blob"); try { // Blob constructor return new Blob(parts, { type: type }); } catch (e) { try { // deprecated, browser only, old way var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; var builder = new Builder(); for (var i = 0; i < parts.length; i++) { builder.append(parts[i]); } return builder.getBlob(type); } catch (e) { // well, fuck ?! throw new Error("Bug : can't construct the Blob."); } } }; /** * The identity function. * @param {Object} input the input. * @return {Object} the same input. */ function identity(input) { return input; } /** * Fill in an array with a string. * @param {String} str the string to use. * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. */ function stringToArrayLike(str, array) { for (var i = 0; i < str.length; ++i) { array[i] = str.charCodeAt(i) & 0xFF; } return array; } /** * An helper for the function arrayLikeToString. * This contains static informations and functions that * can be optimized by the browser JIT compiler. */ var arrayToStringHelper = { /** * Transform an array of int into a string, chunk by chunk. * See the performances notes on arrayLikeToString. * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. * @param {String} type the type of the array. * @param {Integer} chunk the chunk size. * @return {String} the resulting string. * @throws Error if the chunk is too big for the stack. */ stringifyByChunk: function(array, type, chunk) { var result = [], k = 0, len = array.length; // shortcut if (len <= chunk) { return String.fromCharCode.apply(null, array); } while (k < len) { if (type === "array" || type === "nodebuffer") { result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); } else { result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); } k += chunk; } return result.join(""); }, /** * Call String.fromCharCode on every item in the array. * This is the naive implementation, which generate A LOT of intermediate string. * This should be used when everything else fail. * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. * @return {String} the result. */ stringifyByChar: function(array){ var resultStr = ""; for(var i = 0; i < array.length; i++) { resultStr += String.fromCharCode(array[i]); } return resultStr; }, applyCanBeUsed : { /** * true if the browser accepts to use String.fromCharCode on Uint8Array */ uint8array : (function () { try { return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; } catch (e) { return false; } })(), /** * true if the browser accepts to use String.fromCharCode on nodejs Buffer. */ nodebuffer : (function () { try { return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.newBuffer(1)).length === 1; } catch (e) { return false; } })() } }; /** * Transform an array-like object to a string. * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. * @return {String} the result. */ function arrayLikeToString(array) { // Performances notes : // -------------------- // String.fromCharCode.apply(null, array) is the fastest, see // see http://jsperf.com/converting-a-uint8array-to-a-string/2 // but the stack is limited (and we can get huge arrays !). // // result += String.fromCharCode(array[i]); generate too many strings ! // // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 // TODO : we now have workers that split the work. Do we still need that ? var chunk = 65536, type = exports.getTypeOf(array), canUseApply = true; if (type === "uint8array") { canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; } else if (type === "nodebuffer") { canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; } if (canUseApply) { while (chunk > 1) { try { return arrayToStringHelper.stringifyByChunk(array, type, chunk); } catch (e) { chunk = Math.floor(chunk / 2); } } } // no apply or chunk error : slow and painful algorithm // default browser on android 4.* return arrayToStringHelper.stringifyByChar(array); } exports.applyFromCharCode = arrayLikeToString; /** * Copy the data from an array-like to an other array-like. * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. */ function arrayLikeToArrayLike(arrayFrom, arrayTo) { for (var i = 0; i < arrayFrom.length; i++) { arrayTo[i] = arrayFrom[i]; } return arrayTo; } // a matrix containing functions to transform everything into everything. var transform = {}; // string to ? transform["string"] = { "string": identity, "array": function(input) { return stringToArrayLike(input, new Array(input.length)); }, "arraybuffer": function(input) { return transform["string"]["uint8array"](input).buffer; }, "uint8array": function(input) { return stringToArrayLike(input, new Uint8Array(input.length)); }, "nodebuffer": function(input) { return stringToArrayLike(input, nodejsUtils.newBuffer(input.length)); } }; // array to ? transform["array"] = { "string": arrayLikeToString, "array": identity, "arraybuffer": function(input) { return (new Uint8Array(input)).buffer; }, "uint8array": function(input) { return new Uint8Array(input); }, "nodebuffer": function(input) { return nodejsUtils.newBuffer(input); } }; // arraybuffer to ? transform["arraybuffer"] = { "string": function(input) { return arrayLikeToString(new Uint8Array(input)); }, "array": function(input) { return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); }, "arraybuffer": identity, "uint8array": function(input) { return new Uint8Array(input); }, "nodebuffer": function(input) { return nodejsUtils.newBuffer(new Uint8Array(input)); } }; // uint8array to ? transform["uint8array"] = { "string": arrayLikeToString, "array": function(input) { return arrayLikeToArrayLike(input, new Array(input.length)); }, "arraybuffer": function(input) { // copy the uint8array: DO NOT propagate the original ArrayBuffer, it // can be way larger (the whole zip file for example). var copy = new Uint8Array(input.length); if (input.length) { copy.set(input, 0); } return copy.buffer; }, "uint8array": identity, "nodebuffer": function(input) { return nodejsUtils.newBuffer(input); } }; // nodebuffer to ? transform["nodebuffer"] = { "string": arrayLikeToString, "array": function(input) { return arrayLikeToArrayLike(input, new Array(input.length)); }, "arraybuffer": function(input) { return transform["nodebuffer"]["uint8array"](input).buffer; }, "uint8array": function(input) { return arrayLikeToArrayLike(input, new Uint8Array(input.length)); }, "nodebuffer": identity }; /** * Transform an input into any type. * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. * If no output type is specified, the unmodified input will be returned. * @param {String} outputType the output type. * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. * @throws {Error} an Error if the browser doesn't support the requested output type. */ exports.transformTo = function(outputType, input) { if (!input) { // undefined, null, etc // an empty string won't harm. input = ""; } if (!outputType) { return input; } exports.checkSupport(outputType); var inputType = exports.getTypeOf(input); var result = transform[inputType][outputType](input); return result; }; /** * Return the type of the input. * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. * @param {Object} input the input to identify. * @return {String} the (lowercase) type of the input. */ exports.getTypeOf = function(input) { if (typeof input === "string") { return "string"; } if (Object.prototype.toString.call(input) === "[object Array]") { return "array"; } if (support.nodebuffer && nodejsUtils.isBuffer(input)) { return "nodebuffer"; } if (support.uint8array && input instanceof Uint8Array) { return "uint8array"; } if (support.arraybuffer && input instanceof ArrayBuffer) { return "arraybuffer"; } }; /** * Throw an exception if the type is not supported. * @param {String} type the type to check. * @throws {Error} an Error if the browser doesn't support the requested type. */ exports.checkSupport = function(type) { var supported = support[type.toLowerCase()]; if (!supported) { throw new Error(type + " is not supported by this platform"); } }; exports.MAX_VALUE_16BITS = 65535; exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 /** * Prettify a string read as binary. * @param {string} str the string to prettify. * @return {string} a pretty string. */ exports.pretty = function(str) { var res = '', code, i; for (i = 0; i < (str || "").length; i++) { code = str.charCodeAt(i); res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); } return res; }; /** * Defer the call of a function. * @param {Function} callback the function to call asynchronously. * @param {Array} args the arguments to give to the callback. */ exports.delay = function(callback, args, self) { setImmediate(function () { callback.apply(self || null, args || []); }); }; /** * Extends a prototype with an other, without calling a constructor with * side effects. Inspired by nodejs' `utils.inherits` * @param {Function} ctor the constructor to augment * @param {Function} superCtor the parent constructor to use */ exports.inherits = function (ctor, superCtor) { var Obj = function() {}; Obj.prototype = superCtor.prototype; ctor.prototype = new Obj(); }; /** * Merge the objects passed as parameters into a new one. * @private * @param {...Object} var_args All objects to merge. * @return {Object} a new object with the data of the others. */ exports.extend = function() { var result = {}, i, attr; for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers for (attr in arguments[i]) { if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { result[attr] = arguments[i][attr]; } } } return result; }; /** * Transform arbitrary content into a Promise. * @param {String} name a name for the content being processed. * @param {Object} inputData the content to process. * @param {Boolean} isBinary true if the content is not an unicode string * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. * @param {Boolean} isBase64 true if the string content is encoded with base64. * @return {Promise} a promise in a format usable by JSZip. */ exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { // if inputData is already a promise, this flatten it. var promise = external.Promise.resolve(inputData).then(function(data) { var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1); if (isBlob && typeof FileReader !== "undefined") { return new external.Promise(function (resolve, reject) { var reader = new FileReader(); reader.onload = function(e) { resolve(e.target.result); }; reader.onerror = function(e) { reject(e.target.error); }; reader.readAsArrayBuffer(data); }); } else { return data; } }); return promise.then(function(data) { var dataType = exports.getTypeOf(data); if (!dataType) { return external.Promise.reject( new Error("The data of '" + name + "' is in an unsupported format !") ); } // special case : it's way easier to work with Uint8Array than with ArrayBuffer if (dataType === "arraybuffer") { data = exports.transformTo("uint8array", data); } else if (dataType === "string") { if (isBase64) { data = base64.decode(data); } else if (isBinary) { // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask if (isOptimizedBinaryString !== true) { // this is a string, not in a base64 format. // Be sure that this is a correct "binary string" data = string2binary(data); } } } return data; }); }; /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; exports.base64 = true; exports.array = true; exports.string = true; exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; exports.nodebuffer = typeof Buffer !== "undefined"; // contains true if JSZip can read/generate Uint8Array, false otherwise. exports.uint8array = typeof Uint8Array !== "undefined"; if (typeof ArrayBuffer === "undefined") { exports.blob = false; } else { var buffer = new ArrayBuffer(0); try { exports.blob = new Blob([buffer], { type: "application/zip" }).size === 0; } catch (e) { try { var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder; var builder = new Builder(); builder.append(buffer); exports.blob = builder.getBlob('application/zip').size === 0; } catch (e) { exports.blob = false; } } } try { exports.nodestream = !!__webpack_require__(198).Readable; } catch(e) { exports.nodestream = false; } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(194).Buffer)) /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ /* eslint-disable no-proto */ 'use strict' var base64 = __webpack_require__(195) var ieee754 = __webpack_require__(196) var isArray = __webpack_require__(197) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer exports.INSPECT_MAX_BYTES = 50 /** * If `Buffer.TYPED_ARRAY_SUPPORT`: * === true Use Uint8Array implementation (fastest) * === false Use Object implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * Due to various browser bugs, sometimes the Object implementation will be used even * when the browser supports typed arrays. * * Note: * * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. * * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. * * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of * incorrect length in some situations. * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they * get the Object implementation, which is slower but behaves correctly. */ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport() /* * Export kMaxLength after typed array support is determined. */ exports.kMaxLength = kMaxLength() function typedArraySupport () { try { var arr = new Uint8Array(1) arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} return arr.foo() === 42 && // typed array instances can be augmented typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` } catch (e) { return false } } function kMaxLength () { return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff } function createBuffer (that, length) { if (kMaxLength() < length) { throw new RangeError('Invalid typed array length') } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = new Uint8Array(length) that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class if (that === null) { that = new Buffer(length) } that.length = length } return that } /** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */ function Buffer (arg, encodingOrOffset, length) { if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { return new Buffer(arg, encodingOrOffset, length) } // Common case. if (typeof arg === 'number') { if (typeof encodingOrOffset === 'string') { throw new Error( 'If encoding is specified then the first argument must be a string' ) } return allocUnsafe(this, arg) } return from(this, arg, encodingOrOffset, length) } Buffer.poolSize = 8192 // not used by this implementation // TODO: Legacy, not needed anymore. Remove in next major version. Buffer._augment = function (arr) { arr.__proto__ = Buffer.prototype return arr } function from (that, value, encodingOrOffset, length) { if (typeof value === 'number') { throw new TypeError('"value" argument must not be a number') } if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { return fromArrayBuffer(that, value, encodingOrOffset, length) } if (typeof value === 'string') { return fromString(that, value, encodingOrOffset) } return fromObject(that, value) } /** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/ Buffer.from = function (value, encodingOrOffset, length) { return from(null, value, encodingOrOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { Buffer.prototype.__proto__ = Uint8Array.prototype Buffer.__proto__ = Uint8Array if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) { // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 Object.defineProperty(Buffer, Symbol.species, { value: null, configurable: true }) } } function assertSize (size) { if (typeof size !== 'number') { throw new TypeError('"size" argument must be a number') } else if (size < 0) { throw new RangeError('"size" argument must not be negative') } } function alloc (that, size, fill, encoding) { assertSize(size) if (size <= 0) { return createBuffer(that, size) } if (fill !== undefined) { // Only pay attention to encoding if it's a string. This // prevents accidentally sending in a number that would // be interpretted as a start offset. return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill) } return createBuffer(that, size) } /** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/ Buffer.alloc = function (size, fill, encoding) { return alloc(null, size, fill, encoding) } function allocUnsafe (that, size) { assertSize(size) that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) if (!Buffer.TYPED_ARRAY_SUPPORT) { for (var i = 0; i < size; ++i) { that[i] = 0 } } return that } /** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */ Buffer.allocUnsafe = function (size) { return allocUnsafe(null, size) } /** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */ Buffer.allocUnsafeSlow = function (size) { return allocUnsafe(null, size) } function fromString (that, string, encoding) { if (typeof encoding !== 'string' || encoding === '') { encoding = 'utf8' } if (!Buffer.isEncoding(encoding)) { throw new TypeError('"encoding" must be a valid string encoding') } var length = byteLength(string, encoding) | 0 that = createBuffer(that, length) var actual = that.write(string, encoding) if (actual !== length) { // Writing a hex string, for example, that contains invalid characters will // cause everything after the first invalid character to be ignored. (e.g. // 'abxxcd' will be treated as 'ab') that = that.slice(0, actual) } return that } function fromArrayLike (that, array) { var length = array.length < 0 ? 0 : checked(array.length) | 0 that = createBuffer(that, length) for (var i = 0; i < length; i += 1) { that[i] = array[i] & 255 } return that } function fromArrayBuffer (that, array, byteOffset, length) { array.byteLength // this throws if `array` is not a valid ArrayBuffer if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError('\'offset\' is out of bounds') } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError('\'length\' is out of bounds') } if (byteOffset === undefined && length === undefined) { array = new Uint8Array(array) } else if (length === undefined) { array = new Uint8Array(array, byteOffset) } else { array = new Uint8Array(array, byteOffset, length) } if (Buffer.TYPED_ARRAY_SUPPORT) { // Return an augmented `Uint8Array` instance, for best performance that = array that.__proto__ = Buffer.prototype } else { // Fallback: Return an object instance of the Buffer class that = fromArrayLike(that, array) } return that } function fromObject (that, obj) { if (Buffer.isBuffer(obj)) { var len = checked(obj.length) | 0 that = createBuffer(that, len) if (that.length === 0) { return that } obj.copy(that, 0, 0, len) return that } if (obj) { if ((typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer) || 'length' in obj) { if (typeof obj.length !== 'number' || isnan(obj.length)) { return createBuffer(that, 0) } return fromArrayLike(that, obj) } if (obj.type === 'Buffer' && isArray(obj.data)) { return fromArrayLike(that, obj.data) } } throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') } function checked (length) { // Note: cannot use `length < kMaxLength()` here because that fails when // length is NaN (which is otherwise coerced to zero.) if (length >= kMaxLength()) { throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes') } return length | 0 } function SlowBuffer (length) { if (+length != length) { // eslint-disable-line eqeqeq length = 0 } return Buffer.alloc(+length) } Buffer.isBuffer = function isBuffer (b) { return !!(b != null && b._isBuffer) } Buffer.compare = function compare (a, b) { if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { throw new TypeError('Arguments must be Buffers') } if (a === b) return 0 var x = a.length var y = b.length for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i] y = b[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } Buffer.isEncoding = function isEncoding (encoding) { switch (String(encoding).toLowerCase()) { case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'latin1': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return true default: return false } } Buffer.concat = function concat (list, length) { if (!isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers') } if (list.length === 0) { return Buffer.alloc(0) } var i if (length === undefined) { length = 0 for (i = 0; i < list.length; ++i) { length += list[i].length } } var buffer = Buffer.allocUnsafe(length) var pos = 0 for (i = 0; i < list.length; ++i) { var buf = list[i] if (!Buffer.isBuffer(buf)) { throw new TypeError('"list" argument must be an Array of Buffers') } buf.copy(buffer, pos) pos += buf.length } return buffer } function byteLength (string, encoding) { if (Buffer.isBuffer(string)) { return string.length } if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { return string.byteLength } if (typeof string !== 'string') { string = '' + string } var len = string.length if (len === 0) return 0 // Use a for loop to avoid recursion var loweredCase = false for (;;) { switch (encoding) { case 'ascii': case 'latin1': case 'binary': return len case 'utf8': case 'utf-8': case undefined: return utf8ToBytes(string).length case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return len * 2 case 'hex': return len >>> 1 case 'base64': return base64ToBytes(string).length default: if (loweredCase) return utf8ToBytes(string).length // assume utf8 encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.byteLength = byteLength function slowToString (encoding, start, end) { var loweredCase = false // No need to verify that "this.length <= MAX_UINT32" since it's a read-only // property of a typed array. // This behaves neither like String nor Uint8Array in that we set start/end // to their upper/lower bounds if the value passed is out of range. // undefined is handled specially as per ECMA-262 6th Edition, // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. if (start === undefined || start < 0) { start = 0 } // Return early if start > this.length. Done here to prevent potential uint32 // coercion fail below. if (start > this.length) { return '' } if (end === undefined || end > this.length) { end = this.length } if (end <= 0) { return '' } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. end >>>= 0 start >>>= 0 if (end <= start) { return '' } if (!encoding) encoding = 'utf8' while (true) { switch (encoding) { case 'hex': return hexSlice(this, start, end) case 'utf8': case 'utf-8': return utf8Slice(this, start, end) case 'ascii': return asciiSlice(this, start, end) case 'latin1': case 'binary': return latin1Slice(this, start, end) case 'base64': return base64Slice(this, start, end) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return utf16leSlice(this, start, end) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = (encoding + '').toLowerCase() loweredCase = true } } } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect // Buffer instances. Buffer.prototype._isBuffer = true function swap (b, n, m) { var i = b[n] b[n] = b[m] b[m] = i } Buffer.prototype.swap16 = function swap16 () { var len = this.length if (len % 2 !== 0) { throw new RangeError('Buffer size must be a multiple of 16-bits') } for (var i = 0; i < len; i += 2) { swap(this, i, i + 1) } return this } Buffer.prototype.swap32 = function swap32 () { var len = this.length if (len % 4 !== 0) { throw new RangeError('Buffer size must be a multiple of 32-bits') } for (var i = 0; i < len; i += 4) { swap(this, i, i + 3) swap(this, i + 1, i + 2) } return this } Buffer.prototype.swap64 = function swap64 () { var len = this.length if (len % 8 !== 0) { throw new RangeError('Buffer size must be a multiple of 64-bits') } for (var i = 0; i < len; i += 8) { swap(this, i, i + 7) swap(this, i + 1, i + 6) swap(this, i + 2, i + 5) swap(this, i + 3, i + 4) } return this } Buffer.prototype.toString = function toString () { var length = this.length | 0 if (length === 0) return '' if (arguments.length === 0) return utf8Slice(this, 0, length) return slowToString.apply(this, arguments) } Buffer.prototype.equals = function equals (b) { if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') if (this === b) return true return Buffer.compare(this, b) === 0 } Buffer.prototype.inspect = function inspect () { var str = '' var max = exports.INSPECT_MAX_BYTES if (this.length > 0) { str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') if (this.length > max) str += ' ... ' } return '' } Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { if (!Buffer.isBuffer(target)) { throw new TypeError('Argument must be a Buffer') } if (start === undefined) { start = 0 } if (end === undefined) { end = target ? target.length : 0 } if (thisStart === undefined) { thisStart = 0 } if (thisEnd === undefined) { thisEnd = this.length } if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { throw new RangeError('out of range index') } if (thisStart >= thisEnd && start >= end) { return 0 } if (thisStart >= thisEnd) { return -1 } if (start >= end) { return 1 } start >>>= 0 end >>>= 0 thisStart >>>= 0 thisEnd >>>= 0 if (this === target) return 0 var x = thisEnd - thisStart var y = end - start var len = Math.min(x, y) var thisCopy = this.slice(thisStart, thisEnd) var targetCopy = target.slice(start, end) for (var i = 0; i < len; ++i) { if (thisCopy[i] !== targetCopy[i]) { x = thisCopy[i] y = targetCopy[i] break } } if (x < y) return -1 if (y < x) return 1 return 0 } // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, // OR the last index of `val` in `buffer` at offset <= `byteOffset`. // // Arguments: // - buffer - a Buffer to search // - val - a string, Buffer, or number // - byteOffset - an index into `buffer`; will be clamped to an int32 // - encoding - an optional encoding, relevant is val is a string // - dir - true for indexOf, false for lastIndexOf function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { // Empty buffer means no match if (buffer.length === 0) return -1 // Normalize byteOffset if (typeof byteOffset === 'string') { encoding = byteOffset byteOffset = 0 } else if (byteOffset > 0x7fffffff) { byteOffset = 0x7fffffff } else if (byteOffset < -0x80000000) { byteOffset = -0x80000000 } byteOffset = +byteOffset // Coerce to Number. if (isNaN(byteOffset)) { // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer byteOffset = dir ? 0 : (buffer.length - 1) } // Normalize byteOffset: negative offsets start from the end of the buffer if (byteOffset < 0) byteOffset = buffer.length + byteOffset if (byteOffset >= buffer.length) { if (dir) return -1 else byteOffset = buffer.length - 1 } else if (byteOffset < 0) { if (dir) byteOffset = 0 else return -1 } // Normalize val if (typeof val === 'string') { val = Buffer.from(val, encoding) } // Finally, search either indexOf (if dir is true) or lastIndexOf if (Buffer.isBuffer(val)) { // Special case: looking for empty string/buffer always fails if (val.length === 0) { return -1 } return arrayIndexOf(buffer, val, byteOffset, encoding, dir) } else if (typeof val === 'number') { val = val & 0xFF // Search for a byte value [0-255] if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') { if (dir) { return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) } else { return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) } } return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) } throw new TypeError('val must be string, number or Buffer') } function arrayIndexOf (arr, val, byteOffset, encoding, dir) { var indexSize = 1 var arrLength = arr.length var valLength = val.length if (encoding !== undefined) { encoding = String(encoding).toLowerCase() if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { if (arr.length < 2 || val.length < 2) { return -1 } indexSize = 2 arrLength /= 2 valLength /= 2 byteOffset /= 2 } } function read (buf, i) { if (indexSize === 1) { return buf[i] } else { return buf.readUInt16BE(i * indexSize) } } var i if (dir) { var foundIndex = -1 for (i = byteOffset; i < arrLength; i++) { if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { if (foundIndex === -1) foundIndex = i if (i - foundIndex + 1 === valLength) return foundIndex * indexSize } else { if (foundIndex !== -1) i -= i - foundIndex foundIndex = -1 } } } else { if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength for (i = byteOffset; i >= 0; i--) { var found = true for (var j = 0; j < valLength; j++) { if (read(arr, i + j) !== read(val, j)) { found = false break } } if (found) return i } } return -1 } Buffer.prototype.includes = function includes (val, byteOffset, encoding) { return this.indexOf(val, byteOffset, encoding) !== -1 } Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, true) } Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { return bidirectionalIndexOf(this, val, byteOffset, encoding, false) } function hexWrite (buf, string, offset, length) { offset = Number(offset) || 0 var remaining = buf.length - offset if (!length) { length = remaining } else { length = Number(length) if (length > remaining) { length = remaining } } // must be an even number of digits var strLen = string.length if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') if (length > strLen / 2) { length = strLen / 2 } for (var i = 0; i < length; ++i) { var parsed = parseInt(string.substr(i * 2, 2), 16) if (isNaN(parsed)) return i buf[offset + i] = parsed } return i } function utf8Write (buf, string, offset, length) { return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } function asciiWrite (buf, string, offset, length) { return blitBuffer(asciiToBytes(string), buf, offset, length) } function latin1Write (buf, string, offset, length) { return asciiWrite(buf, string, offset, length) } function base64Write (buf, string, offset, length) { return blitBuffer(base64ToBytes(string), buf, offset, length) } function ucs2Write (buf, string, offset, length) { return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } Buffer.prototype.write = function write (string, offset, length, encoding) { // Buffer#write(string) if (offset === undefined) { encoding = 'utf8' length = this.length offset = 0 // Buffer#write(string, encoding) } else if (length === undefined && typeof offset === 'string') { encoding = offset length = this.length offset = 0 // Buffer#write(string, offset[, length][, encoding]) } else if (isFinite(offset)) { offset = offset | 0 if (isFinite(length)) { length = length | 0 if (encoding === undefined) encoding = 'utf8' } else { encoding = length length = undefined } // legacy write(string, encoding, offset, length) - remove in v0.13 } else { throw new Error( 'Buffer.write(string, encoding, offset[, length]) is no longer supported' ) } var remaining = this.length - offset if (length === undefined || length > remaining) length = remaining if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { throw new RangeError('Attempt to write outside buffer bounds') } if (!encoding) encoding = 'utf8' var loweredCase = false for (;;) { switch (encoding) { case 'hex': return hexWrite(this, string, offset, length) case 'utf8': case 'utf-8': return utf8Write(this, string, offset, length) case 'ascii': return asciiWrite(this, string, offset, length) case 'latin1': case 'binary': return latin1Write(this, string, offset, length) case 'base64': // Warning: maxLength not taken into account in base64Write return base64Write(this, string, offset, length) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return ucs2Write(this, string, offset, length) default: if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) encoding = ('' + encoding).toLowerCase() loweredCase = true } } } Buffer.prototype.toJSON = function toJSON () { return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } } function base64Slice (buf, start, end) { if (start === 0 && end === buf.length) { return base64.fromByteArray(buf) } else { return base64.fromByteArray(buf.slice(start, end)) } } function utf8Slice (buf, start, end) { end = Math.min(buf.length, end) var res = [] var i = start while (i < end) { var firstByte = buf[i] var codePoint = null var bytesPerSequence = (firstByte > 0xEF) ? 4 : (firstByte > 0xDF) ? 3 : (firstByte > 0xBF) ? 2 : 1 if (i + bytesPerSequence <= end) { var secondByte, thirdByte, fourthByte, tempCodePoint switch (bytesPerSequence) { case 1: if (firstByte < 0x80) { codePoint = firstByte } break case 2: secondByte = buf[i + 1] if ((secondByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) if (tempCodePoint > 0x7F) { codePoint = tempCodePoint } } break case 3: secondByte = buf[i + 1] thirdByte = buf[i + 2] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { codePoint = tempCodePoint } } break case 4: secondByte = buf[i + 1] thirdByte = buf[i + 2] fourthByte = buf[i + 3] if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { codePoint = tempCodePoint } } } } if (codePoint === null) { // we did not generate a valid codePoint so insert a // replacement char (U+FFFD) and advance only 1 byte codePoint = 0xFFFD bytesPerSequence = 1 } else if (codePoint > 0xFFFF) { // encode to utf16 (surrogate pair dance) codePoint -= 0x10000 res.push(codePoint >>> 10 & 0x3FF | 0xD800) codePoint = 0xDC00 | codePoint & 0x3FF } res.push(codePoint) i += bytesPerSequence } return decodeCodePointsArray(res) } // Based on http://stackoverflow.com/a/22747272/680742, the browser with // the lowest limit is Chrome, with 0x10000 args. // We go 1 magnitude less, for safety var MAX_ARGUMENTS_LENGTH = 0x1000 function decodeCodePointsArray (codePoints) { var len = codePoints.length if (len <= MAX_ARGUMENTS_LENGTH) { return String.fromCharCode.apply(String, codePoints) // avoid extra slice() } // Decode in chunks to avoid "call stack size exceeded". var res = '' var i = 0 while (i < len) { res += String.fromCharCode.apply( String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) ) } return res } function asciiSlice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i] & 0x7F) } return ret } function latin1Slice (buf, start, end) { var ret = '' end = Math.min(buf.length, end) for (var i = start; i < end; ++i) { ret += String.fromCharCode(buf[i]) } return ret } function hexSlice (buf, start, end) { var len = buf.length if (!start || start < 0) start = 0 if (!end || end < 0 || end > len) end = len var out = '' for (var i = start; i < end; ++i) { out += toHex(buf[i]) } return out } function utf16leSlice (buf, start, end) { var bytes = buf.slice(start, end) var res = '' for (var i = 0; i < bytes.length; i += 2) { res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) } return res } Buffer.prototype.slice = function slice (start, end) { var len = this.length start = ~~start end = end === undefined ? len : ~~end if (start < 0) { start += len if (start < 0) start = 0 } else if (start > len) { start = len } if (end < 0) { end += len if (end < 0) end = 0 } else if (end > len) { end = len } if (end < start) end = start var newBuf if (Buffer.TYPED_ARRAY_SUPPORT) { newBuf = this.subarray(start, end) newBuf.__proto__ = Buffer.prototype } else { var sliceLen = end - start newBuf = new Buffer(sliceLen, undefined) for (var i = 0; i < sliceLen; ++i) { newBuf[i] = this[i + start] } } return newBuf } /* * Need to make sure that buffer isn't trying to write out of bounds. */ function checkOffset (offset, ext, length) { if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') } Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } return val } Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { checkOffset(offset, byteLength, this.length) } var val = this[offset + --byteLength] var mul = 1 while (byteLength > 0 && (mul *= 0x100)) { val += this[offset + --byteLength] * mul } return val } Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) return this[offset] } Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return this[offset] | (this[offset + 1] << 8) } Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) return (this[offset] << 8) | this[offset + 1] } Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ((this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + (this[offset + 3] * 0x1000000) } Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] * 0x1000000) + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) } Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var val = this[offset] var mul = 1 var i = 0 while (++i < byteLength && (mul *= 0x100)) { val += this[offset + i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) checkOffset(offset, byteLength, this.length) var i = byteLength var mul = 1 var val = this[offset + --i] while (i > 0 && (mul *= 0x100)) { val += this[offset + --i] * mul } mul *= 0x80 if (val >= mul) val -= Math.pow(2, 8 * byteLength) return val } Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { if (!noAssert) checkOffset(offset, 1, this.length) if (!(this[offset] & 0x80)) return (this[offset]) return ((0xff - this[offset] + 1) * -1) } Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset] | (this[offset + 1] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 2, this.length) var val = this[offset + 1] | (this[offset] << 8) return (val & 0x8000) ? val | 0xFFFF0000 : val } Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24) } Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | (this[offset + 3]) } Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, true, 23, 4) } Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 4, this.length) return ieee754.read(this, offset, false, 23, 4) } Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, true, 52, 8) } Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { if (!noAssert) checkOffset(offset, 8, this.length) return ieee754.read(this, offset, false, 52, 8) } function checkInt (buf, value, offset, ext, max, min) { if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') if (offset + ext > buf.length) throw new RangeError('Index out of range') } Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var mul = 1 var i = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 byteLength = byteLength | 0 if (!noAssert) { var maxBytes = Math.pow(2, 8 * byteLength) - 1 checkInt(this, value, offset, byteLength, maxBytes, 0) } var i = byteLength - 1 var mul = 1 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { this[offset + i] = (value / mul) & 0xFF } return offset + byteLength } Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) this[offset] = (value & 0xff) return offset + 1 } function objectWriteUInt16 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> (littleEndian ? i : 1 - i) * 8 } } Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } function objectWriteUInt32 (buf, value, offset, littleEndian) { if (value < 0) value = 0xffffffff + value + 1 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff } } Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset + 3] = (value >>> 24) this[offset + 2] = (value >>> 16) this[offset + 1] = (value >>> 8) this[offset] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = 0 var mul = 1 var sub = 0 this[offset] = value & 0xFF while (++i < byteLength && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { value = +value offset = offset | 0 if (!noAssert) { var limit = Math.pow(2, 8 * byteLength - 1) checkInt(this, value, offset, byteLength, limit - 1, -limit) } var i = byteLength - 1 var mul = 1 var sub = 0 this[offset + i] = value & 0xFF while (--i >= 0 && (mul *= 0x100)) { if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { sub = 1 } this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } return offset + byteLength } Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) if (value < 0) value = 0xff + value + 1 this[offset] = (value & 0xff) return offset + 1 } Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) } else { objectWriteUInt16(this, value, offset, true) } return offset + 2 } Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 8) this[offset + 1] = (value & 0xff) } else { objectWriteUInt16(this, value, offset, false) } return offset + 2 } Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value & 0xff) this[offset + 1] = (value >>> 8) this[offset + 2] = (value >>> 16) this[offset + 3] = (value >>> 24) } else { objectWriteUInt32(this, value, offset, true) } return offset + 4 } Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { value = +value offset = offset | 0 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) if (value < 0) value = 0xffffffff + value + 1 if (Buffer.TYPED_ARRAY_SUPPORT) { this[offset] = (value >>> 24) this[offset + 1] = (value >>> 16) this[offset + 2] = (value >>> 8) this[offset + 3] = (value & 0xff) } else { objectWriteUInt32(this, value, offset, false) } return offset + 4 } function checkIEEE754 (buf, value, offset, ext, max, min) { if (offset + ext > buf.length) throw new RangeError('Index out of range') if (offset < 0) throw new RangeError('Index out of range') } function writeFloat (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } ieee754.write(buf, value, offset, littleEndian, 23, 4) return offset + 4 } Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { return writeFloat(this, value, offset, true, noAssert) } Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { return writeFloat(this, value, offset, false, noAssert) } function writeDouble (buf, value, offset, littleEndian, noAssert) { if (!noAssert) { checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) } ieee754.write(buf, value, offset, littleEndian, 52, 8) return offset + 8 } Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { return writeDouble(this, value, offset, true, noAssert) } Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { return writeDouble(this, value, offset, false, noAssert) } // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) Buffer.prototype.copy = function copy (target, targetStart, start, end) { if (!start) start = 0 if (!end && end !== 0) end = this.length if (targetStart >= target.length) targetStart = target.length if (!targetStart) targetStart = 0 if (end > 0 && end < start) end = start // Copy 0 bytes; we're done if (end === start) return 0 if (target.length === 0 || this.length === 0) return 0 // Fatal error conditions if (targetStart < 0) { throw new RangeError('targetStart out of bounds') } if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') if (end < 0) throw new RangeError('sourceEnd out of bounds') // Are we oob? if (end > this.length) end = this.length if (target.length - targetStart < end - start) { end = target.length - targetStart + start } var len = end - start var i if (this === target && start < targetStart && targetStart < end) { // descending copy from end for (i = len - 1; i >= 0; --i) { target[i + targetStart] = this[i + start] } } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { // ascending copy from start for (i = 0; i < len; ++i) { target[i + targetStart] = this[i + start] } } else { Uint8Array.prototype.set.call( target, this.subarray(start, start + len), targetStart ) } return len } // Usage: // buffer.fill(number[, offset[, end]]) // buffer.fill(buffer[, offset[, end]]) // buffer.fill(string[, offset[, end]][, encoding]) Buffer.prototype.fill = function fill (val, start, end, encoding) { // Handle string cases: if (typeof val === 'string') { if (typeof start === 'string') { encoding = start start = 0 end = this.length } else if (typeof end === 'string') { encoding = end end = this.length } if (val.length === 1) { var code = val.charCodeAt(0) if (code < 256) { val = code } } if (encoding !== undefined && typeof encoding !== 'string') { throw new TypeError('encoding must be a string') } if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { throw new TypeError('Unknown encoding: ' + encoding) } } else if (typeof val === 'number') { val = val & 255 } // Invalid ranges are not set to a default, so can range check early. if (start < 0 || this.length < start || this.length < end) { throw new RangeError('Out of range index') } if (end <= start) { return this } start = start >>> 0 end = end === undefined ? this.length : end >>> 0 if (!val) val = 0 var i if (typeof val === 'number') { for (i = start; i < end; ++i) { this[i] = val } } else { var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()) var len = bytes.length for (i = 0; i < end - start; ++i) { this[i + start] = bytes[i % len] } } return this } // HELPER FUNCTIONS // ================ var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g function base64clean (str) { // Node strips out invalid characters like \n and \t from the string, base64-js does not str = stringtrim(str).replace(INVALID_BASE64_RE, '') // Node converts strings with length < 2 to '' if (str.length < 2) return '' // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not while (str.length % 4 !== 0) { str = str + '=' } return str } function stringtrim (str) { if (str.trim) return str.trim() return str.replace(/^\s+|\s+$/g, '') } function toHex (n) { if (n < 16) return '0' + n.toString(16) return n.toString(16) } function utf8ToBytes (string, units) { units = units || Infinity var codePoint var length = string.length var leadSurrogate = null var bytes = [] for (var i = 0; i < length; ++i) { codePoint = string.charCodeAt(i) // is surrogate component if (codePoint > 0xD7FF && codePoint < 0xE000) { // last char was a lead if (!leadSurrogate) { // no lead yet if (codePoint > 0xDBFF) { // unexpected trail if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } else if (i + 1 === length) { // unpaired lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) continue } // valid lead leadSurrogate = codePoint continue } // 2 leads in a row if (codePoint < 0xDC00) { if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) leadSurrogate = codePoint continue } // valid surrogate pair codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 } else if (leadSurrogate) { // valid bmp char, but last char was a lead if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) } leadSurrogate = null // encode utf8 if (codePoint < 0x80) { if ((units -= 1) < 0) break bytes.push(codePoint) } else if (codePoint < 0x800) { if ((units -= 2) < 0) break bytes.push( codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x10000) { if ((units -= 3) < 0) break bytes.push( codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else if (codePoint < 0x110000) { if ((units -= 4) < 0) break bytes.push( codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80 ) } else { throw new Error('Invalid code point') } } return bytes } function asciiToBytes (str) { var byteArray = [] for (var i = 0; i < str.length; ++i) { // Node's code seems to be doing this and not & 0x7F.. byteArray.push(str.charCodeAt(i) & 0xFF) } return byteArray } function utf16leToBytes (str, units) { var c, hi, lo var byteArray = [] for (var i = 0; i < str.length; ++i) { if ((units -= 2) < 0) break c = str.charCodeAt(i) hi = c >> 8 lo = c % 256 byteArray.push(lo) byteArray.push(hi) } return byteArray } function base64ToBytes (str) { return base64.toByteArray(base64clean(str)) } function blitBuffer (src, dst, offset, length) { for (var i = 0; i < length; ++i) { if ((i + offset >= dst.length) || (i >= src.length)) break dst[i + offset] = src[i] } return i } function isnan (val) { return val !== val // eslint-disable-line no-self-compare } /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }), /* 195 */ /***/ (function(module, exports) { 'use strict' exports.byteLength = byteLength exports.toByteArray = toByteArray exports.fromByteArray = fromByteArray var lookup = [] var revLookup = [] var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i] revLookup[code.charCodeAt(i)] = i } // Support decoding URL-safe base64 strings, as Node.js does. // See: https://en.wikipedia.org/wiki/Base64#URL_applications revLookup['-'.charCodeAt(0)] = 62 revLookup['_'.charCodeAt(0)] = 63 function getLens (b64) { var len = b64.length if (len % 4 > 0) { throw new Error('Invalid string. Length must be a multiple of 4') } // Trim off extra bytes after placeholder bytes are found // See: https://github.com/beatgammit/base64-js/issues/42 var validLen = b64.indexOf('=') if (validLen === -1) validLen = len var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4) return [validLen, placeHoldersLen] } // base64 is 4/3 + up to two characters of the original data function byteLength (b64) { var lens = getLens(b64) var validLen = lens[0] var placeHoldersLen = lens[1] return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen } function _byteLength (b64, validLen, placeHoldersLen) { return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen } function toByteArray (b64) { var tmp var lens = getLens(b64) var validLen = lens[0] var placeHoldersLen = lens[1] var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) var curByte = 0 // if there are placeholders, only get up to the last complete 4 chars var len = placeHoldersLen > 0 ? validLen - 4 : validLen for (var i = 0; i < len; i += 4) { tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] arr[curByte++] = (tmp >> 16) & 0xFF arr[curByte++] = (tmp >> 8) & 0xFF arr[curByte++] = tmp & 0xFF } if (placeHoldersLen === 2) { tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) arr[curByte++] = tmp & 0xFF } if (placeHoldersLen === 1) { tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) arr[curByte++] = (tmp >> 8) & 0xFF arr[curByte++] = tmp & 0xFF } return arr } function tripletToBase64 (num) { return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] } function encodeChunk (uint8, start, end) { var tmp var output = [] for (var i = start; i < end; i += 3) { tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF) output.push(tripletToBase64(tmp)) } return output.join('') } function fromByteArray (uint8) { var tmp var len = uint8.length var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes var parts = [] var maxChunkLength = 16383 // must be multiple of 3 // go through the array every three bytes, we'll deal with trailing stuff later for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { parts.push(encodeChunk( uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) )) } // pad the end with zeros, but make sure to not forget the extra bytes if (extraBytes === 1) { tmp = uint8[len - 1] parts.push( lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3F] + '==' ) } else if (extraBytes === 2) { tmp = (uint8[len - 2] << 8) + uint8[len - 1] parts.push( lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3F] + lookup[(tmp << 2) & 0x3F] + '=' ) } return parts.join('') } /***/ }), /* 196 */ /***/ (function(module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = (nBytes * 8) - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var nBits = -7 var i = isLE ? (nBytes - 1) : 0 var d = isLE ? -1 : 1 var s = buffer[offset + i] i += d e = s & ((1 << (-nBits)) - 1) s >>= (-nBits) nBits += eLen for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} m = e & ((1 << (-nBits)) - 1) e >>= (-nBits) nBits += mLen for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} if (e === 0) { e = 1 - eBias } else if (e === eMax) { return m ? NaN : ((s ? -1 : 1) * Infinity) } else { m = m + Math.pow(2, mLen) e = e - eBias } return (s ? -1 : 1) * m * Math.pow(2, e - mLen) } exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { var e, m, c var eLen = (nBytes * 8) - mLen - 1 var eMax = (1 << eLen) - 1 var eBias = eMax >> 1 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) var i = isLE ? 0 : (nBytes - 1) var d = isLE ? 1 : -1 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 value = Math.abs(value) if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0 e = eMax } else { e = Math.floor(Math.log(value) / Math.LN2) if (value * (c = Math.pow(2, -e)) < 1) { e-- c *= 2 } if (e + eBias >= 1) { value += rt / c } else { value += rt * Math.pow(2, 1 - eBias) } if (value * c >= 2) { e++ c /= 2 } if (e + eBias >= eMax) { m = 0 e = eMax } else if (e + eBias >= 1) { m = ((value * c) - 1) * Math.pow(2, mLen) e = e + eBias } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) e = 0 } } for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} e = (e << mLen) | m eLen += mLen for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} buffer[offset + i - d] |= s * 128 } /***/ }), /* 197 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { /* * This file is used by module bundlers (browserify/webpack/etc) when * including a stream implementation. We use "readable-stream" to get a * consistent behavior between nodejs versions but bundlers often have a shim * for "stream". Using this shim greatly improve the compatibility and greatly * reduce the final size of the bundle (only one stream implementation, not * two). */ module.exports = __webpack_require__(199); /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. module.exports = Stream; var EE = __webpack_require__(200).EventEmitter; var inherits = __webpack_require__(201); inherits(Stream, EE); Stream.Readable = __webpack_require__(202); Stream.Writable = __webpack_require__(220); Stream.Duplex = __webpack_require__(221); Stream.Transform = __webpack_require__(222); Stream.PassThrough = __webpack_require__(223); // Backwards-compat with node 0.4.x Stream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant // part of this class) is overridden in the Readable class. function Stream() { EE.call(this); } Stream.prototype.pipe = function(dest, options) { var source = this; function ondata(chunk) { if (dest.writable) { if (false === dest.write(chunk) && source.pause) { source.pause(); } } } source.on('data', ondata); function ondrain() { if (source.readable && source.resume) { source.resume(); } } dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when // source gets the 'end' or 'close' events. Only dest.end() once. if (!dest._isStdio && (!options || options.end !== false)) { source.on('end', onend); source.on('close', onclose); } var didOnEnd = false; function onend() { if (didOnEnd) return; didOnEnd = true; dest.end(); } function onclose() { if (didOnEnd) return; didOnEnd = true; if (typeof dest.destroy === 'function') dest.destroy(); } // don't leave dangling pipes when there are errors. function onerror(er) { cleanup(); if (EE.listenerCount(this, 'error') === 0) { throw er; // Unhandled stream error in pipe. } } source.on('error', onerror); dest.on('error', onerror); // remove all the event listeners that were added. function cleanup() { source.removeListener('data', ondata); dest.removeListener('drain', ondrain); source.removeListener('end', onend); source.removeListener('close', onclose); source.removeListener('error', onerror); dest.removeListener('error', onerror); source.removeListener('end', cleanup); source.removeListener('close', cleanup); dest.removeListener('close', cleanup); } source.on('end', cleanup); source.on('close', cleanup); dest.on('close', cleanup); dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C) return dest; }; /***/ }), /* 200 */ /***/ (function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } module.exports = EventEmitter; // Backwards-compat with node 0.10.x EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = undefined; EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are // added to it. This is a useful default which helps finding memory leaks. EventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows // that to be increased. Set to zero for unlimited. EventEmitter.prototype.setMaxListeners = function(n) { if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError('n must be a positive number'); this._maxListeners = n; return this; }; EventEmitter.prototype.emit = function(type) { var er, handler, len, args, i, listeners; if (!this._events) this._events = {}; // If there is no 'error' event listener then throw. if (type === 'error') { if (!this._events.error || (isObject(this._events.error) && !this._events.error.length)) { er = arguments[1]; if (er instanceof Error) { throw er; // Unhandled 'error' event } else { // At least give some kind of context to the user var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); err.context = er; throw err; } } } handler = this._events[type]; if (isUndefined(handler)) return false; if (isFunction(handler)) { switch (arguments.length) { // fast cases case 1: handler.call(this); break; case 2: handler.call(this, arguments[1]); break; case 3: handler.call(this, arguments[1], arguments[2]); break; // slower default: args = Array.prototype.slice.call(arguments, 1); handler.apply(this, args); } } else if (isObject(handler)) { args = Array.prototype.slice.call(arguments, 1); listeners = handler.slice(); len = listeners.length; for (i = 0; i < len; i++) listeners[i].apply(this, args); } return true; }; EventEmitter.prototype.addListener = function(type, listener) { var m; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events) this._events = {}; // To avoid recursion in the case that type === "newListener"! Before // adding it to the listeners, first emit "newListener". if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener); if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object. this._events[type] = listener; else if (isObject(this._events[type])) // If we've already got an array, just append. this._events[type].push(listener); else // Adding the second element, need to change to array. this._events[type] = [this._events[type], listener]; // Check for listener leak if (isObject(this._events[type]) && !this._events[type].warned) { if (!isUndefined(this._maxListeners)) { m = this._maxListeners; } else { m = EventEmitter.defaultMaxListeners; } if (m && m > 0 && this._events[type].length > m) { this._events[type].warned = true; console.error('(node) warning: possible EventEmitter memory ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length); if (typeof console.trace === 'function') { // not supported in IE 10 console.trace(); } } } return this; }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.once = function(type, listener) { if (!isFunction(listener)) throw TypeError('listener must be a function'); var fired = false; function g() { this.removeListener(type, g); if (!fired) { fired = true; listener.apply(this, arguments); } } g.listener = listener; this.on(type, g); return this; }; // emits a 'removeListener' event iff the listener was removed EventEmitter.prototype.removeListener = function(type, listener) { var list, position, length, i; if (!isFunction(listener)) throw TypeError('listener must be a function'); if (!this._events || !this._events[type]) return this; list = this._events[type]; length = list.length; position = -1; if (list === listener || (isFunction(list.listener) && list.listener === listener)) { delete this._events[type]; if (this._events.removeListener) this.emit('removeListener', type, listener); } else if (isObject(list)) { for (i = length; i-- > 0;) { if (list[i] === listener || (list[i].listener && list[i].listener === listener)) { position = i; break; } } if (position < 0) return this; if (list.length === 1) { list.length = 0; delete this._events[type]; } else { list.splice(position, 1); } if (this._events.removeListener) this.emit('removeListener', type, listener); } return this; }; EventEmitter.prototype.removeAllListeners = function(type) { var key, listeners; if (!this._events) return this; // not listening for removeListener, no need to emit if (!this._events.removeListener) { if (arguments.length === 0) this._events = {}; else if (this._events[type]) delete this._events[type]; return this; } // emit removeListener for all listeners on all events if (arguments.length === 0) { for (key in this._events) { if (key === 'removeListener') continue; this.removeAllListeners(key); } this.removeAllListeners('removeListener'); this._events = {}; return this; } listeners = this._events[type]; if (isFunction(listeners)) { this.removeListener(type, listeners); } else if (listeners) { // LIFO order while (listeners.length) this.removeListener(type, listeners[listeners.length - 1]); } delete this._events[type]; return this; }; EventEmitter.prototype.listeners = function(type) { var ret; if (!this._events || !this._events[type]) ret = []; else if (isFunction(this._events[type])) ret = [this._events[type]]; else ret = this._events[type].slice(); return ret; }; EventEmitter.prototype.listenerCount = function(type) { if (this._events) { var evlistener = this._events[type]; if (isFunction(evlistener)) return 1; else if (evlistener) return evlistener.length; } return 0; }; EventEmitter.listenerCount = function(emitter, type) { return emitter.listenerCount(type); }; function isFunction(arg) { return typeof arg === 'function'; } function isNumber(arg) { return typeof arg === 'number'; } function isObject(arg) { return typeof arg === 'object' && arg !== null; } function isUndefined(arg) { return arg === void 0; } /***/ }), /* 201 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }); }; } else { // old school shim for old browsers module.exports = function inherits(ctor, superCtor) { ctor.super_ = superCtor var TempCtor = function () {} TempCtor.prototype = superCtor.prototype ctor.prototype = new TempCtor() ctor.prototype.constructor = ctor } } /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(203); exports.Stream = exports; exports.Readable = exports; exports.Writable = __webpack_require__(213); exports.Duplex = __webpack_require__(212); exports.Transform = __webpack_require__(218); exports.PassThrough = __webpack_require__(219); /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; /**/ var pna = __webpack_require__(204); /**/ module.exports = Readable; /**/ var isArray = __webpack_require__(197); /**/ /**/ var Duplex; /**/ Readable.ReadableState = ReadableState; /**/ var EE = __webpack_require__(200).EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ var Stream = __webpack_require__(205); /**/ /**/ var Buffer = __webpack_require__(206).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ /**/ var util = __webpack_require__(207); util.inherits = __webpack_require__(201); /**/ /**/ var debugUtil = __webpack_require__(208); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { debug = function () {}; } /**/ var BufferList = __webpack_require__(209); var destroyImpl = __webpack_require__(211); var StringDecoder; util.inherits(Readable, Stream); var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } function ReadableState(options, stream) { Duplex = Duplex || __webpack_require__(212); options = options || {}; // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. var isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away this.objectMode = !!options.objectMode; if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" var hwm = options.highWaterMark; var readableHwm = options.readableHighWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() this.buffer = new BufferList(); this.length = 0; this.pipes = null; this.pipesCount = 0; this.flowing = null; this.ended = false; this.endEmitted = false; this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; // has it been destroyed this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; if (options.encoding) { if (!StringDecoder) StringDecoder = __webpack_require__(217).StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { Duplex = Duplex || __webpack_require__(212); if (!(this instanceof Readable)) return new Readable(options); this._readableState = new ReadableState(options, this); // legacy this.readable = true; if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } Stream.call(this); } Object.defineProperty(Readable.prototype, 'destroyed', { get: function () { if (this._readableState === undefined) { return false; } return this._readableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._readableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; Readable.prototype._destroy = function (err, cb) { this.push(null); cb(err); }; // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } skipChunkCheck = true; } } else { skipChunkCheck = true; } return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { var state = stream._readableState; if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); if (er) { stream.emit('error', er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } if (addToFront) { if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); } else if (state.ended) { stream.emit('error', new Error('stream.push() after EOF')); } else { state.reading = false; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); } else { addChunk(stream, state, chunk, false); } } } else if (!addToFront) { state.reading = false; } } return needMoreData(state); } function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { stream.emit('data', chunk); stream.read(0); } else { // update the buffer info. state.length += state.objectMode ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } maybeReadMore(stream, state); } function chunkInvalid(state, chunk) { var er; if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new TypeError('Invalid non-string/buffer chunk'); } return er; } // if it's past the high water mark, we can push in some more. // Also, if we have no data yet, we can stand some // more bytes. This is to work around cases where hwm=0, // such as the repl. Also, if the push() triggered a // readable event, and the user called read(largeNumber) such that // needReadable was set, then we ought to push more, so that another // 'readable' event will be triggered. function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); } Readable.prototype.isPaused = function () { return this._readableState.flowing === false; }; // backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = __webpack_require__(217).StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; }; // Don't raise the hwm > 8MB var MAX_HWM = 0x800000; function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { n = MAX_HWM; } else { // Get the next highest power of 2 to prevent increasing hwm excessively in // tiny amounts n--; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; n++; } return n; } // This function is designed to be inlinable, so please take care when making // changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; } // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); if (n <= state.length) return n; // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } return state.length; } // you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; } // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change // the state of the read buffer, providing enough data when // before there was *not* enough. // // So, the steps are: // 1. Figure out what the state of things will be after we do // a read from the buffer. // // 2. If that resulting state will trigger a _read, then call _read. // Note that this may be asynchronous, or synchronous. Yes, it is // deeply ugly to write APIs this way, but that still doesn't mean // that the Readable class should behave improperly, as streams are // designed to be sync/async agnostic. // Take note if the _read call is sync or async (ie, if the read call // has returned yet), so that we know whether or not it's safe to emit // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); } // however, if we've ended, then there's no point, and if we're already // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; state.sync = true; // if the length is currently zero, then we *need* a readable event. if (state.length === 0) state.needReadable = true; // call internal read method this._read(state.highWaterMark); state.sync = false; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. if (!state.reading) n = howMuchToRead(nOrig, state); } var ret; if (n > 0) ret = fromList(n, state);else ret = null; if (ret === null) { state.needReadable = true; n = 0; } else { state.length -= n; } if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } if (ret !== null) this.emit('data', ret); return ret; }; function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { var chunk = state.decoder.end(); if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } state.ended = true; // emit 'readable' now to make sure it gets picked up. emitReadable(stream); } // Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. function emitReadable(stream) { var state = stream._readableState; state.needReadable = false; if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); } } function emitReadable_(stream) { debug('emit readable'); stream.emit('readable'); flow(stream); } // at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; pna.nextTick(maybeReadMore_, stream, state); } } function maybeReadMore_(stream, state) { var len = state.length; while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { debug('maybeReadMore read 0'); stream.read(0); if (len === state.length) // didn't get any data, stop spinning. break;else len = state.length; } state.readingMore = false; } // abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. Readable.prototype._read = function (n) { this.emit('error', new Error('_read() is not implemented')); }; Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; switch (state.pipesCount) { case 0: state.pipes = dest; break; case 1: state.pipes = [state.pipes, dest]; break; default: state.pipes.push(dest); break; } state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); function onunpipe(readable, unpipeInfo) { debug('onunpipe'); if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; cleanup(); } } } function onend() { debug('onend'); dest.end(); } // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; function cleanup() { debug('cleanup'); // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); dest.removeListener('error', onerror); dest.removeListener('unpipe', onunpipe); src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); cleanedUp = true; // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } // If the user pushes more data while we're writing to dest then we'll end up // in ondata again. However, we only want to increase awaitDrain once because // dest will only emit one 'drain' event for the multiple writes. // => Introduce a guard on increasing awaitDrain. var increasedAwaitDrain = false; src.on('data', ondata); function ondata(chunk) { debug('ondata'); increasedAwaitDrain = false; var ret = dest.write(chunk); if (false === ret && !increasedAwaitDrain) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write // also returned false. // => Check whether `dest` is still a piping destination. if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { debug('false write response, pause', src._readableState.awaitDrain); src._readableState.awaitDrain++; increasedAwaitDrain = true; } src.pause(); } } // if the dest has an error, then stop piping into it. // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); } // Make sure our error handler is attached before userland ones. prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } dest.once('close', onclose); function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } dest.once('finish', onfinish); function unpipe() { debug('unpipe'); src.unpipe(dest); } // tell the dest that it's being piped to dest.emit('pipe', src); // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } return dest; }; function pipeOnDrain(src) { return function () { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; if (!dest) dest = state.pipes; // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; } // slow case. multiple pipe destinations. if (!dest) { // remove all. var dests = state.pipes; var len = state.pipesCount; state.pipes = null; state.pipesCount = 0; state.flowing = false; for (var i = 0; i < len; i++) { dests[i].emit('unpipe', this, unpipeInfo); }return this; } // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; }; // set up data events if they are asked for // Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); if (ev === 'data') { // Start flowing on next tick if stream isn't explicitly paused if (this._readableState.flowing !== false) this.resume(); } else if (ev === 'readable') { var state = this._readableState; if (!state.endEmitted && !state.readableListening) { state.readableListening = state.needReadable = true; state.emittedReadable = false; if (!state.reading) { pna.nextTick(nReadingNextTick, this); } else if (state.length) { emitReadable(this); } } } return res; }; Readable.prototype.addListener = Readable.prototype.on; function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); } // pause() and resume() are remnants of the legacy readable stream API // If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; if (!state.flowing) { debug('resume'); state.flowing = true; resume(this, state); } return this; }; function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; pna.nextTick(resume_, stream, state); } } function resume_(stream, state) { if (!state.reading) { debug('resume read 0'); stream.read(0); } state.resumeScheduled = false; state.awaitDrain = 0; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); if (false !== this._readableState.flowing) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } return this; }; function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); while (state.flowing && stream.read() !== null) {} } // wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. Readable.prototype.wrap = function (stream) { var _this = this; var state = this._readableState; var paused = false; stream.on('end', function () { debug('wrapped end'); if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) _this.push(chunk); } _this.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; var ret = _this.push(chunk); if (!ret) { paused = true; stream.pause(); } }); // proxy all the other methods. // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function (method) { return function () { return stream[method].apply(stream, arguments); }; }(i); } } // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); } // when we try to consume some more bytes, simply unpause the // underlying stream. this._read = function (n) { debug('wrapped _read', n); if (paused) { paused = false; stream.resume(); } }; return this; }; Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function () { return this._readableState.highWaterMark; } }); // exposed for testing purposes only. Readable._fromList = fromList; // Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromList(n, state) { // nothing buffered if (state.length === 0) return null; var ret; if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { // read it all, truncate the list if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); state.buffer.clear(); } else { // read part of list ret = fromListPartial(n, state.buffer, state.decoder); } return ret; } // Extracts only enough buffered data to satisfy the amount requested. // This function is designed to be inlinable, so please take care when making // changes to the function body. function fromListPartial(n, list, hasStrings) { var ret; if (n < list.head.data.length) { // slice is the same for buffers and strings ret = list.head.data.slice(0, n); list.head.data = list.head.data.slice(n); } else if (n === list.head.data.length) { // first chunk is a perfect match ret = list.shift(); } else { // result spans more than one buffer ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); } return ret; } // Copies a specified amount of characters from the list of buffered data // chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBufferString(n, list) { var p = list.head; var c = 1; var ret = p.data; n -= ret.length; while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; if (n === 0) { if (nb === str.length) { ++c; if (p.next) list.head = p.next;else list.head = list.tail = null; } else { list.head = p; p.data = str.slice(nb); } break; } ++c; } list.length -= c; return ret; } // Copies a specified amount of bytes from the list of buffered data chunks. // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBuffer(n, list) { var ret = Buffer.allocUnsafe(n); var p = list.head; var c = 1; p.data.copy(ret); n -= p.data.length; while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; if (n === 0) { if (nb === buf.length) { ++c; if (p.next) list.head = p.next;else list.head = list.tail = null; } else { list.head = p; p.data = buf.slice(nb); } break; } ++c; } list.length -= c; return ret; } function endReadable(stream) { var state = stream._readableState; // If we get here before consuming all the bytes, then that is a // bug in node. Should never happen. if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); if (!state.endEmitted) { state.ended = true; pna.nextTick(endReadableNT, state, stream); } } function endReadableNT(state, stream) { // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); } } function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } return -1; } /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(175))) /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; if (!process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { module.exports = { nextTick: nextTick }; } else { module.exports = process } function nextTick(fn, arg1, arg2, arg3) { if (typeof fn !== 'function') { throw new TypeError('"callback" argument must be a function'); } var len = arguments.length; var args, i; switch (len) { case 0: case 1: return process.nextTick(fn); case 2: return process.nextTick(function afterTickOne() { fn.call(null, arg1); }); case 3: return process.nextTick(function afterTickTwo() { fn.call(null, arg1, arg2); }); case 4: return process.nextTick(function afterTickThree() { fn.call(null, arg1, arg2, arg3); }); default: args = new Array(len - 1); i = 0; while (i < args.length) { args[i++] = arguments[i]; } return process.nextTick(function afterTick() { fn.apply(null, args); }); } } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(175))) /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(200).EventEmitter; /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable node/no-deprecated-api */ var buffer = __webpack_require__(194) var Buffer = buffer.Buffer // alternative to using Object.keys for old browsers function copyProps (src, dst) { for (var key in src) { dst[key] = src[key] } } if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { module.exports = buffer } else { // Copy properties from require('buffer') copyProps(buffer, exports) exports.Buffer = SafeBuffer } function SafeBuffer (arg, encodingOrOffset, length) { return Buffer(arg, encodingOrOffset, length) } // Copy static methods from Buffer copyProps(Buffer, SafeBuffer) SafeBuffer.from = function (arg, encodingOrOffset, length) { if (typeof arg === 'number') { throw new TypeError('Argument must not be a number') } return Buffer(arg, encodingOrOffset, length) } SafeBuffer.alloc = function (size, fill, encoding) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } var buf = Buffer(size) if (fill !== undefined) { if (typeof encoding === 'string') { buf.fill(fill, encoding) } else { buf.fill(fill) } } else { buf.fill(0) } return buf } SafeBuffer.allocUnsafe = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return Buffer(size) } SafeBuffer.allocUnsafeSlow = function (size) { if (typeof size !== 'number') { throw new TypeError('Argument must be a number') } return buffer.SlowBuffer(size) } /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // NOTE: These type checking functions intentionally don't use `instanceof` // because it is fragile and can be easily faked with `Object.create()`. function isArray(arg) { if (Array.isArray) { return Array.isArray(arg); } return objectToString(arg) === '[object Array]'; } exports.isArray = isArray; function isBoolean(arg) { return typeof arg === 'boolean'; } exports.isBoolean = isBoolean; function isNull(arg) { return arg === null; } exports.isNull = isNull; function isNullOrUndefined(arg) { return arg == null; } exports.isNullOrUndefined = isNullOrUndefined; function isNumber(arg) { return typeof arg === 'number'; } exports.isNumber = isNumber; function isString(arg) { return typeof arg === 'string'; } exports.isString = isString; function isSymbol(arg) { return typeof arg === 'symbol'; } exports.isSymbol = isSymbol; function isUndefined(arg) { return arg === void 0; } exports.isUndefined = isUndefined; function isRegExp(re) { return objectToString(re) === '[object RegExp]'; } exports.isRegExp = isRegExp; function isObject(arg) { return typeof arg === 'object' && arg !== null; } exports.isObject = isObject; function isDate(d) { return objectToString(d) === '[object Date]'; } exports.isDate = isDate; function isError(e) { return (objectToString(e) === '[object Error]' || e instanceof Error); } exports.isError = isError; function isFunction(arg) { return typeof arg === 'function'; } exports.isFunction = isFunction; function isPrimitive(arg) { return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol typeof arg === 'undefined'; } exports.isPrimitive = isPrimitive; exports.isBuffer = Buffer.isBuffer; function objectToString(o) { return Object.prototype.toString.call(o); } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(194).Buffer)) /***/ }), /* 208 */ /***/ (function(module, exports) { /* (ignored) */ /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Buffer = __webpack_require__(206).Buffer; var util = __webpack_require__(210); function copyBuffer(src, target, offset) { src.copy(target, offset); } module.exports = function () { function BufferList() { _classCallCheck(this, BufferList); this.head = null; this.tail = null; this.length = 0; } BufferList.prototype.push = function push(v) { var entry = { data: v, next: null }; if (this.length > 0) this.tail.next = entry;else this.head = entry; this.tail = entry; ++this.length; }; BufferList.prototype.unshift = function unshift(v) { var entry = { data: v, next: this.head }; if (this.length === 0) this.tail = entry; this.head = entry; ++this.length; }; BufferList.prototype.shift = function shift() { if (this.length === 0) return; var ret = this.head.data; if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; --this.length; return ret; }; BufferList.prototype.clear = function clear() { this.head = this.tail = null; this.length = 0; }; BufferList.prototype.join = function join(s) { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; while (p = p.next) { ret += s + p.data; }return ret; }; BufferList.prototype.concat = function concat(n) { if (this.length === 0) return Buffer.alloc(0); if (this.length === 1) return this.head.data; var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } return ret; }; return BufferList; }(); if (util && util.inspect && util.inspect.custom) { module.exports.prototype[util.inspect.custom] = function () { var obj = util.inspect({ length: this.length }); return this.constructor.name + ' ' + obj; }; } /***/ }), /* 210 */ /***/ (function(module, exports) { /* (ignored) */ /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; /**/ var pna = __webpack_require__(204); /**/ // undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { pna.nextTick(emitErrorNT, this, err); } return this; } // we set destroyed to true before firing error callbacks in order // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; } // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } this._destroy(err || null, function (err) { if (!cb && err) { pna.nextTick(emitErrorNT, _this, err); if (_this._writableState) { _this._writableState.errorEmitted = true; } } else if (cb) { cb(err); } }); return this; } function undestroy() { if (this._readableState) { this._readableState.destroyed = false; this._readableState.reading = false; this._readableState.ended = false; this._readableState.endEmitted = false; } if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; this._writableState.ending = false; this._writableState.finished = false; this._writableState.errorEmitted = false; } } function emitErrorNT(self, err) { self.emit('error', err); } module.exports = { destroy: destroy, undestroy: undestroy }; /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. 'use strict'; /**/ var pna = __webpack_require__(204); /**/ /**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { keys.push(key); }return keys; }; /**/ module.exports = Duplex; /**/ var util = __webpack_require__(207); util.inherits = __webpack_require__(201); /**/ var Readable = __webpack_require__(203); var Writable = __webpack_require__(213); util.inherits(Duplex, Readable); { // avoid scope creep, the keys array can then be collected var keys = objectKeys(Writable.prototype); for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); if (options && options.readable === false) this.readable = false; if (options && options.writable === false) this.writable = false; this.allowHalfOpen = true; if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; this.once('end', onend); } Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function () { return this._writableState.highWaterMark; } }); // the no-half-open enforcer function onend() { // if we allow half-open state, or if the writable side ended, // then we're ok. if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written. // But allow more writes to happen in this tick. pna.nextTick(onEndNT, this); } function onEndNT(self) { self.end(); } Object.defineProperty(Duplex.prototype, 'destroyed', { get: function () { if (this._readableState === undefined || this._writableState === undefined) { return false; } return this._readableState.destroyed && this._writableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; } // backward compatibility, the user is explicitly // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } }); Duplex.prototype._destroy = function (err, cb) { this.push(null); this.end(); pna.nextTick(cb, err); }; /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to permit // persons to whom the Software is furnished to do so, subject to the // following conditions: // // The above copyright notice and this permission notice shall be included // in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. 'use strict'; /**/ var pna = __webpack_require__(204); /**/ module.exports = Writable; /* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; } // It seems a linked list but it is not // there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; this.next = null; this.entry = null; this.finish = function () { onCorkedFinish(_this, state); }; } /* */ /**/ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; /**/ /**/ var Duplex; /**/ Writable.WritableState = WritableState; /**/ var util = __webpack_require__(207); util.inherits = __webpack_require__(201); /**/ /**/ var internalUtil = { deprecate: __webpack_require__(216) }; /**/ /**/ var Stream = __webpack_require__(205); /**/ /**/ var Buffer = __webpack_require__(206).Buffer; var OurUint8Array = global.Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } /**/ var destroyImpl = __webpack_require__(211); util.inherits(Writable, Stream); function nop() {} function WritableState(options, stream) { Duplex = Duplex || __webpack_require__(212); options = options || {}; // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. var isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream // contains buffers or objects. this.objectMode = !!options.objectMode; if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() var hwm = options.highWaterMark; var writableHwm = options.writableHighWaterMark; var defaultHwm = this.objectMode ? 16 : 16 * 1024; if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints. this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called this.finalCalled = false; // drain event flag. this.needDrain = false; // at the start of calling end() this.ending = false; // when end() has been called, and returned this.ended = false; // when 'finish' is emitted this.finished = false; // has it been destroyed this.destroyed = false; // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. var noDecode = options.decodeStrings === false; this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. this.length = 0; // a flag to see when we're in the middle of a write. this.writing = false; // when true all writes will be buffered until .uncork() call this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. this.sync = true; // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); }; // the callback that the user supplies to write(chunk,encoding,cb) this.writecb = null; // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; this.lastBufferedRequest = null; // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams this.prefinished = false; // True if the error was already emitted and should not be thrown again this.errorEmitted = false; // count buffered requests this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two this.corkedRequestsFree = new CorkedRequest(this); } WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; while (current) { out.push(current); current = current.next; } return out; }; (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function () { return this.getBuffer(); }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} })(); // Test _writableState for inheritance to account for Duplex streams, // whose prototype chain only points to Readable. var realHasInstance; if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { value: function (object) { if (realHasInstance.call(this, object)) return true; if (this !== Writable) return false; return object && object._writableState instanceof WritableState; } }); } else { realHasInstance = function (object) { return object instanceof this; }; } function Writable(options) { Duplex = Duplex || __webpack_require__(212); // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { return new Writable(options); } this._writableState = new WritableState(options, this); // legacy. this.writable = true; if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); } // Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { this.emit('error', new Error('Cannot pipe, not readable')); }; function writeAfterEnd(stream, cb) { var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb stream.emit('error', er); pna.nextTick(cb, er); } // Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. function validChunk(stream, state, chunk, cb) { var valid = true; var er = false; if (chunk === null) { er = new TypeError('May not write null values to stream'); } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new TypeError('Invalid non-string/buffer chunk'); } if (er) { stream.emit('error', er); pna.nextTick(cb, er); valid = false; } return valid; } Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; var isBuf = !state.objectMode && _isUint8Array(chunk); if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); } return ret; }; Writable.prototype.cork = function () { var state = this._writableState; state.corked++; }; Writable.prototype.uncork = function () { var state = this._writableState; if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); this._writableState.defaultEncoding = encoding; return this; }; function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } return chunk; } Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function () { return this._writableState.highWaterMark; } }); // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } var len = state.objectMode ? 1 : chunk.length; state.length += len; var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { chunk: chunk, encoding: encoding, isBuf: isBuf, callback: cb, next: null }; if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } return ret; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; state.writing = true; state.sync = true; if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack pna.nextTick(cb, er); // this can emit finish, and it will always happen // after error pna.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; stream.emit('error', er); } else { // the caller expect this to happen before if // it is async cb(er); stream._writableState.errorEmitted = true; stream.emit('error', er); // this can emit finish, but finish must // always follow error finishMaybe(stream, state); } } function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; var cb = state.writecb; onwriteStateUpdate(state); if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state); if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } if (sync) { /**/ asyncWrite(afterWrite, stream, state, finished, cb); /**/ } else { afterWrite(stream, state, finished, cb); } } } function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); } // Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } } // if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; var buffer = new Array(l); var holder = state.corkedRequestsFree; holder.entry = entry; var count = 0; var allBuffers = true; while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one while (entry) { var chunk = entry.chunk; var encoding = entry.encoding; var cb = entry.callback; var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. if (state.writing) { break; } } if (entry === null) state.lastBufferedRequest = null; } state.bufferedRequest = entry; state.bufferProcessing = false; } Writable.prototype._write = function (chunk, encoding, cb) { cb(new Error('_write() is not implemented')); }; Writable.prototype._writev = null; Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; if (typeof chunk === 'function') { cb = chunk; chunk = null; encoding = null; } else if (typeof encoding === 'function') { cb = encoding; encoding = null; } if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); } // ignore unnecessary end() calls. if (!state.ending && !state.finished) endWritable(this, state, cb); }; function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; if (err) { stream.emit('error', err); } state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function') { state.pendingcb++; state.finalCalled = true; pna.nextTick(callFinal, stream, state); } else { state.prefinished = true; stream.emit('prefinish'); } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { prefinish(stream, state); if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); } } return need; } function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); if (cb) { if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); } state.ended = true; stream.writable = false; } function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; } if (state.corkedRequestsFree) { state.corkedRequestsFree.next = corkReq; } else { state.corkedRequestsFree = corkReq; } } Object.defineProperty(Writable.prototype, 'destroyed', { get: function () { if (this._writableState === undefined) { return false; } return this._writableState.destroyed; }, set: function (value) { // we ignore the value if the stream // has not been initialized yet if (!this._writableState) { return; } // backward compatibility, the user is explicitly // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function (err, cb) { this.end(); cb(err); }; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(175), __webpack_require__(214).setImmediate, (function() { return this; }()))) /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) || (typeof self !== "undefined" && self) || window; var apply = Function.prototype.apply; // DOM APIs, for completeness exports.setTimeout = function() { return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout); }; exports.setInterval = function() { return new Timeout(apply.call(setInterval, scope, arguments), clearInterval); }; exports.clearTimeout = exports.clearInterval = function(timeout) { if (timeout) { timeout.close(); } }; function Timeout(id, clearFn) { this._id = id; this._clearFn = clearFn; } Timeout.prototype.unref = Timeout.prototype.ref = function() {}; Timeout.prototype.close = function() { this._clearFn.call(scope, this._id); }; // Does not start the time, just sets up the members needed. exports.enroll = function(item, msecs) { clearTimeout(item._idleTimeoutId); item._idleTimeout = msecs; }; exports.unenroll = function(item) { clearTimeout(item._idleTimeoutId); item._idleTimeout = -1; }; exports._unrefActive = exports.active = function(item) { clearTimeout(item._idleTimeoutId); var msecs = item._idleTimeout; if (msecs >= 0) { item._idleTimeoutId = setTimeout(function onTimeout() { if (item._onTimeout) item._onTimeout(); }, msecs); } }; // setimmediate attaches itself to the global object __webpack_require__(215); // On some exotic environments, it's not clear which object `setimmediate` was // able to install onto. Search each possibility in the same order as the // `setimmediate` library. exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) || (typeof global !== "undefined" && global.setImmediate) || (this && this.setImmediate); exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || (typeof global !== "undefined" && global.clearImmediate) || (this && this.clearImmediate); /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { "use strict"; if (global.setImmediate) { return; } var nextHandle = 1; // Spec says greater than zero var tasksByHandle = {}; var currentlyRunningATask = false; var doc = global.document; var registerImmediate; function setImmediate(callback) { // Callback can either be a function or a string if (typeof callback !== "function") { callback = new Function("" + callback); } // Copy function arguments var args = new Array(arguments.length - 1); for (var i = 0; i < args.length; i++) { args[i] = arguments[i + 1]; } // Store and register the task var task = { callback: callback, args: args }; tasksByHandle[nextHandle] = task; registerImmediate(nextHandle); return nextHandle++; } function clearImmediate(handle) { delete tasksByHandle[handle]; } function run(task) { var callback = task.callback; var args = task.args; switch (args.length) { case 0: callback(); break; case 1: callback(args[0]); break; case 2: callback(args[0], args[1]); break; case 3: callback(args[0], args[1], args[2]); break; default: callback.apply(undefined, args); break; } } function runIfPresent(handle) { // From the spec: "Wait until any invocations of this algorithm started before this one have completed." // So if we're currently running a task, we'll need to delay this invocation. if (currentlyRunningATask) { // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a // "too much recursion" error. setTimeout(runIfPresent, 0, handle); } else { var task = tasksByHandle[handle]; if (task) { currentlyRunningATask = true; try { run(task); } finally { clearImmediate(handle); currentlyRunningATask = false; } } } } function installNextTickImplementation() { registerImmediate = function(handle) { process.nextTick(function () { runIfPresent(handle); }); }; } function canUsePostMessage() { // The test against `importScripts` prevents this implementation from being installed inside a web worker, // where `global.postMessage` means something completely different and can't be used for this purpose. if (global.postMessage && !global.importScripts) { var postMessageIsAsynchronous = true; var oldOnMessage = global.onmessage; global.onmessage = function() { postMessageIsAsynchronous = false; }; global.postMessage("", "*"); global.onmessage = oldOnMessage; return postMessageIsAsynchronous; } } function installPostMessageImplementation() { // Installs an event handler on `global` for the `message` event: see // * https://developer.mozilla.org/en/DOM/window.postMessage // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages var messagePrefix = "setImmediate$" + Math.random() + "$"; var onGlobalMessage = function(event) { if (event.source === global && typeof event.data === "string" && event.data.indexOf(messagePrefix) === 0) { runIfPresent(+event.data.slice(messagePrefix.length)); } }; if (global.addEventListener) { global.addEventListener("message", onGlobalMessage, false); } else { global.attachEvent("onmessage", onGlobalMessage); } registerImmediate = function(handle) { global.postMessage(messagePrefix + handle, "*"); }; } function installMessageChannelImplementation() { var channel = new MessageChannel(); channel.port1.onmessage = function(event) { var handle = event.data; runIfPresent(handle); }; registerImmediate = function(handle) { channel.port2.postMessage(handle); }; } function installReadyStateChangeImplementation() { var html = doc.documentElement; registerImmediate = function(handle) { // Create a