apg-js-examples
Version:
Examples of using the suite of apg-js applications and libraries.
557 lines (549 loc) • 396 kB
JavaScript
// copyright: Copyright (c) 2024 Lowell D. Thomas, all rights reserved<br>
// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)<br>
//
// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)
module.exports = function grammar(){
// ```
// SUMMARY
// rules = 446
// udts = 0
// opcodes = 3299
// --- ABNF original opcodes
// ALT = 212
// CAT = 528
// REP = 310
// RNM = 1593
// TLS = 554
// TBS = 94
// TRG = 8
// --- SABNF superset opcodes
// UDT = 0
// AND = 0
// NOT = 0
// BKA = 0
// BKN = 0
// BKR = 0
// ABG = 0
// AEN = 0
// characters = [9 - 255]
// ```
/* OBJECT IDENTIFIER (for internal parser use) */
this.grammarObject = 'grammarObject';
/* RULES */
this.rules = [];
this.rules[0] = { name: 'dummyStartRule', lower: 'dummystartrule', index: 0, isBkr: false };
this.rules[1] = { name: 'odataUri', lower: 'odatauri', index: 1, isBkr: false };
this.rules[2] = { name: 'serviceRoot', lower: 'serviceroot', index: 2, isBkr: false };
this.rules[3] = { name: 'odataRelativeUri', lower: 'odatarelativeuri', index: 3, isBkr: false };
this.rules[4] = { name: 'resourcePath', lower: 'resourcepath', index: 4, isBkr: false };
this.rules[5] = { name: 'collectionNavigation', lower: 'collectionnavigation', index: 5, isBkr: false };
this.rules[6] = { name: 'collectionNavPath', lower: 'collectionnavpath', index: 6, isBkr: false };
this.rules[7] = { name: 'keyPredicate', lower: 'keypredicate', index: 7, isBkr: false };
this.rules[8] = { name: 'simpleKey', lower: 'simplekey', index: 8, isBkr: false };
this.rules[9] = { name: 'compoundKey', lower: 'compoundkey', index: 9, isBkr: false };
this.rules[10] = { name: 'keyValuePair', lower: 'keyvaluepair', index: 10, isBkr: false };
this.rules[11] = { name: 'keyPropertyValue', lower: 'keypropertyvalue', index: 11, isBkr: false };
this.rules[12] = { name: 'keyPropertyAlias', lower: 'keypropertyalias', index: 12, isBkr: false };
this.rules[13] = { name: 'keyPathSegments', lower: 'keypathsegments', index: 13, isBkr: false };
this.rules[14] = { name: 'keyPathLiteral', lower: 'keypathliteral', index: 14, isBkr: false };
this.rules[15] = { name: 'singleNavigation', lower: 'singlenavigation', index: 15, isBkr: false };
this.rules[16] = { name: 'singleNavPath', lower: 'singlenavpath', index: 16, isBkr: false };
this.rules[17] = { name: 'propertyPath', lower: 'propertypath', index: 17, isBkr: false };
this.rules[18] = { name: 'collectionPath', lower: 'collectionpath', index: 18, isBkr: false };
this.rules[19] = { name: 'primitivePath', lower: 'primitivepath', index: 19, isBkr: false };
this.rules[20] = { name: 'complexColPath', lower: 'complexcolpath', index: 20, isBkr: false };
this.rules[21] = { name: 'complexPath', lower: 'complexpath', index: 21, isBkr: false };
this.rules[22] = { name: 'complexNavPath', lower: 'complexnavpath', index: 22, isBkr: false };
this.rules[23] = { name: 'filterInPath', lower: 'filterinpath', index: 23, isBkr: false };
this.rules[24] = { name: 'each', lower: 'each', index: 24, isBkr: false };
this.rules[25] = { name: 'count', lower: 'count', index: 25, isBkr: false };
this.rules[26] = { name: 'ref', lower: 'ref', index: 26, isBkr: false };
this.rules[27] = { name: 'value', lower: 'value', index: 27, isBkr: false };
this.rules[28] = { name: 'querySegment', lower: 'querysegment', index: 28, isBkr: false };
this.rules[29] = { name: 'ordinalIndex', lower: 'ordinalindex', index: 29, isBkr: false };
this.rules[30] = { name: 'boundOperation', lower: 'boundoperation', index: 30, isBkr: false };
this.rules[31] = { name: 'actionImportCall', lower: 'actionimportcall', index: 31, isBkr: false };
this.rules[32] = { name: 'boundActionCall', lower: 'boundactioncall', index: 32, isBkr: false };
this.rules[33] = { name: 'boundEntityFunctionCall', lower: 'boundentityfunctioncall', index: 33, isBkr: false };
this.rules[34] = { name: 'boundEntityColFunctionCall', lower: 'boundentitycolfunctioncall', index: 34, isBkr: false };
this.rules[35] = { name: 'boundComplexFunctionCall', lower: 'boundcomplexfunctioncall', index: 35, isBkr: false };
this.rules[36] = { name: 'boundComplexColFunctionCall', lower: 'boundcomplexcolfunctioncall', index: 36, isBkr: false };
this.rules[37] = { name: 'boundPrimitiveFunctionCall', lower: 'boundprimitivefunctioncall', index: 37, isBkr: false };
this.rules[38] = { name: 'boundPrimitiveColFunctionCall', lower: 'boundprimitivecolfunctioncall', index: 38, isBkr: false };
this.rules[39] = { name: 'boundFunctionCallNoParens', lower: 'boundfunctioncallnoparens', index: 39, isBkr: false };
this.rules[40] = { name: 'entityFunctionImportCall', lower: 'entityfunctionimportcall', index: 40, isBkr: false };
this.rules[41] = { name: 'entityColFunctionImportCall', lower: 'entitycolfunctionimportcall', index: 41, isBkr: false };
this.rules[42] = { name: 'complexFunctionImportCall', lower: 'complexfunctionimportcall', index: 42, isBkr: false };
this.rules[43] = { name: 'complexColFunctionImportCall', lower: 'complexcolfunctionimportcall', index: 43, isBkr: false };
this.rules[44] = { name: 'primitiveFunctionImportCall', lower: 'primitivefunctionimportcall', index: 44, isBkr: false };
this.rules[45] = { name: 'primitiveColFunctionImportCall', lower: 'primitivecolfunctionimportcall', index: 45, isBkr: false };
this.rules[46] = { name: 'functionImportCallNoParens', lower: 'functionimportcallnoparens', index: 46, isBkr: false };
this.rules[47] = { name: 'functionParameters', lower: 'functionparameters', index: 47, isBkr: false };
this.rules[48] = { name: 'functionParameter', lower: 'functionparameter', index: 48, isBkr: false };
this.rules[49] = { name: 'parameterName', lower: 'parametername', index: 49, isBkr: false };
this.rules[50] = { name: 'parameterAlias', lower: 'parameteralias', index: 50, isBkr: false };
this.rules[51] = { name: 'crossjoin', lower: 'crossjoin', index: 51, isBkr: false };
this.rules[52] = { name: 'queryOptions', lower: 'queryoptions', index: 52, isBkr: false };
this.rules[53] = { name: 'queryOption', lower: 'queryoption', index: 53, isBkr: false };
this.rules[54] = { name: 'batchOptions', lower: 'batchoptions', index: 54, isBkr: false };
this.rules[55] = { name: 'batchOption', lower: 'batchoption', index: 55, isBkr: false };
this.rules[56] = { name: 'metadataOptions', lower: 'metadataoptions', index: 56, isBkr: false };
this.rules[57] = { name: 'metadataOption', lower: 'metadataoption', index: 57, isBkr: false };
this.rules[58] = { name: 'entityOptions', lower: 'entityoptions', index: 58, isBkr: false };
this.rules[59] = { name: 'entityIdOption', lower: 'entityidoption', index: 59, isBkr: false };
this.rules[60] = { name: 'entityCastOptions', lower: 'entitycastoptions', index: 60, isBkr: false };
this.rules[61] = { name: 'entityCastOption', lower: 'entitycastoption', index: 61, isBkr: false };
this.rules[62] = { name: 'id', lower: 'id', index: 62, isBkr: false };
this.rules[63] = { name: 'systemQueryOption', lower: 'systemqueryoption', index: 63, isBkr: false };
this.rules[64] = { name: 'compute', lower: 'compute', index: 64, isBkr: false };
this.rules[65] = { name: 'computeItem', lower: 'computeitem', index: 65, isBkr: false };
this.rules[66] = { name: 'computedProperty', lower: 'computedproperty', index: 66, isBkr: false };
this.rules[67] = { name: 'expand', lower: 'expand', index: 67, isBkr: false };
this.rules[68] = { name: 'expandItem', lower: 'expanditem', index: 68, isBkr: false };
this.rules[69] = { name: 'expandPath', lower: 'expandpath', index: 69, isBkr: false };
this.rules[70] = { name: 'expandCountOption', lower: 'expandcountoption', index: 70, isBkr: false };
this.rules[71] = { name: 'expandRefOption', lower: 'expandrefoption', index: 71, isBkr: false };
this.rules[72] = { name: 'expandOption', lower: 'expandoption', index: 72, isBkr: false };
this.rules[73] = { name: 'levels', lower: 'levels', index: 73, isBkr: false };
this.rules[74] = { name: 'filter', lower: 'filter', index: 74, isBkr: false };
this.rules[75] = { name: 'orderby', lower: 'orderby', index: 75, isBkr: false };
this.rules[76] = { name: 'orderbyItem', lower: 'orderbyitem', index: 76, isBkr: false };
this.rules[77] = { name: 'skip', lower: 'skip', index: 77, isBkr: false };
this.rules[78] = { name: 'top', lower: 'top', index: 78, isBkr: false };
this.rules[79] = { name: 'index', lower: 'index', index: 79, isBkr: false };
this.rules[80] = { name: 'format', lower: 'format', index: 80, isBkr: false };
this.rules[81] = { name: 'inlinecount', lower: 'inlinecount', index: 81, isBkr: false };
this.rules[82] = { name: 'schemaversion', lower: 'schemaversion', index: 82, isBkr: false };
this.rules[83] = { name: 'search', lower: 'search', index: 83, isBkr: false };
this.rules[84] = { name: 'searchExpr', lower: 'searchexpr', index: 84, isBkr: false };
this.rules[85] = { name: 'searchParenExpr', lower: 'searchparenexpr', index: 85, isBkr: false };
this.rules[86] = { name: 'searchNegateExpr', lower: 'searchnegateexpr', index: 86, isBkr: false };
this.rules[87] = { name: 'searchOrExpr', lower: 'searchorexpr', index: 87, isBkr: false };
this.rules[88] = { name: 'searchAndExpr', lower: 'searchandexpr', index: 88, isBkr: false };
this.rules[89] = { name: 'searchPhrase', lower: 'searchphrase', index: 89, isBkr: false };
this.rules[90] = { name: 'searchWord', lower: 'searchword', index: 90, isBkr: false };
this.rules[91] = { name: 'searchChar', lower: 'searchchar', index: 91, isBkr: false };
this.rules[92] = { name: 'searchExpr-incomplete', lower: 'searchexpr-incomplete', index: 92, isBkr: false };
this.rules[93] = { name: 'select', lower: 'select', index: 93, isBkr: false };
this.rules[94] = { name: 'selectItem', lower: 'selectitem', index: 94, isBkr: false };
this.rules[95] = { name: 'selectProperty', lower: 'selectproperty', index: 95, isBkr: false };
this.rules[96] = { name: 'selectPath', lower: 'selectpath', index: 96, isBkr: false };
this.rules[97] = { name: 'selectOptionPC', lower: 'selectoptionpc', index: 97, isBkr: false };
this.rules[98] = { name: 'selectOption', lower: 'selectoption', index: 98, isBkr: false };
this.rules[99] = { name: 'allOperationsInSchema', lower: 'alloperationsinschema', index: 99, isBkr: false };
this.rules[100] = { name: 'optionallyQualifiedActionName', lower: 'optionallyqualifiedactionname', index: 100, isBkr: false };
this.rules[101] = { name: 'optionallyQualifiedFunctionName', lower: 'optionallyqualifiedfunctionname', index: 101, isBkr: false };
this.rules[102] = { name: 'parameterNames', lower: 'parameternames', index: 102, isBkr: false };
this.rules[103] = { name: 'deltatoken', lower: 'deltatoken', index: 103, isBkr: false };
this.rules[104] = { name: 'skiptoken', lower: 'skiptoken', index: 104, isBkr: false };
this.rules[105] = { name: 'aliasAndValue', lower: 'aliasandvalue', index: 105, isBkr: false };
this.rules[106] = { name: 'nameAndValue', lower: 'nameandvalue', index: 106, isBkr: false };
this.rules[107] = { name: 'parameterValue', lower: 'parametervalue', index: 107, isBkr: false };
this.rules[108] = { name: 'customQueryOption', lower: 'customqueryoption', index: 108, isBkr: false };
this.rules[109] = { name: 'customName', lower: 'customname', index: 109, isBkr: false };
this.rules[110] = { name: 'customValue', lower: 'customvalue', index: 110, isBkr: false };
this.rules[111] = { name: 'complexAnnotationInQuery', lower: 'complexannotationinquery', index: 111, isBkr: false };
this.rules[112] = { name: 'entityAnnotationInQuery', lower: 'entityannotationinquery', index: 112, isBkr: false };
this.rules[113] = { name: 'primitiveAnnotationInQuery', lower: 'primitiveannotationinquery', index: 113, isBkr: false };
this.rules[114] = { name: 'primitiveColAnnotationInQuery', lower: 'primitivecolannotationinquery', index: 114, isBkr: false };
this.rules[115] = { name: 'context', lower: 'context', index: 115, isBkr: false };
this.rules[116] = { name: 'contextFragment', lower: 'contextfragment', index: 116, isBkr: false };
this.rules[117] = { name: 'entitySet', lower: 'entityset', index: 117, isBkr: false };
this.rules[118] = { name: 'containmentNavigation', lower: 'containmentnavigation', index: 118, isBkr: false };
this.rules[119] = { name: 'navigation', lower: 'navigation', index: 119, isBkr: false };
this.rules[120] = { name: 'selectList', lower: 'selectlist', index: 120, isBkr: false };
this.rules[121] = { name: 'selectListItem', lower: 'selectlistitem', index: 121, isBkr: false };
this.rules[122] = { name: 'selectListProperty', lower: 'selectlistproperty', index: 122, isBkr: false };
this.rules[123] = { name: 'contextPropertyPath', lower: 'contextpropertypath', index: 123, isBkr: false };
this.rules[124] = { name: 'qualifiedActionName', lower: 'qualifiedactionname', index: 124, isBkr: false };
this.rules[125] = { name: 'qualifiedFunctionName', lower: 'qualifiedfunctionname', index: 125, isBkr: false };
this.rules[126] = { name: 'complexAnnotationInFragment', lower: 'complexannotationinfragment', index: 126, isBkr: false };
this.rules[127] = { name: 'entityAnnotationInFragment', lower: 'entityannotationinfragment', index: 127, isBkr: false };
this.rules[128] = { name: 'commonExpr', lower: 'commonexpr', index: 128, isBkr: false };
this.rules[129] = { name: 'boolCommonExpr', lower: 'boolcommonexpr', index: 129, isBkr: false };
this.rules[130] = { name: 'rootExpr', lower: 'rootexpr', index: 130, isBkr: false };
this.rules[131] = { name: 'firstMemberExpr', lower: 'firstmemberexpr', index: 131, isBkr: false };
this.rules[132] = { name: 'memberExpr', lower: 'memberexpr', index: 132, isBkr: false };
this.rules[133] = { name: 'directMemberExpr', lower: 'directmemberexpr', index: 133, isBkr: false };
this.rules[134] = { name: 'propertyPathExpr', lower: 'propertypathexpr', index: 134, isBkr: false };
this.rules[135] = { name: 'annotationExpr', lower: 'annotationexpr', index: 135, isBkr: false };
this.rules[136] = { name: 'annotationInQuery', lower: 'annotationinquery', index: 136, isBkr: false };
this.rules[137] = { name: 'annotationInFragment', lower: 'annotationinfragment', index: 137, isBkr: false };
this.rules[138] = { name: 'annotationQualifier', lower: 'annotationqualifier', index: 138, isBkr: false };
this.rules[139] = { name: 'inscopeVariableExpr', lower: 'inscopevariableexpr', index: 139, isBkr: false };
this.rules[140] = { name: 'implicitVariableExpr', lower: 'implicitvariableexpr', index: 140, isBkr: false };
this.rules[141] = { name: 'lambdaVariableExpr', lower: 'lambdavariableexpr', index: 141, isBkr: false };
this.rules[142] = { name: 'collectionNavigationExpr', lower: 'collectionnavigationexpr', index: 142, isBkr: false };
this.rules[143] = { name: 'singleNavigationExpr', lower: 'singlenavigationexpr', index: 143, isBkr: false };
this.rules[144] = { name: 'filterExpr', lower: 'filterexpr', index: 144, isBkr: false };
this.rules[145] = { name: 'complexColPathExpr', lower: 'complexcolpathexpr', index: 145, isBkr: false };
this.rules[146] = { name: 'collectionPathExpr', lower: 'collectionpathexpr', index: 146, isBkr: false };
this.rules[147] = { name: 'complexPathExpr', lower: 'complexpathexpr', index: 147, isBkr: false };
this.rules[148] = { name: 'primitivePathExpr', lower: 'primitivepathexpr', index: 148, isBkr: false };
this.rules[149] = { name: 'boundFunctionExpr', lower: 'boundfunctionexpr', index: 149, isBkr: false };
this.rules[150] = { name: 'functionExpr', lower: 'functionexpr', index: 150, isBkr: false };
this.rules[151] = { name: 'functionExprParameters', lower: 'functionexprparameters', index: 151, isBkr: false };
this.rules[152] = { name: 'functionExprParameter', lower: 'functionexprparameter', index: 152, isBkr: false };
this.rules[153] = { name: 'anyExpr', lower: 'anyexpr', index: 153, isBkr: false };
this.rules[154] = { name: 'allExpr', lower: 'allexpr', index: 154, isBkr: false };
this.rules[155] = { name: 'lambdaPredicateExpr', lower: 'lambdapredicateexpr', index: 155, isBkr: false };
this.rules[156] = { name: 'methodCallExpr', lower: 'methodcallexpr', index: 156, isBkr: false };
this.rules[157] = { name: 'boolMethodCallExpr', lower: 'boolmethodcallexpr', index: 157, isBkr: false };
this.rules[158] = { name: 'concatMethodCallExpr', lower: 'concatmethodcallexpr', index: 158, isBkr: false };
this.rules[159] = { name: 'containsMethodCallExpr', lower: 'containsmethodcallexpr', index: 159, isBkr: false };
this.rules[160] = { name: 'endsWithMethodCallExpr', lower: 'endswithmethodcallexpr', index: 160, isBkr: false };
this.rules[161] = { name: 'indexOfMethodCallExpr', lower: 'indexofmethodcallexpr', index: 161, isBkr: false };
this.rules[162] = { name: 'lengthMethodCallExpr', lower: 'lengthmethodcallexpr', index: 162, isBkr: false };
this.rules[163] = { name: 'matchesPatternMethodCallExpr', lower: 'matchespatternmethodcallexpr', index: 163, isBkr: false };
this.rules[164] = { name: 'startsWithMethodCallExpr', lower: 'startswithmethodcallexpr', index: 164, isBkr: false };
this.rules[165] = { name: 'substringMethodCallExpr', lower: 'substringmethodcallexpr', index: 165, isBkr: false };
this.rules[166] = { name: 'toLowerMethodCallExpr', lower: 'tolowermethodcallexpr', index: 166, isBkr: false };
this.rules[167] = { name: 'toUpperMethodCallExpr', lower: 'touppermethodcallexpr', index: 167, isBkr: false };
this.rules[168] = { name: 'trimMethodCallExpr', lower: 'trimmethodcallexpr', index: 168, isBkr: false };
this.rules[169] = { name: 'yearMethodCallExpr', lower: 'yearmethodcallexpr', index: 169, isBkr: false };
this.rules[170] = { name: 'monthMethodCallExpr', lower: 'monthmethodcallexpr', index: 170, isBkr: false };
this.rules[171] = { name: 'dayMethodCallExpr', lower: 'daymethodcallexpr', index: 171, isBkr: false };
this.rules[172] = { name: 'hourMethodCallExpr', lower: 'hourmethodcallexpr', index: 172, isBkr: false };
this.rules[173] = { name: 'minuteMethodCallExpr', lower: 'minutemethodcallexpr', index: 173, isBkr: false };
this.rules[174] = { name: 'secondMethodCallExpr', lower: 'secondmethodcallexpr', index: 174, isBkr: false };
this.rules[175] = { name: 'fractionalsecondsMethodCallExpr', lower: 'fractionalsecondsmethodcallexpr', index: 175, isBkr: false };
this.rules[176] = { name: 'totalsecondsMethodCallExpr', lower: 'totalsecondsmethodcallexpr', index: 176, isBkr: false };
this.rules[177] = { name: 'dateMethodCallExpr', lower: 'datemethodcallexpr', index: 177, isBkr: false };
this.rules[178] = { name: 'timeMethodCallExpr', lower: 'timemethodcallexpr', index: 178, isBkr: false };
this.rules[179] = { name: 'totalOffsetMinutesMethodCallExpr', lower: 'totaloffsetminutesmethodcallexpr', index: 179, isBkr: false };
this.rules[180] = { name: 'minDateTimeMethodCallExpr', lower: 'mindatetimemethodcallexpr', index: 180, isBkr: false };
this.rules[181] = { name: 'maxDateTimeMethodCallExpr', lower: 'maxdatetimemethodcallexpr', index: 181, isBkr: false };
this.rules[182] = { name: 'nowMethodCallExpr', lower: 'nowmethodcallexpr', index: 182, isBkr: false };
this.rules[183] = { name: 'roundMethodCallExpr', lower: 'roundmethodcallexpr', index: 183, isBkr: false };
this.rules[184] = { name: 'floorMethodCallExpr', lower: 'floormethodcallexpr', index: 184, isBkr: false };
this.rules[185] = { name: 'ceilingMethodCallExpr', lower: 'ceilingmethodcallexpr', index: 185, isBkr: false };
this.rules[186] = { name: 'distanceMethodCallExpr', lower: 'distancemethodcallexpr', index: 186, isBkr: false };
this.rules[187] = { name: 'geoLengthMethodCallExpr', lower: 'geolengthmethodcallexpr', index: 187, isBkr: false };
this.rules[188] = { name: 'intersectsMethodCallExpr', lower: 'intersectsmethodcallexpr', index: 188, isBkr: false };
this.rules[189] = { name: 'hasSubsetMethodCallExpr', lower: 'hassubsetmethodcallexpr', index: 189, isBkr: false };
this.rules[190] = { name: 'hasSubsequenceMethodCallExpr', lower: 'hassubsequencemethodcallexpr', index: 190, isBkr: false };
this.rules[191] = { name: 'caseMethodCallExpr', lower: 'casemethodcallexpr', index: 191, isBkr: false };
this.rules[192] = { name: 'parenExpr', lower: 'parenexpr', index: 192, isBkr: false };
this.rules[193] = { name: 'listExpr', lower: 'listexpr', index: 193, isBkr: false };
this.rules[194] = { name: 'andExpr', lower: 'andexpr', index: 194, isBkr: false };
this.rules[195] = { name: 'orExpr', lower: 'orexpr', index: 195, isBkr: false };
this.rules[196] = { name: 'eqExpr', lower: 'eqexpr', index: 196, isBkr: false };
this.rules[197] = { name: 'neExpr', lower: 'neexpr', index: 197, isBkr: false };
this.rules[198] = { name: 'ltExpr', lower: 'ltexpr', index: 198, isBkr: false };
this.rules[199] = { name: 'leExpr', lower: 'leexpr', index: 199, isBkr: false };
this.rules[200] = { name: 'gtExpr', lower: 'gtexpr', index: 200, isBkr: false };
this.rules[201] = { name: 'geExpr', lower: 'geexpr', index: 201, isBkr: false };
this.rules[202] = { name: 'inExpr', lower: 'inexpr', index: 202, isBkr: false };
this.rules[203] = { name: 'hasExpr', lower: 'hasexpr', index: 203, isBkr: false };
this.rules[204] = { name: 'addExpr', lower: 'addexpr', index: 204, isBkr: false };
this.rules[205] = { name: 'subExpr', lower: 'subexpr', index: 205, isBkr: false };
this.rules[206] = { name: 'mulExpr', lower: 'mulexpr', index: 206, isBkr: false };
this.rules[207] = { name: 'divExpr', lower: 'divexpr', index: 207, isBkr: false };
this.rules[208] = { name: 'divbyExpr', lower: 'divbyexpr', index: 208, isBkr: false };
this.rules[209] = { name: 'modExpr', lower: 'modexpr', index: 209, isBkr: false };
this.rules[210] = { name: 'negateExpr', lower: 'negateexpr', index: 210, isBkr: false };
this.rules[211] = { name: 'notExpr', lower: 'notexpr', index: 211, isBkr: false };
this.rules[212] = { name: 'isofExpr', lower: 'isofexpr', index: 212, isBkr: false };
this.rules[213] = { name: 'castExpr', lower: 'castexpr', index: 213, isBkr: false };
this.rules[214] = { name: 'arrayOrObject', lower: 'arrayorobject', index: 214, isBkr: false };
this.rules[215] = { name: 'array', lower: 'array', index: 215, isBkr: false };
this.rules[216] = { name: 'object', lower: 'object', index: 216, isBkr: false };
this.rules[217] = { name: 'member', lower: 'member', index: 217, isBkr: false };
this.rules[218] = { name: 'valueInUrl', lower: 'valueinurl', index: 218, isBkr: false };
this.rules[219] = { name: 'begin-object', lower: 'begin-object', index: 219, isBkr: false };
this.rules[220] = { name: 'end-object', lower: 'end-object', index: 220, isBkr: false };
this.rules[221] = { name: 'begin-array', lower: 'begin-array', index: 221, isBkr: false };
this.rules[222] = { name: 'end-array', lower: 'end-array', index: 222, isBkr: false };
this.rules[223] = { name: 'quotation-mark', lower: 'quotation-mark', index: 223, isBkr: false };
this.rules[224] = { name: 'name-separator', lower: 'name-separator', index: 224, isBkr: false };
this.rules[225] = { name: 'value-separator', lower: 'value-separator', index: 225, isBkr: false };
this.rules[226] = { name: 'stringInUrl', lower: 'stringinurl', index: 226, isBkr: false };
this.rules[227] = { name: 'charInJSON', lower: 'charinjson', index: 227, isBkr: false };
this.rules[228] = { name: 'qchar-JSON-special', lower: 'qchar-json-special', index: 228, isBkr: false };
this.rules[229] = { name: 'escape', lower: 'escape', index: 229, isBkr: false };
this.rules[230] = { name: 'qualifiedTypeName', lower: 'qualifiedtypename', index: 230, isBkr: false };
this.rules[231] = { name: 'optionallyQualifiedTypeName', lower: 'optionallyqualifiedtypename', index: 231, isBkr: false };
this.rules[232] = { name: 'singleQualifiedTypeName', lower: 'singlequalifiedtypename', index: 232, isBkr: false };
this.rules[233] = { name: 'singleTypeName', lower: 'singletypename', index: 233, isBkr: false };
this.rules[234] = { name: 'qualifiedEntityTypeName', lower: 'qualifiedentitytypename', index: 234, isBkr: false };
this.rules[235] = { name: 'qualifiedComplexTypeName', lower: 'qualifiedcomplextypename', index: 235, isBkr: false };
this.rules[236] = { name: 'qualifiedTypeDefinitionName', lower: 'qualifiedtypedefinitionname', index: 236, isBkr: false };
this.rules[237] = { name: 'qualifiedEnumTypeName', lower: 'qualifiedenumtypename', index: 237, isBkr: false };
this.rules[238] = { name: 'optionallyQualifiedEntityTypeName', lower: 'optionallyqualifiedentitytypename', index: 238, isBkr: false };
this.rules[239] = { name: 'optionallyQualifiedComplexTypeName', lower: 'optionallyqualifiedcomplextypename', index: 239, isBkr: false };
this.rules[240] = { name: 'namespace', lower: 'namespace', index: 240, isBkr: false };
this.rules[241] = { name: 'namespacePart', lower: 'namespacepart', index: 241, isBkr: false };
this.rules[242] = { name: 'entitySetName', lower: 'entitysetname', index: 242, isBkr: false };
this.rules[243] = { name: 'singletonEntity', lower: 'singletonentity', index: 243, isBkr: false };
this.rules[244] = { name: 'entityTypeName', lower: 'entitytypename', index: 244, isBkr: false };
this.rules[245] = { name: 'complexTypeName', lower: 'complextypename', index: 245, isBkr: false };
this.rules[246] = { name: 'typeDefinitionName', lower: 'typedefinitionname', index: 246, isBkr: false };
this.rules[247] = { name: 'enumerationTypeName', lower: 'enumerationtypename', index: 247, isBkr: false };
this.rules[248] = { name: 'enumerationMember', lower: 'enumerationmember', index: 248, isBkr: false };
this.rules[249] = { name: 'termName', lower: 'termname', index: 249, isBkr: false };
this.rules[250] = { name: 'odataIdentifier', lower: 'odataidentifier', index: 250, isBkr: false };
this.rules[251] = { name: 'identifierLeadingCharacter', lower: 'identifierleadingcharacter', index: 251, isBkr: false };
this.rules[252] = { name: 'identifierCharacter', lower: 'identifiercharacter', index: 252, isBkr: false };
this.rules[253] = { name: 'primitiveTypeName', lower: 'primitivetypename', index: 253, isBkr: false };
this.rules[254] = { name: 'abstractSpatialTypeName', lower: 'abstractspatialtypename', index: 254, isBkr: false };
this.rules[255] = { name: 'concreteSpatialTypeName', lower: 'concretespatialtypename', index: 255, isBkr: false };
this.rules[256] = { name: 'primitiveProperty', lower: 'primitiveproperty', index: 256, isBkr: false };
this.rules[257] = { name: 'primitiveKeyProperty', lower: 'primitivekeyproperty', index: 257, isBkr: false };
this.rules[258] = { name: 'primitiveNonKeyProperty', lower: 'primitivenonkeyproperty', index: 258, isBkr: false };
this.rules[259] = { name: 'primitiveColProperty', lower: 'primitivecolproperty', index: 259, isBkr: false };
this.rules[260] = { name: 'complexProperty', lower: 'complexproperty', index: 260, isBkr: false };
this.rules[261] = { name: 'complexColProperty', lower: 'complexcolproperty', index: 261, isBkr: false };
this.rules[262] = { name: 'streamProperty', lower: 'streamproperty', index: 262, isBkr: false };
this.rules[263] = { name: 'navigationProperty', lower: 'navigationproperty', index: 263, isBkr: false };
this.rules[264] = { name: 'entityNavigationProperty', lower: 'entitynavigationproperty', index: 264, isBkr: false };
this.rules[265] = { name: 'entityColNavigationProperty', lower: 'entitycolnavigationproperty', index: 265, isBkr: false };
this.rules[266] = { name: 'action', lower: 'action', index: 266, isBkr: false };
this.rules[267] = { name: 'actionImport', lower: 'actionimport', index: 267, isBkr: false };
this.rules[268] = { name: 'function', lower: 'function', index: 268, isBkr: false };
this.rules[269] = { name: 'entityFunction', lower: 'entityfunction', index: 269, isBkr: false };
this.rules[270] = { name: 'entityColFunction', lower: 'entitycolfunction', index: 270, isBkr: false };
this.rules[271] = { name: 'complexFunction', lower: 'complexfunction', index: 271, isBkr: false };
this.rules[272] = { name: 'complexColFunction', lower: 'complexcolfunction', index: 272, isBkr: false };
this.rules[273] = { name: 'primitiveFunction', lower: 'primitivefunction', index: 273, isBkr: false };
this.rules[274] = { name: 'primitiveColFunction', lower: 'primitivecolfunction', index: 274, isBkr: false };
this.rules[275] = { name: 'entityFunctionImport', lower: 'entityfunctionimport', index: 275, isBkr: false };
this.rules[276] = { name: 'entityColFunctionImport', lower: 'entitycolfunctionimport', index: 276, isBkr: false };
this.rules[277] = { name: 'complexFunctionImport', lower: 'complexfunctionimport', index: 277, isBkr: false };
this.rules[278] = { name: 'complexColFunctionImport', lower: 'complexcolfunctionimport', index: 278, isBkr: false };
this.rules[279] = { name: 'primitiveFunctionImport', lower: 'primitivefunctionimport', index: 279, isBkr: false };
this.rules[280] = { name: 'primitiveColFunctionImport', lower: 'primitivecolfunctionimport', index: 280, isBkr: false };
this.rules[281] = { name: 'primitiveLiteral', lower: 'primitiveliteral', index: 281, isBkr: false };
this.rules[282] = { name: 'primitiveValue', lower: 'primitivevalue', index: 282, isBkr: false };
this.rules[283] = { name: 'nullValue', lower: 'nullvalue', index: 283, isBkr: false };
this.rules[284] = { name: 'binary', lower: 'binary', index: 284, isBkr: false };
this.rules[285] = { name: 'binaryValue', lower: 'binaryvalue', index: 285, isBkr: false };
this.rules[286] = { name: 'base64b16', lower: 'base64b16', index: 286, isBkr: false };
this.rules[287] = { name: 'base64b8', lower: 'base64b8', index: 287, isBkr: false };
this.rules[288] = { name: 'base64char', lower: 'base64char', index: 288, isBkr: false };
this.rules[289] = { name: 'booleanValue', lower: 'booleanvalue', index: 289, isBkr: false };
this.rules[290] = { name: 'decimalValue', lower: 'decimalvalue', index: 290, isBkr: false };
this.rules[291] = { name: 'doubleValue', lower: 'doublevalue', index: 291, isBkr: false };
this.rules[292] = { name: 'singleValue', lower: 'singlevalue', index: 292, isBkr: false };
this.rules[293] = { name: 'nanInfinity', lower: 'naninfinity', index: 293, isBkr: false };
this.rules[294] = { name: 'guidValue', lower: 'guidvalue', index: 294, isBkr: false };
this.rules[295] = { name: 'byteValue', lower: 'bytevalue', index: 295, isBkr: false };
this.rules[296] = { name: 'sbyteValue', lower: 'sbytevalue', index: 296, isBkr: false };
this.rules[297] = { name: 'int16Value', lower: 'int16value', index: 297, isBkr: false };
this.rules[298] = { name: 'int32Value', lower: 'int32value', index: 298, isBkr: false };
this.rules[299] = { name: 'int64Value', lower: 'int64value', index: 299, isBkr: false };
this.rules[300] = { name: 'string', lower: 'string', index: 300, isBkr: false };
this.rules[301] = { name: 'SQUOTE-in-string', lower: 'squote-in-string', index: 301, isBkr: false };
this.rules[302] = { name: 'dateValue', lower: 'datevalue', index: 302, isBkr: false };
this.rules[303] = { name: 'dateTimeOffsetValue', lower: 'datetimeoffsetvalue', index: 303, isBkr: false };
this.rules[304] = { name: 'dateTimeOffsetValueInUrl', lower: 'datetimeoffsetvalueinurl', index: 304, isBkr: false };
this.rules[305] = { name: 'duration', lower: 'duration', index: 305, isBkr: false };
this.rules[306] = { name: 'durationValue', lower: 'durationvalue', index: 306, isBkr: false };
this.rules[307] = { name: 'timeOfDayValue', lower: 'timeofdayvalue', index: 307, isBkr: false };
this.rules[308] = { name: 'timeOfDayValueInUrl', lower: 'timeofdayvalueinurl', index: 308, isBkr: false };
this.rules[309] = { name: 'oneToNine', lower: 'onetonine', index: 309, isBkr: false };
this.rules[310] = { name: 'zeroToFiftyNine', lower: 'zerotofiftynine', index: 310, isBkr: false };
this.rules[311] = { name: 'year', lower: 'year', index: 311, isBkr: false };
this.rules[312] = { name: 'month', lower: 'month', index: 312, isBkr: false };
this.rules[313] = { name: 'day', lower: 'day', index: 313, isBkr: false };
this.rules[314] = { name: 'hour', lower: 'hour', index: 314, isBkr: false };
this.rules[315] = { name: 'minute', lower: 'minute', index: 315, isBkr: false };
this.rules[316] = { name: 'second', lower: 'second', index: 316, isBkr: false };
this.rules[317] = { name: 'fractionalSeconds', lower: 'fractionalseconds', index: 317, isBkr: false };
this.rules[318] = { name: 'enum', lower: 'enum', index: 318, isBkr: false };
this.rules[319] = { name: 'enumValue', lower: 'enumvalue', index: 319, isBkr: false };
this.rules[320] = { name: 'singleEnumValue', lower: 'singleenumvalue', index: 320, isBkr: false };
this.rules[321] = { name: 'enumMemberValue', lower: 'enummembervalue', index: 321, isBkr: false };
this.rules[322] = { name: 'geographyCollection', lower: 'geographycollection', index: 322, isBkr: false };
this.rules[323] = { name: 'fullCollectionLiteral', lower: 'fullcollectionliteral', index: 323, isBkr: false };
this.rules[324] = { name: 'collectionLiteral', lower: 'collectionliteral', index: 324, isBkr: false };
this.rules[325] = { name: 'geoLiteral', lower: 'geoliteral', index: 325, isBkr: false };
this.rules[326] = { name: 'geographyLineString', lower: 'geographylinestring', index: 326, isBkr: false };
this.rules[327] = { name: 'fullLineStringLiteral', lower: 'fulllinestringliteral', index: 327, isBkr: false };
this.rules[328] = { name: 'lineStringLiteral', lower: 'linestringliteral', index: 328, isBkr: false };
this.rules[329] = { name: 'lineStringData', lower: 'linestringdata', index: 329, isBkr: false };
this.rules[330] = { name: 'geographyMultiLineString', lower: 'geographymultilinestring', index: 330, isBkr: false };
this.rules[331] = { name: 'fullMultiLineStringLiteral', lower: 'fullmultilinestringliteral', index: 331, isBkr: false };
this.rules[332] = { name: 'multiLineStringLiteral', lower: 'multilinestringliteral', index: 332, isBkr: false };
this.rules[333] = { name: 'geographyMultiPoint', lower: 'geographymultipoint', index: 333, isBkr: false };
this.rules[334] = { name: 'fullMultiPointLiteral', lower: 'fullmultipointliteral', index: 334, isBkr: false };
this.rules[335] = { name: 'multiPointLiteral', lower: 'multipointliteral', index: 335, isBkr: false };
this.rules[336] = { name: 'geographyMultiPolygon', lower: 'geographymultipolygon', index: 336, isBkr: false };
this.rules[337] = { name: 'fullMultiPolygonLiteral', lower: 'fullmultipolygonliteral', index: 337, isBkr: false };
this.rules[338] = { name: 'multiPolygonLiteral', lower: 'multipolygonliteral', index: 338, isBkr: false };
this.rules[339] = { name: 'geographyPoint', lower: 'geographypoint', index: 339, isBkr: false };
this.rules[340] = { name: 'fullPointLiteral', lower: 'fullpointliteral', index: 340, isBkr: false };
this.rules[341] = { name: 'sridLiteral', lower: 'sridliteral', index: 341, isBkr: false };
this.rules[342] = { name: 'pointLiteral', lower: 'pointliteral', index: 342, isBkr: false };
this.rules[343] = { name: 'pointData', lower: 'pointdata', index: 343, isBkr: false };
this.rules[344] = { name: 'positionLiteral', lower: 'positionliteral', index: 344, isBkr: false };
this.rules[345] = { name: 'geographyPolygon', lower: 'geographypolygon', index: 345, isBkr: false };
this.rules[346] = { name: 'fullPolygonLiteral', lower: 'fullpolygonliteral', index: 346, isBkr: false };
this.rules[347] = { name: 'polygonLiteral', lower: 'polygonliteral', index: 347, isBkr: false };
this.rules[348] = { name: 'polygonData', lower: 'polygondata', index: 348, isBkr: false };
this.rules[349] = { name: 'ringLiteral', lower: 'ringliteral', index: 349, isBkr: false };
this.rules[350] = { name: 'geometryCollection', lower: 'geometrycollection', index: 350, isBkr: false };
this.rules[351] = { name: 'geometryLineString', lower: 'geometrylinestring', index: 351, isBkr: false };
this.rules[352] = { name: 'geometryMultiLineString', lower: 'geometrymultilinestring', index: 352, isBkr: false };
this.rules[353] = { name: 'geometryMultiPoint', lower: 'geometrymultipoint', index: 353, isBkr: false };
this.rules[354] = { name: 'geometryMultiPolygon', lower: 'geometrymultipolygon', index: 354, isBkr: false };
this.rules[355] = { name: 'geometryPoint', lower: 'geometrypoint', index: 355, isBkr: false };
this.rules[356] = { name: 'geometryPolygon', lower: 'geometrypolygon', index: 356, isBkr: false };
this.rules[357] = { name: 'geographyPrefix', lower: 'geographyprefix', index: 357, isBkr: false };
this.rules[358] = { name: 'geometryPrefix', lower: 'geometryprefix', index: 358, isBkr: false };
this.rules[359] = { name: 'header', lower: 'header', index: 359, isBkr: false };
this.rules[360] = { name: 'content-id', lower: 'content-id', index: 360, isBkr: false };
this.rules[361] = { name: 'isolation', lower: 'isolation', index: 361, isBkr: false };
this.rules[362] = { name: 'request-id', lower: 'request-id', index: 362, isBkr: false };
this.rules[363] = { name: 'odata-entityid', lower: 'odata-entityid', index: 363, isBkr: false };
this.rules[364] = { name: 'odata-error', lower: 'odata-error', index: 364, isBkr: false };
this.rules[365] = { name: 'odata-maxversion', lower: 'odata-maxversion', index: 365, isBkr: false };
this.rules[366] = { name: 'odata-version', lower: 'odata-version', index: 366, isBkr: false };
this.rules[367] = { name: 'prefer', lower: 'prefer', index: 367, isBkr: false };
this.rules[368] = { name: 'preference', lower: 'preference', index: 368, isBkr: false };
this.rules[369] = { name: 'allowEntityReferencesPreference', lower: 'allowentityreferencespreference', index: 369, isBkr: false };
this.rules[370] = { name: 'callbackPreference', lower: 'callbackpreference', index: 370, isBkr: false };
this.rules[371] = { name: 'continueOnErrorPreference', lower: 'continueonerrorpreference', index: 371, isBkr: false };
this.rules[372] = { name: 'includeAnnotationsPreference', lower: 'includeannotationspreference', index: 372, isBkr: false };
this.rules[373] = { name: 'annotationsList', lower: 'annotationslist', index: 373, isBkr: false };
this.rules[374] = { name: 'annotationIdentifier', lower: 'annotationidentifier', index: 374, isBkr: false };
this.rules[375] = { name: 'excludeOperator', lower: 'excludeoperator', index: 375, isBkr: false };
this.rules[376] = { name: 'maxpagesizePreference', lower: 'maxpagesizepreference', index: 376, isBkr: false };
this.rules[377] = { name: 'omitValuesPreference', lower: 'omitvaluespreference', index: 377, isBkr: false };
this.rules[378] = { name: 'respondAsyncPreference', lower: 'respondasyncpreference', index: 378, isBkr: false };
this.rules[379] = { name: 'returnPreference', lower: 'returnpreference', index: 379, isBkr: false };
this.rules[380] = { name: 'trackChangesPreference', lower: 'trackchangespreference', index: 380, isBkr: false };
this.rules[381] = { name: 'waitPreference', lower: 'waitpreference', index: 381, isBkr: false };
this.rules[382] = { name: 'obs-text', lower: 'obs-text', index: 382, isBkr: false };
this.rules[383] = { name: 'OWS', lower: 'ows', index: 383, isBkr: false };
this.rules[384] = { name: 'BWS-h', lower: 'bws-h', index: 384, isBkr: false };
this.rules[385] = { name: 'EQ-h', lower: 'eq-h', index: 385, isBkr: false };
this.rules[386] = { name: 'RWS', lower: 'rws', index: 386, isBkr: false };
this.rules[387] = { name: 'BWS', lower: 'bws', index: 387, isBkr: false };
this.rules[388] = { name: 'AT', lower: 'at', index: 388, isBkr: false };
this.rules[389] = { name: 'COLON', lower: 'colon', index: 389, isBkr: false };
this.rules[390] = { name: 'COMMA', lower: 'comma', index: 390, isBkr: false };
this.rules[391] = { name: 'EQ', lower: 'eq', index: 391, isBkr: false };
this.rules[392] = { name: 'HASH', lower: 'hash', index: 392, isBkr: false };
this.rules[393] = { name: 'SIGN', lower: 'sign', index: 393, isBkr: false };
this.rules[394] = { name: 'SEMI', lower: 'semi', index: 394, isBkr: false };
this.rules[395] = { name: 'STAR', lower: 'star', index: 395, isBkr: false };
this.rules[396] = { name: 'SQUOTE', lower: 'squote', index: 396, isBkr: false };
this.rules[397] = { name: 'OPEN', lower: 'open', index: 397, isBkr: false };
this.rules[398] = { name: 'CLOSE', lower: 'close', index: 398, isBkr: false };
this.rules[399] = { name: 'URI', lower: 'uri', index: 399, isBkr: false };
this.rules[400] = { name: 'hier-part', lower: 'hier-part', index: 400, isBkr: false };
this.rules[401] = { name: 'scheme', lower: 'scheme', index: 401, isBkr: false };
this.rules[402] = { name: 'authority', lower: 'authority', index: 402, isBkr: false };
this.rules[403] = { name: 'userinfo', lower: 'userinfo', index: 403, isBkr: false };
this.rules[404] = { name: 'host', lower: 'host', index: 404, isBkr: false };
this.rules[405] = { name: 'port', lower: 'port', index: 405, isBkr: false };
this.rules[406] = { name: 'IP-literal', lower: 'ip-literal', index: 406, isBkr: false };
this.rules[407] = { name: 'IPvFuture', lower: 'ipvfuture', index: 407, isBkr: false };
this.rules[408] = { name: 'IPv6address', lower: 'ipv6address', index: 408, isBkr: false };
this.rules[409] = { name: 'h16', lower: 'h16', index: 409, isBkr: false };
this.rules[410] = { name: 'ls32', lower: 'ls32', index: 410, isBkr: false };
this.rules[411] = { name: 'IPv4address', lower: 'ipv4address', index: 411, isBkr: false };
this.rules[412] = { name: 'dec-octet', lower: 'dec-octet', index: 412, isBkr: false };
this.rules[413] = { name: 'reg-name', lower: 'reg-name', index: 413, isBkr: false };
this.rules[414] = { name: 'path-abempty', lower: 'path-abempty', index: 414, isBkr: false };
this.rules[415] = { name: 'path-absolute', lower: 'path-absolute', index: 415, isBkr: false };
this.rules[416] = { name: 'path-rootless', lower: 'path-rootless', index: 416, isBkr: false };
this.rules[417] = { name: 'segment', lower: 'segment', index: 417, isBkr: false };
this.rules[418] = { name: 'segment-nz', lower: 'segment-nz', index: 418, isBkr: false };
this.rules[419] = { name: 'pchar', lower: 'pchar', index: 419, isBkr: false };
this.rules[420] = { name: 'query', lower: 'query', index: 420, isBkr: false };
this.rules[421] = { name: 'fragment', lower: 'fragment', index: 421, isBkr: false };
this.rules[422] = { name: 'pct-encoded', lower: 'pct-encoded', index: 422, isBkr: false };
this.rules[423] = { name: 'unreserved', lower: 'unreserved', index: 423, isBkr: false };
this.rules[424] = { name: 'sub-delims', lower: 'sub-delims', index: 424, isBkr: false };
this.rules[425] = { name: 'other-delims', lower: 'other-delims', index: 425, isBkr: false };
this.rules[426] = { name: 'pchar-no-SQUOTE', lower: 'pchar-no-squote', index: 426, isBkr: false };
this.rules[427] = { name: 'pct-encoded-no-SQUOTE', lower: 'pct-encoded-no-squote', index: 427, isBkr: false };
this.rules[428] = { name: 'qchar-no-AMP', lower: 'qchar-no-amp', index: 428, isBkr: false };
this.rules[429] = { name: 'qchar-no-AMP-EQ', lower: 'qchar-no-amp-eq', index: 429, isBkr: false };
this.rules[430] = { name: 'qchar-no-AMP-EQ-AT-DOLLAR', lower: 'qchar-no-amp-eq-at-dollar', index: 430, isBkr: false };
this.rules[431] = { name: 'qchar-no-AMP-SQUOTE', lower: 'qchar-no-amp-squote', index: 431, isBkr: false };
this.rules[432] = { name: 'qchar-no-AMP-DQUOTE', lower: 'qchar-no-amp-dquote', index: 432, isBkr: false };
this.rules[433] = { name: 'qchar-unescaped', lower: 'qchar-unescaped', index: 433, isBkr: false };
this.rules[434] = { name: 'pct-encoded-unescaped', lower: 'pct-encoded-unescaped', index: 434, isBkr: false };
this.rules[435] = { name: 'pct-encoded-no-DQUOTE', lower: 'pct-encoded-no-dquote', index: 435, isBkr: false };
this.rules[436] = { name: 'IRI-in-header', lower: 'iri-in-header', index: 436, isBkr: false };
this.rules[437] = { name: 'IRI-in-query', lower: 'iri-in-query', index: 437, isBkr: false };
this.rules[438] = { name: 'ALPHA', lower: 'alpha', index: 438, isBkr: false };
this.rules[439] = { name: 'DIGIT', lower: 'digit', index: 439, isBkr: false };
this.rules[440] = { name: 'HEXDIG', lower: 'hexdig', index: 440, isBkr: false };
this.rules[441] = { name: 'A-to-F', lower: 'a-to-f', index: 441, isBkr: false };
this.rules[442] = { name: 'DQUOTE', lower: 'dquote', index: 442, isBkr: false };
this.rules[443] = { name: 'SP', lower: 'sp', index: 443, isBkr: false };
this.rules[444] = { name: 'HTAB', lower: 'htab', index: 444, isBkr: false };
this.rules[445] = { name: 'VCHAR', lower: 'vchar', index: 445, isBkr: false };
/* UDTS */
this.udts = [];
/* OPCODES */
/* dummyStartRule */
this.rules[0].opcodes = [];
this.rules[0].opcodes[0] = { type: 1, children: [1,2,3] };// ALT
this.rules[0].opcodes[1] = { type: 4, index: 1 };// RNM(odataUri)
this.rules[0].opcodes[2] = { type: 4, index: 359 };// RNM(header)
this.rules[0].opcodes[3] = { type: 4, index: 282 };// RNM(primitiveValue)
/* odataUri */
this.rules[1].opcodes = [];
this.rules[1].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[1].opcodes[1] = { type: 4, index: 2 };// RNM(serviceRoot)
this.rules[1].opcodes[2] = { type: 3, min: 0, max: 1 };// REP
this.rules[1].opcodes[3] = { type: 4, index: 3 };// RNM(odataRelativeUri)
/* serviceRoot */
this.rules[2].opcodes = [];
this.rules[2].opcodes[0] = { type: 2, children: [1,4,5,6,10,11] };// CAT
this.rules[2].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[2].opcodes[2] = { type: 7, string: [104,116,116,112,115] };// TLS
this.rules[2].opcodes[3] = { type: 7, string: [104,116,116,112] };// TLS
this.rules[2].opcodes[4] = { type: 7, string: [58,47,47] };// TLS
this.rules[2].opcodes[5] = { type: 4, index: 404 };// RNM(host)
this.rules[2].opcodes[6] = { type: 3, min: 0, max: 1 };// REP
this.rules[2].opcodes[7] = { type: 2, children: [8,9] };// CAT
this.rules[2].opcodes[8] = { type: 7, string: [58] };// TLS
this.rules[2].opcodes[9] = { type: 4, index: 405 };// RNM(port)
this.rules[2].opcodes[10] = { type: 7, string: [47] };// TLS
this.rules[2].opcodes[11] = { type: 3, min: 0, max: Infinity };// REP
this.rules[2].opcodes[12] = { type: 2, children: [13,14] };// CAT
this.rules[2].opcodes[13] = { type: 4, index: 418 };// RNM(segment-nz)
this.rules[2].opcodes[14] = { type: 7, string: [47] };// TLS
/* odataRelativeUri */
this.rules[3].opcodes = [];
this.rules[3].opcodes[0] = { type: 1, children: [1,7,11,17,25] };// ALT
this.rules[3].opcodes[1] = { type: 2, children: [2,3] };// CAT
this.rules[3].opcodes[2] = { type: 6, string: [36,98,97,116,99,104] };// TBS
this.rules[3].opcodes[3] = { type: 3, min: 0, max: 1 };// REP
this.rules[3].opcodes[4] = { type: 2, children: [5,6] };// CAT
this.rules[3].opcodes[5] = { type: 7, string: [63] };// TLS
this.rules[3].opcodes[6] = { type: 4, index: 54 };// RNM(batchOptions)
this.rules[3].opcodes[7] = { type: 2, children: [8,9,10] };// CAT
this.rules[3].opcodes[8] = { type: 6, string: [36,101,110,116,105,116,121] };// TBS
this.rules[3].opcodes[9] = { type: 7, string: [63] };// TLS
this.rules[3].opcodes[10] = { type: 4, index: 58 };// RNM(entityOptions)
this.rules[3].opcodes[11] = { type: 2, children: [12,13,14,15,16] };// CAT
this.rules[3].opcodes[12] = { type: 6, string: [36,101,110,116,105,116,121] };// TBS
this.rules[3].opcodes[13] = { type: 7, string: [47] };// TLS
this.rules[3].opcodes[14] = { type: 4, index: 238 };// RNM(optionallyQualifiedEntityTypeName)
this.rules[3].opcodes[15] = { type: 7, string: [63] };// TLS
this.rules[3].opcodes[16] = { type: 4, index: 60 };// RNM(entityCastOptions)
this.rules[3].opcodes[17] = { type: 2, children: [18,19,23] };// CAT
this.rules[3].opcodes[18] = { type: 6, string: [36,109,101,116,97,100,97,116,97] };// TBS
this.rules[3].opcodes[19] = { type: 3, min: 0, max: 1 };// REP
this.rules[3].opcodes[20] = { type: 2, children: [21,22] };// CAT
this.rules[3].opcodes[21] = { type: 7, string: [63] };// TLS
this.rules[3].opcodes[22] = { type: 4, index: 56 };// RNM(metadataOptions)
this.rules[3].opcodes[23] = { type: 3, min: 0, max: 1 };// REP
this.rules[3].opcodes[24] = { type: 4, index: 115 };// RNM(context)
this.rules[3].opcodes[25] = { type: 2, children: [26,27] };// CAT
this.rules[3].opcodes[26] = { type: 4, index: 4 };// RNM(resourcePath)
this.rules[3].opcodes[27] = { type: 3, min: 0, max: 1 };// REP
this.rules[3].opcodes[28] = { type: 2, children: [29,30] };// CAT
this.rules[3].opcodes[29] = { type: 7, string: [63] };// TLS
this.rules[3].opcodes[30] = { type: 4, index: 52 };// RNM(queryOptions)
/* resourcePath */
this.rules[4].opcodes = [];
this.rules[4].opcodes[0] = { type: 1, children: [1,5,9,10,14,18,22,26,30,34,38,42] };// ALT
this.rules[4].opcodes[1] = { type: 2, children: [2,3] };// CAT
this.rules[4].opcodes[2] = { type: 4, index: 242 };// RNM(entitySetName)