UNPKG

snomed-expression-builder

Version:
756 lines (686 loc) 41.2 kB
// Generated by JavaScript APG, Version [`apg-js2`](https://github.com/ldthomas/apg-js2) module.exports = function(){ "use strict"; //``` // SUMMARY // rules = 66 // udts = 0 // opcodes = 382 // --- ABNF original opcodes // ALT = 42 // CAT = 54 // REP = 32 // RNM = 168 // TLS = 59 // TBS = 11 // TRG = 16 // --- SABNF superset opcodes // UDT = 0 // AND = 0 // NOT = 0 // BKA = 0 // BKN = 0 // BKR = 0 // ABG = 0 // AEN = 0 // characters = [9 - 244] //``` /* OBJECT IDENTIFIER (for internal parser use) */ this.grammarObject = 'grammarObject'; /* RULES */ this.rules = []; this.rules[0] = {name: 'expressionConstraint', lower: 'expressionconstraint', index: 0, isBkr: false}; this.rules[1] = {name: 'simpleExpressionConstraint', lower: 'simpleexpressionconstraint', index: 1, isBkr: false}; this.rules[2] = {name: 'refinedExpressionConstraint', lower: 'refinedexpressionconstraint', index: 2, isBkr: false}; this.rules[3] = {name: 'compoundExpressionConstraint', lower: 'compoundexpressionconstraint', index: 3, isBkr: false}; this.rules[4] = {name: 'conjunctionExpressionConstraint', lower: 'conjunctionexpressionconstraint', index: 4, isBkr: false}; this.rules[5] = {name: 'disjunctionExpressionConstraint', lower: 'disjunctionexpressionconstraint', index: 5, isBkr: false}; this.rules[6] = {name: 'exclusionExpressionConstraint', lower: 'exclusionexpressionconstraint', index: 6, isBkr: false}; this.rules[7] = {name: 'subExpressionConstraint', lower: 'subexpressionconstraint', index: 7, isBkr: false}; this.rules[8] = {name: 'focusConcept', lower: 'focusconcept', index: 8, isBkr: false}; this.rules[9] = {name: 'memberOf', lower: 'memberof', index: 9, isBkr: false}; this.rules[10] = {name: 'conceptReference', lower: 'conceptreference', index: 10, isBkr: false}; this.rules[11] = {name: 'conceptId', lower: 'conceptid', index: 11, isBkr: false}; this.rules[12] = {name: 'term', lower: 'term', index: 12, isBkr: false}; this.rules[13] = {name: 'wildCard', lower: 'wildcard', index: 13, isBkr: false}; this.rules[14] = {name: 'constraintOperator', lower: 'constraintoperator', index: 14, isBkr: false}; this.rules[15] = {name: 'descendantOf', lower: 'descendantof', index: 15, isBkr: false}; this.rules[16] = {name: 'descendantOrSelfOf', lower: 'descendantorselfof', index: 16, isBkr: false}; this.rules[17] = {name: 'ancestorOf', lower: 'ancestorof', index: 17, isBkr: false}; this.rules[18] = {name: 'ancestorOrSelfOf', lower: 'ancestororselfof', index: 18, isBkr: false}; this.rules[19] = {name: 'conjunction', lower: 'conjunction', index: 19, isBkr: false}; this.rules[20] = {name: 'disjunction', lower: 'disjunction', index: 20, isBkr: false}; this.rules[21] = {name: 'exclusion', lower: 'exclusion', index: 21, isBkr: false}; this.rules[22] = {name: 'refinement', lower: 'refinement', index: 22, isBkr: false}; this.rules[23] = {name: 'conjunctionRefinementSet', lower: 'conjunctionrefinementset', index: 23, isBkr: false}; this.rules[24] = {name: 'disjunctionRefinementSet', lower: 'disjunctionrefinementset', index: 24, isBkr: false}; this.rules[25] = {name: 'subRefinement', lower: 'subrefinement', index: 25, isBkr: false}; this.rules[26] = {name: 'attributeSet', lower: 'attributeset', index: 26, isBkr: false}; this.rules[27] = {name: 'conjunctionAttributeSet', lower: 'conjunctionattributeset', index: 27, isBkr: false}; this.rules[28] = {name: 'disjunctionAttributeSet', lower: 'disjunctionattributeset', index: 28, isBkr: false}; this.rules[29] = {name: 'subAttributeSet', lower: 'subattributeset', index: 29, isBkr: false}; this.rules[30] = {name: 'attributeGroup', lower: 'attributegroup', index: 30, isBkr: false}; this.rules[31] = {name: 'attribute', lower: 'attribute', index: 31, isBkr: false}; this.rules[32] = {name: 'cardinality', lower: 'cardinality', index: 32, isBkr: false}; this.rules[33] = {name: 'to', lower: 'to', index: 33, isBkr: false}; this.rules[34] = {name: 'many', lower: 'many', index: 34, isBkr: false}; this.rules[35] = {name: 'reverseFlag', lower: 'reverseflag', index: 35, isBkr: false}; this.rules[36] = {name: 'attributeOperator', lower: 'attributeoperator', index: 36, isBkr: false}; this.rules[37] = {name: 'attributeName', lower: 'attributename', index: 37, isBkr: false}; this.rules[38] = {name: 'expressionConstraintValue', lower: 'expressionconstraintvalue', index: 38, isBkr: false}; this.rules[39] = {name: 'expressionComparisonOperator', lower: 'expressioncomparisonoperator', index: 39, isBkr: false}; this.rules[40] = {name: 'numericComparisonOperator', lower: 'numericcomparisonoperator', index: 40, isBkr: false}; this.rules[41] = {name: 'stringComparisonOperator', lower: 'stringcomparisonoperator', index: 41, isBkr: false}; this.rules[42] = {name: 'numericValue', lower: 'numericvalue', index: 42, isBkr: false}; this.rules[43] = {name: 'stringValue', lower: 'stringvalue', index: 43, isBkr: false}; this.rules[44] = {name: 'integerValue', lower: 'integervalue', index: 44, isBkr: false}; this.rules[45] = {name: 'decimalValue', lower: 'decimalvalue', index: 45, isBkr: false}; this.rules[46] = {name: 'nonNegativeIntegerValue', lower: 'nonnegativeintegervalue', index: 46, isBkr: false}; this.rules[47] = {name: 'sctId', lower: 'sctid', index: 47, isBkr: false}; this.rules[48] = {name: 'ws', lower: 'ws', index: 48, isBkr: false}; this.rules[49] = {name: 'mws', lower: 'mws', index: 49, isBkr: false}; this.rules[50] = {name: 'SP', lower: 'sp', index: 50, isBkr: false}; this.rules[51] = {name: 'HTAB', lower: 'htab', index: 51, isBkr: false}; this.rules[52] = {name: 'CR', lower: 'cr', index: 52, isBkr: false}; this.rules[53] = {name: 'LF', lower: 'lf', index: 53, isBkr: false}; this.rules[54] = {name: 'QM', lower: 'qm', index: 54, isBkr: false}; this.rules[55] = {name: 'BS', lower: 'bs', index: 55, isBkr: false}; this.rules[56] = {name: 'digit', lower: 'digit', index: 56, isBkr: false}; this.rules[57] = {name: 'zero', lower: 'zero', index: 57, isBkr: false}; this.rules[58] = {name: 'digitNonZero', lower: 'digitnonzero', index: 58, isBkr: false}; this.rules[59] = {name: 'nonwsNonPipe', lower: 'nonwsnonpipe', index: 59, isBkr: false}; this.rules[60] = {name: 'anyNonEscapedChar', lower: 'anynonescapedchar', index: 60, isBkr: false}; this.rules[61] = {name: 'escapedChar', lower: 'escapedchar', index: 61, isBkr: false}; this.rules[62] = {name: 'UTF8-2', lower: 'utf8-2', index: 62, isBkr: false}; this.rules[63] = {name: 'UTF8-3', lower: 'utf8-3', index: 63, isBkr: false}; this.rules[64] = {name: 'UTF8-4', lower: 'utf8-4', index: 64, isBkr: false}; this.rules[65] = {name: 'UTF8-tail', lower: 'utf8-tail', index: 65, isBkr: false}; /* UDTS */ this.udts = []; /* OPCODES */ /* expressionConstraint */ this.rules[0].opcodes = []; this.rules[0].opcodes[0] = {type: 2, children: [1,2,6]};// CAT this.rules[0].opcodes[1] = {type: 4, index: 48};// RNM(ws) this.rules[0].opcodes[2] = {type: 1, children: [3,4,5]};// ALT this.rules[0].opcodes[3] = {type: 4, index: 2};// RNM(refinedExpressionConstraint) this.rules[0].opcodes[4] = {type: 4, index: 3};// RNM(compoundExpressionConstraint) this.rules[0].opcodes[5] = {type: 4, index: 1};// RNM(simpleExpressionConstraint) this.rules[0].opcodes[6] = {type: 4, index: 48};// RNM(ws) /* simpleExpressionConstraint */ this.rules[1].opcodes = []; this.rules[1].opcodes[0] = {type: 2, children: [1,5]};// CAT this.rules[1].opcodes[1] = {type: 3, min: 0, max: 1};// REP this.rules[1].opcodes[2] = {type: 2, children: [3,4]};// CAT this.rules[1].opcodes[3] = {type: 4, index: 14};// RNM(constraintOperator) this.rules[1].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[1].opcodes[5] = {type: 4, index: 8};// RNM(focusConcept) /* refinedExpressionConstraint */ this.rules[2].opcodes = []; this.rules[2].opcodes[0] = {type: 2, children: [1,2,3,4,5]};// CAT this.rules[2].opcodes[1] = {type: 4, index: 1};// RNM(simpleExpressionConstraint) this.rules[2].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[2].opcodes[3] = {type: 7, string: [58]};// TLS this.rules[2].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[2].opcodes[5] = {type: 4, index: 22};// RNM(refinement) /* compoundExpressionConstraint */ this.rules[3].opcodes = []; this.rules[3].opcodes[0] = {type: 1, children: [1,2,3]};// ALT this.rules[3].opcodes[1] = {type: 4, index: 4};// RNM(conjunctionExpressionConstraint) this.rules[3].opcodes[2] = {type: 4, index: 5};// RNM(disjunctionExpressionConstraint) this.rules[3].opcodes[3] = {type: 4, index: 6};// RNM(exclusionExpressionConstraint) /* conjunctionExpressionConstraint */ this.rules[4].opcodes = []; this.rules[4].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[4].opcodes[1] = {type: 4, index: 7};// RNM(subExpressionConstraint) this.rules[4].opcodes[2] = {type: 3, min: 1, max: Infinity};// REP this.rules[4].opcodes[3] = {type: 2, children: [4,5,6,7]};// CAT this.rules[4].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[4].opcodes[5] = {type: 4, index: 19};// RNM(conjunction) this.rules[4].opcodes[6] = {type: 4, index: 48};// RNM(ws) this.rules[4].opcodes[7] = {type: 4, index: 7};// RNM(subExpressionConstraint) /* disjunctionExpressionConstraint */ this.rules[5].opcodes = []; this.rules[5].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[5].opcodes[1] = {type: 4, index: 7};// RNM(subExpressionConstraint) this.rules[5].opcodes[2] = {type: 3, min: 1, max: Infinity};// REP this.rules[5].opcodes[3] = {type: 2, children: [4,5,6,7]};// CAT this.rules[5].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[5].opcodes[5] = {type: 4, index: 20};// RNM(disjunction) this.rules[5].opcodes[6] = {type: 4, index: 48};// RNM(ws) this.rules[5].opcodes[7] = {type: 4, index: 7};// RNM(subExpressionConstraint) /* exclusionExpressionConstraint */ this.rules[6].opcodes = []; this.rules[6].opcodes[0] = {type: 2, children: [1,2,3,4,5]};// CAT this.rules[6].opcodes[1] = {type: 4, index: 7};// RNM(subExpressionConstraint) this.rules[6].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[6].opcodes[3] = {type: 4, index: 21};// RNM(exclusion) this.rules[6].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[6].opcodes[5] = {type: 4, index: 7};// RNM(subExpressionConstraint) /* subExpressionConstraint */ this.rules[7].opcodes = []; this.rules[7].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[7].opcodes[1] = {type: 4, index: 1};// RNM(simpleExpressionConstraint) this.rules[7].opcodes[2] = {type: 2, children: [3,4,5,8,9]};// CAT this.rules[7].opcodes[3] = {type: 7, string: [40]};// TLS this.rules[7].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[7].opcodes[5] = {type: 1, children: [6,7]};// ALT this.rules[7].opcodes[6] = {type: 4, index: 3};// RNM(compoundExpressionConstraint) this.rules[7].opcodes[7] = {type: 4, index: 2};// RNM(refinedExpressionConstraint) this.rules[7].opcodes[8] = {type: 4, index: 48};// RNM(ws) this.rules[7].opcodes[9] = {type: 7, string: [41]};// TLS /* focusConcept */ this.rules[8].opcodes = []; this.rules[8].opcodes[0] = {type: 2, children: [1,5]};// CAT this.rules[8].opcodes[1] = {type: 3, min: 0, max: 1};// REP this.rules[8].opcodes[2] = {type: 2, children: [3,4]};// CAT this.rules[8].opcodes[3] = {type: 4, index: 9};// RNM(memberOf) this.rules[8].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[8].opcodes[5] = {type: 1, children: [6,7]};// ALT this.rules[8].opcodes[6] = {type: 4, index: 10};// RNM(conceptReference) this.rules[8].opcodes[7] = {type: 4, index: 13};// RNM(wildCard) /* memberOf */ this.rules[9].opcodes = []; this.rules[9].opcodes[0] = {type: 7, string: [94]};// TLS /* conceptReference */ this.rules[10].opcodes = []; this.rules[10].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[10].opcodes[1] = {type: 4, index: 11};// RNM(conceptId) this.rules[10].opcodes[2] = {type: 3, min: 0, max: 1};// REP this.rules[10].opcodes[3] = {type: 2, children: [4,5,6,7,8,9]};// CAT this.rules[10].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[10].opcodes[5] = {type: 7, string: [124]};// TLS this.rules[10].opcodes[6] = {type: 4, index: 48};// RNM(ws) this.rules[10].opcodes[7] = {type: 4, index: 12};// RNM(term) this.rules[10].opcodes[8] = {type: 4, index: 48};// RNM(ws) this.rules[10].opcodes[9] = {type: 7, string: [124]};// TLS /* conceptId */ this.rules[11].opcodes = []; this.rules[11].opcodes[0] = {type: 4, index: 47};// RNM(sctId) /* term */ this.rules[12].opcodes = []; this.rules[12].opcodes[0] = {type: 2, children: [1,3]};// CAT this.rules[12].opcodes[1] = {type: 3, min: 1, max: Infinity};// REP this.rules[12].opcodes[2] = {type: 4, index: 59};// RNM(nonwsNonPipe) this.rules[12].opcodes[3] = {type: 3, min: 0, max: Infinity};// REP this.rules[12].opcodes[4] = {type: 2, children: [5,7]};// CAT this.rules[12].opcodes[5] = {type: 3, min: 1, max: Infinity};// REP this.rules[12].opcodes[6] = {type: 4, index: 50};// RNM(SP) this.rules[12].opcodes[7] = {type: 3, min: 1, max: Infinity};// REP this.rules[12].opcodes[8] = {type: 4, index: 59};// RNM(nonwsNonPipe) /* wildCard */ this.rules[13].opcodes = []; this.rules[13].opcodes[0] = {type: 7, string: [42]};// TLS /* constraintOperator */ this.rules[14].opcodes = []; this.rules[14].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT this.rules[14].opcodes[1] = {type: 4, index: 16};// RNM(descendantOrSelfOf) this.rules[14].opcodes[2] = {type: 4, index: 15};// RNM(descendantOf) this.rules[14].opcodes[3] = {type: 4, index: 18};// RNM(ancestorOrSelfOf) this.rules[14].opcodes[4] = {type: 4, index: 17};// RNM(ancestorOf) /* descendantOf */ this.rules[15].opcodes = []; this.rules[15].opcodes[0] = {type: 7, string: [60]};// TLS /* descendantOrSelfOf */ this.rules[16].opcodes = []; this.rules[16].opcodes[0] = {type: 7, string: [60,60]};// TLS /* ancestorOf */ this.rules[17].opcodes = []; this.rules[17].opcodes[0] = {type: 7, string: [62]};// TLS /* ancestorOrSelfOf */ this.rules[18].opcodes = []; this.rules[18].opcodes[0] = {type: 7, string: [62,62]};// TLS /* conjunction */ this.rules[19].opcodes = []; this.rules[19].opcodes[0] = {type: 1, children: [1,12]};// ALT this.rules[19].opcodes[1] = {type: 2, children: [2,5,8,11]};// CAT this.rules[19].opcodes[2] = {type: 1, children: [3,4]};// ALT this.rules[19].opcodes[3] = {type: 7, string: [97]};// TLS this.rules[19].opcodes[4] = {type: 7, string: [97]};// TLS this.rules[19].opcodes[5] = {type: 1, children: [6,7]};// ALT this.rules[19].opcodes[6] = {type: 7, string: [110]};// TLS this.rules[19].opcodes[7] = {type: 7, string: [110]};// TLS this.rules[19].opcodes[8] = {type: 1, children: [9,10]};// ALT this.rules[19].opcodes[9] = {type: 7, string: [100]};// TLS this.rules[19].opcodes[10] = {type: 7, string: [100]};// TLS this.rules[19].opcodes[11] = {type: 4, index: 49};// RNM(mws) this.rules[19].opcodes[12] = {type: 7, string: [44]};// TLS /* disjunction */ this.rules[20].opcodes = []; this.rules[20].opcodes[0] = {type: 2, children: [1,4,7]};// CAT this.rules[20].opcodes[1] = {type: 1, children: [2,3]};// ALT this.rules[20].opcodes[2] = {type: 7, string: [111]};// TLS this.rules[20].opcodes[3] = {type: 7, string: [111]};// TLS this.rules[20].opcodes[4] = {type: 1, children: [5,6]};// ALT this.rules[20].opcodes[5] = {type: 7, string: [114]};// TLS this.rules[20].opcodes[6] = {type: 7, string: [114]};// TLS this.rules[20].opcodes[7] = {type: 4, index: 49};// RNM(mws) /* exclusion */ this.rules[21].opcodes = []; this.rules[21].opcodes[0] = {type: 2, children: [1,4,7,10,13,16]};// CAT this.rules[21].opcodes[1] = {type: 1, children: [2,3]};// ALT this.rules[21].opcodes[2] = {type: 7, string: [109]};// TLS this.rules[21].opcodes[3] = {type: 7, string: [109]};// TLS this.rules[21].opcodes[4] = {type: 1, children: [5,6]};// ALT this.rules[21].opcodes[5] = {type: 7, string: [105]};// TLS this.rules[21].opcodes[6] = {type: 7, string: [105]};// TLS this.rules[21].opcodes[7] = {type: 1, children: [8,9]};// ALT this.rules[21].opcodes[8] = {type: 7, string: [110]};// TLS this.rules[21].opcodes[9] = {type: 7, string: [110]};// TLS this.rules[21].opcodes[10] = {type: 1, children: [11,12]};// ALT this.rules[21].opcodes[11] = {type: 7, string: [117]};// TLS this.rules[21].opcodes[12] = {type: 7, string: [117]};// TLS this.rules[21].opcodes[13] = {type: 1, children: [14,15]};// ALT this.rules[21].opcodes[14] = {type: 7, string: [115]};// TLS this.rules[21].opcodes[15] = {type: 7, string: [115]};// TLS this.rules[21].opcodes[16] = {type: 4, index: 49};// RNM(mws) /* refinement */ this.rules[22].opcodes = []; this.rules[22].opcodes[0] = {type: 2, children: [1,2,3]};// CAT this.rules[22].opcodes[1] = {type: 4, index: 25};// RNM(subRefinement) this.rules[22].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[22].opcodes[3] = {type: 3, min: 0, max: 1};// REP this.rules[22].opcodes[4] = {type: 1, children: [5,6]};// ALT this.rules[22].opcodes[5] = {type: 4, index: 23};// RNM(conjunctionRefinementSet) this.rules[22].opcodes[6] = {type: 4, index: 24};// RNM(disjunctionRefinementSet) /* conjunctionRefinementSet */ this.rules[23].opcodes = []; this.rules[23].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP this.rules[23].opcodes[1] = {type: 2, children: [2,3,4,5]};// CAT this.rules[23].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[23].opcodes[3] = {type: 4, index: 19};// RNM(conjunction) this.rules[23].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[23].opcodes[5] = {type: 4, index: 25};// RNM(subRefinement) /* disjunctionRefinementSet */ this.rules[24].opcodes = []; this.rules[24].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP this.rules[24].opcodes[1] = {type: 2, children: [2,3,4,5]};// CAT this.rules[24].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[24].opcodes[3] = {type: 4, index: 20};// RNM(disjunction) this.rules[24].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[24].opcodes[5] = {type: 4, index: 25};// RNM(subRefinement) /* subRefinement */ this.rules[25].opcodes = []; this.rules[25].opcodes[0] = {type: 1, children: [1,2,3]};// ALT this.rules[25].opcodes[1] = {type: 4, index: 26};// RNM(attributeSet) this.rules[25].opcodes[2] = {type: 4, index: 30};// RNM(attributeGroup) this.rules[25].opcodes[3] = {type: 2, children: [4,5,6,7,8]};// CAT this.rules[25].opcodes[4] = {type: 7, string: [40]};// TLS this.rules[25].opcodes[5] = {type: 4, index: 48};// RNM(ws) this.rules[25].opcodes[6] = {type: 4, index: 22};// RNM(refinement) this.rules[25].opcodes[7] = {type: 4, index: 48};// RNM(ws) this.rules[25].opcodes[8] = {type: 7, string: [41]};// TLS /* attributeSet */ this.rules[26].opcodes = []; this.rules[26].opcodes[0] = {type: 2, children: [1,2,3]};// CAT this.rules[26].opcodes[1] = {type: 4, index: 29};// RNM(subAttributeSet) this.rules[26].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[26].opcodes[3] = {type: 3, min: 0, max: 1};// REP this.rules[26].opcodes[4] = {type: 1, children: [5,6]};// ALT this.rules[26].opcodes[5] = {type: 4, index: 27};// RNM(conjunctionAttributeSet) this.rules[26].opcodes[6] = {type: 4, index: 28};// RNM(disjunctionAttributeSet) /* conjunctionAttributeSet */ this.rules[27].opcodes = []; this.rules[27].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP this.rules[27].opcodes[1] = {type: 2, children: [2,3,4,5]};// CAT this.rules[27].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[27].opcodes[3] = {type: 4, index: 19};// RNM(conjunction) this.rules[27].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[27].opcodes[5] = {type: 4, index: 29};// RNM(subAttributeSet) /* disjunctionAttributeSet */ this.rules[28].opcodes = []; this.rules[28].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP this.rules[28].opcodes[1] = {type: 2, children: [2,3,4,5]};// CAT this.rules[28].opcodes[2] = {type: 4, index: 48};// RNM(ws) this.rules[28].opcodes[3] = {type: 4, index: 20};// RNM(disjunction) this.rules[28].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[28].opcodes[5] = {type: 4, index: 29};// RNM(subAttributeSet) /* subAttributeSet */ this.rules[29].opcodes = []; this.rules[29].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[29].opcodes[1] = {type: 4, index: 31};// RNM(attribute) this.rules[29].opcodes[2] = {type: 2, children: [3,4,5,6,7]};// CAT this.rules[29].opcodes[3] = {type: 7, string: [40]};// TLS this.rules[29].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[29].opcodes[5] = {type: 4, index: 26};// RNM(attributeSet) this.rules[29].opcodes[6] = {type: 4, index: 48};// RNM(ws) this.rules[29].opcodes[7] = {type: 7, string: [41]};// TLS /* attributeGroup */ this.rules[30].opcodes = []; this.rules[30].opcodes[0] = {type: 2, children: [1,5,6,7,8,9]};// CAT this.rules[30].opcodes[1] = {type: 3, min: 0, max: 1};// REP this.rules[30].opcodes[2] = {type: 2, children: [3,4]};// CAT this.rules[30].opcodes[3] = {type: 4, index: 32};// RNM(cardinality) this.rules[30].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[30].opcodes[5] = {type: 7, string: [123]};// TLS this.rules[30].opcodes[6] = {type: 4, index: 48};// RNM(ws) this.rules[30].opcodes[7] = {type: 4, index: 26};// RNM(attributeSet) this.rules[30].opcodes[8] = {type: 4, index: 48};// RNM(ws) this.rules[30].opcodes[9] = {type: 7, string: [125]};// TLS /* attribute */ this.rules[31].opcodes = []; this.rules[31].opcodes[0] = {type: 2, children: [1,5,9,13,14,15]};// CAT this.rules[31].opcodes[1] = {type: 3, min: 0, max: 1};// REP this.rules[31].opcodes[2] = {type: 2, children: [3,4]};// CAT this.rules[31].opcodes[3] = {type: 4, index: 32};// RNM(cardinality) this.rules[31].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[5] = {type: 3, min: 0, max: 1};// REP this.rules[31].opcodes[6] = {type: 2, children: [7,8]};// CAT this.rules[31].opcodes[7] = {type: 4, index: 35};// RNM(reverseFlag) this.rules[31].opcodes[8] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[9] = {type: 3, min: 0, max: 1};// REP this.rules[31].opcodes[10] = {type: 2, children: [11,12]};// CAT this.rules[31].opcodes[11] = {type: 4, index: 36};// RNM(attributeOperator) this.rules[31].opcodes[12] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[13] = {type: 4, index: 37};// RNM(attributeName) this.rules[31].opcodes[14] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[15] = {type: 1, children: [16,20,24]};// ALT this.rules[31].opcodes[16] = {type: 2, children: [17,18,19]};// CAT this.rules[31].opcodes[17] = {type: 4, index: 39};// RNM(expressionComparisonOperator) this.rules[31].opcodes[18] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[19] = {type: 4, index: 38};// RNM(expressionConstraintValue) this.rules[31].opcodes[20] = {type: 2, children: [21,22,23]};// CAT this.rules[31].opcodes[21] = {type: 4, index: 40};// RNM(numericComparisonOperator) this.rules[31].opcodes[22] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[23] = {type: 4, index: 42};// RNM(numericValue) this.rules[31].opcodes[24] = {type: 2, children: [25,26,27]};// CAT this.rules[31].opcodes[25] = {type: 4, index: 41};// RNM(stringComparisonOperator) this.rules[31].opcodes[26] = {type: 4, index: 48};// RNM(ws) this.rules[31].opcodes[27] = {type: 4, index: 43};// RNM(stringValue) /* cardinality */ this.rules[32].opcodes = []; this.rules[32].opcodes[0] = {type: 2, children: [1,2,3,4,7]};// CAT this.rules[32].opcodes[1] = {type: 7, string: [91]};// TLS this.rules[32].opcodes[2] = {type: 4, index: 46};// RNM(nonNegativeIntegerValue) this.rules[32].opcodes[3] = {type: 4, index: 33};// RNM(to) this.rules[32].opcodes[4] = {type: 1, children: [5,6]};// ALT this.rules[32].opcodes[5] = {type: 4, index: 46};// RNM(nonNegativeIntegerValue) this.rules[32].opcodes[6] = {type: 4, index: 34};// RNM(many) this.rules[32].opcodes[7] = {type: 7, string: [93]};// TLS /* to */ this.rules[33].opcodes = []; this.rules[33].opcodes[0] = {type: 7, string: [46,46]};// TLS /* many */ this.rules[34].opcodes = []; this.rules[34].opcodes[0] = {type: 7, string: [42]};// TLS /* reverseFlag */ this.rules[35].opcodes = []; this.rules[35].opcodes[0] = {type: 7, string: [114]};// TLS /* attributeOperator */ this.rules[36].opcodes = []; this.rules[36].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[36].opcodes[1] = {type: 4, index: 16};// RNM(descendantOrSelfOf) this.rules[36].opcodes[2] = {type: 4, index: 15};// RNM(descendantOf) /* attributeName */ this.rules[37].opcodes = []; this.rules[37].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[37].opcodes[1] = {type: 4, index: 10};// RNM(conceptReference) this.rules[37].opcodes[2] = {type: 4, index: 13};// RNM(wildCard) /* expressionConstraintValue */ this.rules[38].opcodes = []; this.rules[38].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[38].opcodes[1] = {type: 4, index: 1};// RNM(simpleExpressionConstraint) this.rules[38].opcodes[2] = {type: 2, children: [3,4,5,8,9]};// CAT this.rules[38].opcodes[3] = {type: 7, string: [40]};// TLS this.rules[38].opcodes[4] = {type: 4, index: 48};// RNM(ws) this.rules[38].opcodes[5] = {type: 1, children: [6,7]};// ALT this.rules[38].opcodes[6] = {type: 4, index: 2};// RNM(refinedExpressionConstraint) this.rules[38].opcodes[7] = {type: 4, index: 3};// RNM(compoundExpressionConstraint) this.rules[38].opcodes[8] = {type: 4, index: 48};// RNM(ws) this.rules[38].opcodes[9] = {type: 7, string: [41]};// TLS /* expressionComparisonOperator */ this.rules[39].opcodes = []; this.rules[39].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[39].opcodes[1] = {type: 7, string: [61]};// TLS this.rules[39].opcodes[2] = {type: 7, string: [33,61]};// TLS /* numericComparisonOperator */ this.rules[40].opcodes = []; this.rules[40].opcodes[0] = {type: 1, children: [1,2,3,4,5,6]};// ALT this.rules[40].opcodes[1] = {type: 7, string: [61]};// TLS this.rules[40].opcodes[2] = {type: 7, string: [33,61]};// TLS this.rules[40].opcodes[3] = {type: 7, string: [60,61]};// TLS this.rules[40].opcodes[4] = {type: 7, string: [60]};// TLS this.rules[40].opcodes[5] = {type: 7, string: [62,61]};// TLS this.rules[40].opcodes[6] = {type: 7, string: [62]};// TLS /* stringComparisonOperator */ this.rules[41].opcodes = []; this.rules[41].opcodes[0] = {type: 1, children: [1,2]};// ALT this.rules[41].opcodes[1] = {type: 7, string: [61]};// TLS this.rules[41].opcodes[2] = {type: 7, string: [33,61]};// TLS /* numericValue */ this.rules[42].opcodes = []; this.rules[42].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[42].opcodes[1] = {type: 7, string: [35]};// TLS this.rules[42].opcodes[2] = {type: 1, children: [3,4]};// ALT this.rules[42].opcodes[3] = {type: 4, index: 45};// RNM(decimalValue) this.rules[42].opcodes[4] = {type: 4, index: 44};// RNM(integerValue) /* stringValue */ this.rules[43].opcodes = []; this.rules[43].opcodes[0] = {type: 2, children: [1,2,6]};// CAT this.rules[43].opcodes[1] = {type: 4, index: 54};// RNM(QM) this.rules[43].opcodes[2] = {type: 3, min: 1, max: Infinity};// REP this.rules[43].opcodes[3] = {type: 1, children: [4,5]};// ALT this.rules[43].opcodes[4] = {type: 4, index: 60};// RNM(anyNonEscapedChar) this.rules[43].opcodes[5] = {type: 4, index: 61};// RNM(escapedChar) this.rules[43].opcodes[6] = {type: 4, index: 54};// RNM(QM) /* integerValue */ this.rules[44].opcodes = []; this.rules[44].opcodes[0] = {type: 1, children: [1,9]};// ALT this.rules[44].opcodes[1] = {type: 2, children: [2,6,7]};// CAT this.rules[44].opcodes[2] = {type: 3, min: 0, max: 1};// REP this.rules[44].opcodes[3] = {type: 1, children: [4,5]};// ALT this.rules[44].opcodes[4] = {type: 7, string: [45]};// TLS this.rules[44].opcodes[5] = {type: 7, string: [43]};// TLS this.rules[44].opcodes[6] = {type: 4, index: 58};// RNM(digitNonZero) this.rules[44].opcodes[7] = {type: 3, min: 0, max: Infinity};// REP this.rules[44].opcodes[8] = {type: 4, index: 56};// RNM(digit) this.rules[44].opcodes[9] = {type: 4, index: 57};// RNM(zero) /* decimalValue */ this.rules[45].opcodes = []; this.rules[45].opcodes[0] = {type: 2, children: [1,2,3]};// CAT this.rules[45].opcodes[1] = {type: 4, index: 44};// RNM(integerValue) this.rules[45].opcodes[2] = {type: 7, string: [46]};// TLS this.rules[45].opcodes[3] = {type: 3, min: 1, max: Infinity};// REP this.rules[45].opcodes[4] = {type: 4, index: 56};// RNM(digit) /* nonNegativeIntegerValue */ this.rules[46].opcodes = []; this.rules[46].opcodes[0] = {type: 1, children: [1,5]};// ALT this.rules[46].opcodes[1] = {type: 2, children: [2,3]};// CAT this.rules[46].opcodes[2] = {type: 4, index: 58};// RNM(digitNonZero) this.rules[46].opcodes[3] = {type: 3, min: 0, max: Infinity};// REP this.rules[46].opcodes[4] = {type: 4, index: 56};// RNM(digit) this.rules[46].opcodes[5] = {type: 4, index: 57};// RNM(zero) /* sctId */ this.rules[47].opcodes = []; this.rules[47].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[47].opcodes[1] = {type: 4, index: 58};// RNM(digitNonZero) this.rules[47].opcodes[2] = {type: 3, min: 5, max: 17};// REP this.rules[47].opcodes[3] = {type: 4, index: 56};// RNM(digit) /* ws */ this.rules[48].opcodes = []; this.rules[48].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP this.rules[48].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT this.rules[48].opcodes[2] = {type: 4, index: 50};// RNM(SP) this.rules[48].opcodes[3] = {type: 4, index: 51};// RNM(HTAB) this.rules[48].opcodes[4] = {type: 4, index: 52};// RNM(CR) this.rules[48].opcodes[5] = {type: 4, index: 53};// RNM(LF) /* mws */ this.rules[49].opcodes = []; this.rules[49].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP this.rules[49].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT this.rules[49].opcodes[2] = {type: 4, index: 50};// RNM(SP) this.rules[49].opcodes[3] = {type: 4, index: 51};// RNM(HTAB) this.rules[49].opcodes[4] = {type: 4, index: 52};// RNM(CR) this.rules[49].opcodes[5] = {type: 4, index: 53};// RNM(LF) /* SP */ this.rules[50].opcodes = []; this.rules[50].opcodes[0] = {type: 6, string: [32]};// TBS /* HTAB */ this.rules[51].opcodes = []; this.rules[51].opcodes[0] = {type: 6, string: [9]};// TBS /* CR */ this.rules[52].opcodes = []; this.rules[52].opcodes[0] = {type: 6, string: [13]};// TBS /* LF */ this.rules[53].opcodes = []; this.rules[53].opcodes[0] = {type: 6, string: [10]};// TBS /* QM */ this.rules[54].opcodes = []; this.rules[54].opcodes[0] = {type: 6, string: [34]};// TBS /* BS */ this.rules[55].opcodes = []; this.rules[55].opcodes[0] = {type: 6, string: [92]};// TBS /* digit */ this.rules[56].opcodes = []; this.rules[56].opcodes[0] = {type: 5, min: 48, max: 57};// TRG /* zero */ this.rules[57].opcodes = []; this.rules[57].opcodes[0] = {type: 6, string: [48]};// TBS /* digitNonZero */ this.rules[58].opcodes = []; this.rules[58].opcodes[0] = {type: 5, min: 49, max: 57};// TRG /* nonwsNonPipe */ this.rules[59].opcodes = []; this.rules[59].opcodes[0] = {type: 1, children: [1,2,3,4,5]};// ALT this.rules[59].opcodes[1] = {type: 5, min: 33, max: 123};// TRG this.rules[59].opcodes[2] = {type: 5, min: 125, max: 126};// TRG this.rules[59].opcodes[3] = {type: 4, index: 62};// RNM(UTF8-2) this.rules[59].opcodes[4] = {type: 4, index: 63};// RNM(UTF8-3) this.rules[59].opcodes[5] = {type: 4, index: 64};// RNM(UTF8-4) /* anyNonEscapedChar */ this.rules[60].opcodes = []; this.rules[60].opcodes[0] = {type: 1, children: [1,2,3,4,5,6,7,8,9]};// ALT this.rules[60].opcodes[1] = {type: 4, index: 51};// RNM(HTAB) this.rules[60].opcodes[2] = {type: 4, index: 52};// RNM(CR) this.rules[60].opcodes[3] = {type: 4, index: 53};// RNM(LF) this.rules[60].opcodes[4] = {type: 5, min: 32, max: 33};// TRG this.rules[60].opcodes[5] = {type: 5, min: 35, max: 91};// TRG this.rules[60].opcodes[6] = {type: 5, min: 93, max: 126};// TRG this.rules[60].opcodes[7] = {type: 4, index: 62};// RNM(UTF8-2) this.rules[60].opcodes[8] = {type: 4, index: 63};// RNM(UTF8-3) this.rules[60].opcodes[9] = {type: 4, index: 64};// RNM(UTF8-4) /* escapedChar */ this.rules[61].opcodes = []; this.rules[61].opcodes[0] = {type: 1, children: [1,4]};// ALT this.rules[61].opcodes[1] = {type: 2, children: [2,3]};// CAT this.rules[61].opcodes[2] = {type: 4, index: 55};// RNM(BS) this.rules[61].opcodes[3] = {type: 4, index: 54};// RNM(QM) this.rules[61].opcodes[4] = {type: 2, children: [5,6]};// CAT this.rules[61].opcodes[5] = {type: 4, index: 55};// RNM(BS) this.rules[61].opcodes[6] = {type: 4, index: 55};// RNM(BS) /* UTF8-2 */ this.rules[62].opcodes = []; this.rules[62].opcodes[0] = {type: 2, children: [1,2]};// CAT this.rules[62].opcodes[1] = {type: 5, min: 194, max: 223};// TRG this.rules[62].opcodes[2] = {type: 4, index: 65};// RNM(UTF8-tail) /* UTF8-3 */ this.rules[63].opcodes = []; this.rules[63].opcodes[0] = {type: 1, children: [1,5,9,13]};// ALT this.rules[63].opcodes[1] = {type: 2, children: [2,3,4]};// CAT this.rules[63].opcodes[2] = {type: 6, string: [224]};// TBS this.rules[63].opcodes[3] = {type: 5, min: 160, max: 191};// TRG this.rules[63].opcodes[4] = {type: 4, index: 65};// RNM(UTF8-tail) this.rules[63].opcodes[5] = {type: 2, children: [6,7]};// CAT this.rules[63].opcodes[6] = {type: 5, min: 225, max: 236};// TRG this.rules[63].opcodes[7] = {type: 3, min: 2, max: 2};// REP this.rules[63].opcodes[8] = {type: 4, index: 65};// RNM(UTF8-tail) this.rules[63].opcodes[9] = {type: 2, children: [10,11,12]};// CAT this.rules[63].opcodes[10] = {type: 6, string: [237]};// TBS this.rules[63].opcodes[11] = {type: 5, min: 128, max: 159};// TRG this.rules[63].opcodes[12] = {type: 4, index: 65};// RNM(UTF8-tail) this.rules[63].opcodes[13] = {type: 2, children: [14,15]};// CAT this.rules[63].opcodes[14] = {type: 5, min: 238, max: 239};// TRG this.rules[63].opcodes[15] = {type: 3, min: 2, max: 2};// REP this.rules[63].opcodes[16] = {type: 4, index: 65};// RNM(UTF8-tail) /* UTF8-4 */ this.rules[64].opcodes = []; this.rules[64].opcodes[0] = {type: 1, children: [1,6,10]};// ALT this.rules[64].opcodes[1] = {type: 2, children: [2,3,4]};// CAT this.rules[64].opcodes[2] = {type: 6, string: [240]};// TBS this.rules[64].opcodes[3] = {type: 5, min: 144, max: 191};// TRG this.rules[64].opcodes[4] = {type: 3, min: 2, max: 2};// REP this.rules[64].opcodes[5] = {type: 4, index: 65};// RNM(UTF8-tail) this.rules[64].opcodes[6] = {type: 2, children: [7,8]};// CAT this.rules[64].opcodes[7] = {type: 5, min: 241, max: 243};// TRG this.rules[64].opcodes[8] = {type: 3, min: 3, max: 3};// REP this.rules[64].opcodes[9] = {type: 4, index: 65};// RNM(UTF8-tail) this.rules[64].opcodes[10] = {type: 2, children: [11,12,13]};// CAT this.rules[64].opcodes[11] = {type: 6, string: [244]};// TBS this.rules[64].opcodes[12] = {type: 5, min: 128, max: 143};// TRG this.rules[64].opcodes[13] = {type: 3, min: 2, max: 2};// REP this.rules[64].opcodes[14] = {type: 4, index: 65};// RNM(UTF8-tail) /* UTF8-tail */ this.rules[65].opcodes = []; this.rules[65].opcodes[0] = {type: 5, min: 128, max: 191};// TRG // The `toString()` function will display the original grammar file(s) that produced these opcodes. this.toString = function(){ var str = ""; str += "expressionConstraint = ws ( refinedExpressionConstraint / compoundExpressionConstraint / simpleExpressionConstraint ) ws\n"; str += "simpleExpressionConstraint = [constraintOperator ws] focusConcept \n"; str += "refinedExpressionConstraint = simpleExpressionConstraint ws \":\" ws refinement\n"; str += "compoundExpressionConstraint = conjunctionExpressionConstraint / disjunctionExpressionConstraint / exclusionExpressionConstraint\n"; str += "conjunctionExpressionConstraint = subExpressionConstraint 1*(ws conjunction ws subExpressionConstraint)\n"; str += "disjunctionExpressionConstraint = subExpressionConstraint 1*(ws disjunction ws subExpressionConstraint)\n"; str += "exclusionExpressionConstraint = subExpressionConstraint ws exclusion ws subExpressionConstraint\n"; str += "subExpressionConstraint = simpleExpressionConstraint / \"(\" ws (compoundExpressionConstraint / refinedExpressionConstraint) ws \")\"\n"; str += "focusConcept = [ memberOf ws ] (conceptReference / wildCard) \n"; str += "memberOf = \"^\"\n"; str += "conceptReference = conceptId [ws \"|\" ws term ws \"|\"]\n"; str += "conceptId = sctId\n"; str += "term = 1*nonwsNonPipe *( 1*SP 1*nonwsNonPipe )\n"; str += "wildCard = \"*\"\n"; str += "constraintOperator = descendantOrSelfOf / descendantOf / ancestorOrSelfOf / ancestorOf\n"; str += "descendantOf = \"<\"\n"; str += "descendantOrSelfOf = \"<<\" \n"; str += "ancestorOf = \">\" \n"; str += "ancestorOrSelfOf = \">>\" \n"; str += "conjunction = ((\"a\"/\"A\") (\"n\"/\"N\") (\"d\"/\"D\") mws) / \",\"\n"; str += "disjunction = (\"o\"/\"O\") (\"r\"/\"R\") mws\n"; str += "exclusion = (\"m\"/\"M\") (\"i\"/\"I\") (\"n\"/\"N\") (\"u\"/\"U\") (\"s\"/\"S\") mws \n"; str += "refinement = subRefinement ws [conjunctionRefinementSet / disjunctionRefinementSet]\n"; str += "conjunctionRefinementSet = 1*(ws conjunction ws subRefinement)\n"; str += "disjunctionRefinementSet = 1*(ws disjunction ws subRefinement)\n"; str += "subRefinement = attributeSet / attributeGroup / \"(\" ws refinement ws \")\"\n"; str += "attributeSet = subAttributeSet ws [conjunctionAttributeSet / disjunctionAttributeSet]\n"; str += "conjunctionAttributeSet = 1*(ws conjunction ws subAttributeSet)\n"; str += "disjunctionAttributeSet = 1*(ws disjunction ws subAttributeSet)\n"; str += "subAttributeSet = attribute / \"(\" ws attributeSet ws \")\"\n"; str += "attributeGroup = [cardinality ws] \"{\" ws attributeSet ws \"}\"\n"; str += "attribute = [cardinality ws] [reverseFlag ws] [attributeOperator ws] attributeName ws (expressionComparisonOperator ws expressionConstraintValue / numericComparisonOperator ws numericValue / stringComparisonOperator ws stringValue )\n"; str += "cardinality = \"[\" nonNegativeIntegerValue to (nonNegativeIntegerValue / many) \"]\" \n"; str += "to = \"..\"\n"; str += "many = \"*\"\n"; str += "reverseFlag = \"R\"\n"; str += "attributeOperator = descendantOrSelfOf / descendantOf \n"; str += "attributeName = conceptReference / wildCard\n"; str += "expressionConstraintValue = simpleExpressionConstraint / \"(\" ws (refinedExpressionConstraint / compoundExpressionConstraint) ws \")\"\n"; str += "expressionComparisonOperator = \"=\" / \"!=\" \n"; str += "numericComparisonOperator = \"=\" / \"!=\" / \"<=\" / \"<\" / \">=\" / \">\"\n"; str += "stringComparisonOperator = \"=\" / \"!=\" \n"; str += "numericValue = \"#\" ( decimalValue / integerValue)\n"; str += "stringValue = QM 1*(anyNonEscapedChar / escapedChar) QM \n"; str += "integerValue = ( [\"-\"/\"+\"] digitNonZero *digit ) / zero\n"; str += "decimalValue = integerValue \".\" 1*digit\n"; str += "nonNegativeIntegerValue = (digitNonZero *digit ) / zero\n"; str += "sctId = digitNonZero 5*17( digit )\n"; str += "ws = *( SP / HTAB / CR / LF ) ; optional white space\n"; str += "mws = 1*( SP / HTAB / CR / LF ) ; mandatory white space\n"; str += "SP = %x20 ; space\n"; str += "HTAB = %x09 ; tab\n"; str += "CR = %x0D ; carriage return\n"; str += "LF = %x0A ; line feed\n"; str += "QM = %x22 ; quotation mark\n"; str += "BS = %x5C ; back slash\n"; str += "digit = %x30-39\n"; str += "zero = %x30\n"; str += "digitNonZero = %x31-39 \n"; str += "nonwsNonPipe = %x21-7B / %x7D-7E / UTF8-2 / UTF8-3 / UTF8-4\n"; str += "anyNonEscapedChar = HTAB / CR / LF / %x20-21 / %x23-5B / %x5D-7E / UTF8-2 / UTF8-3 / UTF8-4\n"; str += "escapedChar = BS QM / BS BS\n"; str += "UTF8-2 = %xC2-DF UTF8-tail\n"; str += "UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) / %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )\n"; str += "UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) / %xF4 %x80-8F 2( UTF8-tail )\n"; str += "UTF8-tail = %x80-BF\n"; return str; } }