Socket
Socket
Sign inDemoInstall

apg-js

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apg-js - npm Package Compare versions

Comparing version 4.3.0 to 4.4.0

bin/a.sh

2

LICENSE.md
## [2-Clause BSD License](https://opensource.org/licenses/BSD-2-Clause)
<p>
Copyright (c) 2023 Lowell D. Thomas<br>
Copyright (c) 2024 Lowell D. Thomas<br>
All rights reserved.

@@ -6,0 +6,0 @@

{
"name": "apg-js",
"version": "4.3.0",
"version": "4.4.0",
"description": "JavaScript APG, an ABNF Parser Generator",

@@ -9,2 +9,3 @@ "main": "index.js",

"apg": "./bin/apg.sh",
"regen": "./bin/a.sh && ./bin/b.sh && ./bin/c.sh && ./bin/b.sh && ./bin/d.sh",
"apg-conv": "./bin/apg-conv.sh",

@@ -11,0 +12,0 @@ "bundle-apg-conv-api": "./bin/apg-conv-api-bundle.sh",

# JavaScript APG
## 4.4.0 Release Notes
Version 4.4.0 adds an option, `--typescript`, to the APG genererator which will
generate a `typescript`-compatible grammar object. The new script `regen` will
regenerate all the grammar objects in place anytime a change is made to any of
the ABNF grammars or if the generator is modified in any way.
## 4.3.0 Release Notes

@@ -4,0 +11,0 @@

@@ -451,3 +451,3 @@ /* *************************************************************************************

// This object can then be used to construct a parser.
this.toSource = function toSource(lite, name) {
this.toSource = function toSource(config = undefined) {
if (!haveAttributes) {

@@ -459,3 +459,3 @@ throw new Error(`${thisFileName}can't generate parser source - must be preceeded by call to attributes()`);

}
return parser.generateSource(this.chars, this.lines, this.rules, this.udts, lite, name);
return parser.generateSource(this.chars, this.lines, this.rules, this.udts, config);
};

@@ -462,0 +462,0 @@ // Returns a parser grammar object.

@@ -134,4 +134,17 @@ /* *************************************************************************************

// An object instantiated from this constructor is used with the `apg-lib` `parser()` function.
this.generateSource = function generateSource(chars, lines, rules, udts, lite, name) {
this.generateSource = function generateSource(chars, lines, rules, udts, config) {
let source = '';
let typescript = false;
let lite = false;
// config may have multiple grammar object type options in which case
// --typescript > --lite > no options
if (config) {
if (config.typescript) {
typescript = true;
lite = false;
} else if (config.lite) {
typescript = false;
lite = true;
}
}
let i;

@@ -244,10 +257,16 @@ let bkrname;

}
source += '// copyright: Copyright (c) 2023 Lowell D. Thomas, all rights reserved<br>\n';
source += '// copyright: Copyright (c) 2024 Lowell D. Thomas, all rights reserved<br>\n';
source += '// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)<br>\n';
source += '//\n';
source += '// Generated by apg-js, Version 4.3.0 [apg-js](https://github.com/ldthomas/apg-js)\n';
if (name && typeof name === 'string') {
source += `const ${name} = function grammar(){\n`;
} else if (lite) {
source += 'export default function grammar(){\n';
source += '// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)\n';
if (config) {
if (config.funcName) {
source += `const ${config.funcName} = function grammar(){\n`;
} else if (typescript) {
source += 'export function grammar(){\n';
} else if (lite) {
source += 'export default function grammar(){\n';
} else {
source += `module.exports = function grammar(){\n`;
}
} else {

@@ -291,6 +310,4 @@ source += `module.exports = function grammar(){\n`;

source += ' // ```\n';
if (!lite) {
source += ' /* OBJECT IDENTIFIER (for internal parser use) */\n';
source += " this.grammarObject = 'grammarObject';\n";
}
source += ' /* OBJECT IDENTIFIER (for internal parser use) */\n';
source += " this.grammarObject = 'grammarObject';\n";
source += '\n';

@@ -302,3 +319,3 @@ source += ' /* RULES */\n';

thisRule += ii;
thisRule += "] = {name: '";
thisRule += "] = { name: '";
thisRule += rule.name;

@@ -311,3 +328,3 @@ thisRule += "', lower: '";

thisRule += rule.isBkr;
thisRule += '};\n';
thisRule += ' };\n';
source += thisRule;

@@ -322,3 +339,3 @@ });

thisUdt += ii;
thisUdt += "] = {name: '";
thisUdt += "] = { name: '";
thisUdt += udtFunc.name;

@@ -333,3 +350,3 @@ thisUdt += "', lower: '";

thisUdt += udtFunc.isBkr;
thisUdt += '};\n';
thisUdt += ' };\n';
source += thisUdt;

@@ -350,15 +367,15 @@ });

case id.ALT:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${
op.type
}, children: [${op.children.toString()}]};// ALT\n`;
}, children: [${op.children.toString()}] };// ALT\n`;
break;
case id.CAT:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${
op.type
}, children: [${op.children.toString()}]};// CAT\n`;
}, children: [${op.children.toString()}] };// CAT\n`;
break;
case id.RNM:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, index: ${op.index}};// RNM(${
rules[op.index].name
})\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, index: ${
op.index
} };// RNM(${rules[op.index].name})\n`;
break;

@@ -384,43 +401,43 @@ case id.BKR:

source +=
` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, index: ${op.index}, lower: '${bkrlower}'` +
`, bkrCase: ${op.bkrCase}, bkrMode: ${op.bkrMode}};// BKR(\\${bkrname})\n`;
` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, index: ${op.index}, lower: '${bkrlower}'` +
`, bkrCase: ${op.bkrCase}, bkrMode: ${op.bkrMode} };// BKR(\\${bkrname})\n`;
break;
case id.UDT:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, empty: ${op.empty}, index: ${
op.index
}};// UDT(${udts[op.index].name})\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, empty: ${
op.empty
}, index: ${op.index} };// UDT(${udts[op.index].name})\n`;
break;
case id.REP:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, min: ${op.min}, max: ${op.max}};// REP\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, min: ${op.min}, max: ${op.max} };// REP\n`;
break;
case id.AND:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// AND\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// AND\n`;
break;
case id.NOT:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// NOT\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// NOT\n`;
break;
case id.ABG:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// ABG(%^)\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// ABG(%^)\n`;
break;
case id.AEN:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// AEN(%$)\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// AEN(%$)\n`;
break;
case id.BKA:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// BKA\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// BKA\n`;
break;
case id.BKN:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// BKN\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// BKN\n`;
break;
case id.TLS:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${
op.type
}, string: [${op.string.toString()}]};// TLS\n`;
}, string: [${op.string.toString()}] };// TLS\n`;
break;
case id.TBS:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${
op.type
}, string: [${op.string.toString()}]};// TBS\n`;
}, string: [${op.string.toString()}] };// TBS\n`;
break;
case id.TRG:
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, min: ${op.min}, max: ${op.max}};// TRG\n`;
source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, min: ${op.min}, max: ${op.max} };// TRG\n`;
break;

@@ -427,0 +444,0 @@ default:

@@ -1,5 +0,5 @@

// copyright: Copyright (c) 2023 Lowell D. Thomas, all rights reserved<br>
// 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.2.1 [apg-js](https://github.com/ldthomas/apg-js)
// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)
module.exports = function grammar(){

@@ -35,97 +35,97 @@ // ```

this.rules = [];
this.rules[0] = {name: 'File', lower: 'file', index: 0, isBkr: false};
this.rules[1] = {name: 'BlankLine', lower: 'blankline', index: 1, isBkr: false};
this.rules[2] = {name: 'Rule', lower: 'rule', index: 2, isBkr: false};
this.rules[3] = {name: 'RuleLookup', lower: 'rulelookup', index: 3, isBkr: false};
this.rules[4] = {name: 'RuleNameTest', lower: 'rulenametest', index: 4, isBkr: false};
this.rules[5] = {name: 'RuleName', lower: 'rulename', index: 5, isBkr: false};
this.rules[6] = {name: 'RuleNameError', lower: 'rulenameerror', index: 6, isBkr: false};
this.rules[7] = {name: 'DefinedAsTest', lower: 'definedastest', index: 7, isBkr: false};
this.rules[8] = {name: 'DefinedAsError', lower: 'definedaserror', index: 8, isBkr: false};
this.rules[9] = {name: 'DefinedAs', lower: 'definedas', index: 9, isBkr: false};
this.rules[10] = {name: 'Defined', lower: 'defined', index: 10, isBkr: false};
this.rules[11] = {name: 'IncAlt', lower: 'incalt', index: 11, isBkr: false};
this.rules[12] = {name: 'RuleError', lower: 'ruleerror', index: 12, isBkr: false};
this.rules[13] = {name: 'LineEndError', lower: 'lineenderror', index: 13, isBkr: false};
this.rules[14] = {name: 'Alternation', lower: 'alternation', index: 14, isBkr: false};
this.rules[15] = {name: 'Concatenation', lower: 'concatenation', index: 15, isBkr: false};
this.rules[16] = {name: 'Repetition', lower: 'repetition', index: 16, isBkr: false};
this.rules[17] = {name: 'Modifier', lower: 'modifier', index: 17, isBkr: false};
this.rules[18] = {name: 'Predicate', lower: 'predicate', index: 18, isBkr: false};
this.rules[19] = {name: 'BasicElement', lower: 'basicelement', index: 19, isBkr: false};
this.rules[20] = {name: 'BasicElementErr', lower: 'basicelementerr', index: 20, isBkr: false};
this.rules[21] = {name: 'Group', lower: 'group', index: 21, isBkr: false};
this.rules[22] = {name: 'GroupError', lower: 'grouperror', index: 22, isBkr: false};
this.rules[23] = {name: 'GroupOpen', lower: 'groupopen', index: 23, isBkr: false};
this.rules[24] = {name: 'GroupClose', lower: 'groupclose', index: 24, isBkr: false};
this.rules[25] = {name: 'Option', lower: 'option', index: 25, isBkr: false};
this.rules[26] = {name: 'OptionError', lower: 'optionerror', index: 26, isBkr: false};
this.rules[27] = {name: 'OptionOpen', lower: 'optionopen', index: 27, isBkr: false};
this.rules[28] = {name: 'OptionClose', lower: 'optionclose', index: 28, isBkr: false};
this.rules[29] = {name: 'RnmOp', lower: 'rnmop', index: 29, isBkr: false};
this.rules[30] = {name: 'BkrOp', lower: 'bkrop', index: 30, isBkr: false};
this.rules[31] = {name: 'bkrModifier', lower: 'bkrmodifier', index: 31, isBkr: false};
this.rules[32] = {name: 'cs', lower: 'cs', index: 32, isBkr: false};
this.rules[33] = {name: 'ci', lower: 'ci', index: 33, isBkr: false};
this.rules[34] = {name: 'um', lower: 'um', index: 34, isBkr: false};
this.rules[35] = {name: 'pm', lower: 'pm', index: 35, isBkr: false};
this.rules[36] = {name: 'bkr-name', lower: 'bkr-name', index: 36, isBkr: false};
this.rules[37] = {name: 'rname', lower: 'rname', index: 37, isBkr: false};
this.rules[38] = {name: 'uname', lower: 'uname', index: 38, isBkr: false};
this.rules[39] = {name: 'ename', lower: 'ename', index: 39, isBkr: false};
this.rules[40] = {name: 'UdtOp', lower: 'udtop', index: 40, isBkr: false};
this.rules[41] = {name: 'udt-non-empty', lower: 'udt-non-empty', index: 41, isBkr: false};
this.rules[42] = {name: 'udt-empty', lower: 'udt-empty', index: 42, isBkr: false};
this.rules[43] = {name: 'RepOp', lower: 'repop', index: 43, isBkr: false};
this.rules[44] = {name: 'AltOp', lower: 'altop', index: 44, isBkr: false};
this.rules[45] = {name: 'CatOp', lower: 'catop', index: 45, isBkr: false};
this.rules[46] = {name: 'StarOp', lower: 'starop', index: 46, isBkr: false};
this.rules[47] = {name: 'AndOp', lower: 'andop', index: 47, isBkr: false};
this.rules[48] = {name: 'NotOp', lower: 'notop', index: 48, isBkr: false};
this.rules[49] = {name: 'BkaOp', lower: 'bkaop', index: 49, isBkr: false};
this.rules[50] = {name: 'BknOp', lower: 'bknop', index: 50, isBkr: false};
this.rules[51] = {name: 'AbgOp', lower: 'abgop', index: 51, isBkr: false};
this.rules[52] = {name: 'AenOp', lower: 'aenop', index: 52, isBkr: false};
this.rules[53] = {name: 'TrgOp', lower: 'trgop', index: 53, isBkr: false};
this.rules[54] = {name: 'TbsOp', lower: 'tbsop', index: 54, isBkr: false};
this.rules[55] = {name: 'TlsOp', lower: 'tlsop', index: 55, isBkr: false};
this.rules[56] = {name: 'TlsCase', lower: 'tlscase', index: 56, isBkr: false};
this.rules[57] = {name: 'TlsOpen', lower: 'tlsopen', index: 57, isBkr: false};
this.rules[58] = {name: 'TlsClose', lower: 'tlsclose', index: 58, isBkr: false};
this.rules[59] = {name: 'TlsString', lower: 'tlsstring', index: 59, isBkr: false};
this.rules[60] = {name: 'StringTab', lower: 'stringtab', index: 60, isBkr: false};
this.rules[61] = {name: 'ClsOp', lower: 'clsop', index: 61, isBkr: false};
this.rules[62] = {name: 'ClsOpen', lower: 'clsopen', index: 62, isBkr: false};
this.rules[63] = {name: 'ClsClose', lower: 'clsclose', index: 63, isBkr: false};
this.rules[64] = {name: 'ClsString', lower: 'clsstring', index: 64, isBkr: false};
this.rules[65] = {name: 'ProsVal', lower: 'prosval', index: 65, isBkr: false};
this.rules[66] = {name: 'ProsValOpen', lower: 'prosvalopen', index: 66, isBkr: false};
this.rules[67] = {name: 'ProsValString', lower: 'prosvalstring', index: 67, isBkr: false};
this.rules[68] = {name: 'ProsValClose', lower: 'prosvalclose', index: 68, isBkr: false};
this.rules[69] = {name: 'rep-min', lower: 'rep-min', index: 69, isBkr: false};
this.rules[70] = {name: 'rep-min-max', lower: 'rep-min-max', index: 70, isBkr: false};
this.rules[71] = {name: 'rep-max', lower: 'rep-max', index: 71, isBkr: false};
this.rules[72] = {name: 'rep-num', lower: 'rep-num', index: 72, isBkr: false};
this.rules[73] = {name: 'dString', lower: 'dstring', index: 73, isBkr: false};
this.rules[74] = {name: 'xString', lower: 'xstring', index: 74, isBkr: false};
this.rules[75] = {name: 'bString', lower: 'bstring', index: 75, isBkr: false};
this.rules[76] = {name: 'Dec', lower: 'dec', index: 76, isBkr: false};
this.rules[77] = {name: 'Hex', lower: 'hex', index: 77, isBkr: false};
this.rules[78] = {name: 'Bin', lower: 'bin', index: 78, isBkr: false};
this.rules[79] = {name: 'dmin', lower: 'dmin', index: 79, isBkr: false};
this.rules[80] = {name: 'dmax', lower: 'dmax', index: 80, isBkr: false};
this.rules[81] = {name: 'bmin', lower: 'bmin', index: 81, isBkr: false};
this.rules[82] = {name: 'bmax', lower: 'bmax', index: 82, isBkr: false};
this.rules[83] = {name: 'xmin', lower: 'xmin', index: 83, isBkr: false};
this.rules[84] = {name: 'xmax', lower: 'xmax', index: 84, isBkr: false};
this.rules[85] = {name: 'dnum', lower: 'dnum', index: 85, isBkr: false};
this.rules[86] = {name: 'bnum', lower: 'bnum', index: 86, isBkr: false};
this.rules[87] = {name: 'xnum', lower: 'xnum', index: 87, isBkr: false};
this.rules[88] = {name: 'alphanum', lower: 'alphanum', index: 88, isBkr: false};
this.rules[89] = {name: 'owsp', lower: 'owsp', index: 89, isBkr: false};
this.rules[90] = {name: 'wsp', lower: 'wsp', index: 90, isBkr: false};
this.rules[91] = {name: 'space', lower: 'space', index: 91, isBkr: false};
this.rules[92] = {name: 'comment', lower: 'comment', index: 92, isBkr: false};
this.rules[93] = {name: 'LineEnd', lower: 'lineend', index: 93, isBkr: false};
this.rules[94] = {name: 'LineContinue', lower: 'linecontinue', index: 94, isBkr: false};
this.rules[0] = { name: 'File', lower: 'file', index: 0, isBkr: false };
this.rules[1] = { name: 'BlankLine', lower: 'blankline', index: 1, isBkr: false };
this.rules[2] = { name: 'Rule', lower: 'rule', index: 2, isBkr: false };
this.rules[3] = { name: 'RuleLookup', lower: 'rulelookup', index: 3, isBkr: false };
this.rules[4] = { name: 'RuleNameTest', lower: 'rulenametest', index: 4, isBkr: false };
this.rules[5] = { name: 'RuleName', lower: 'rulename', index: 5, isBkr: false };
this.rules[6] = { name: 'RuleNameError', lower: 'rulenameerror', index: 6, isBkr: false };
this.rules[7] = { name: 'DefinedAsTest', lower: 'definedastest', index: 7, isBkr: false };
this.rules[8] = { name: 'DefinedAsError', lower: 'definedaserror', index: 8, isBkr: false };
this.rules[9] = { name: 'DefinedAs', lower: 'definedas', index: 9, isBkr: false };
this.rules[10] = { name: 'Defined', lower: 'defined', index: 10, isBkr: false };
this.rules[11] = { name: 'IncAlt', lower: 'incalt', index: 11, isBkr: false };
this.rules[12] = { name: 'RuleError', lower: 'ruleerror', index: 12, isBkr: false };
this.rules[13] = { name: 'LineEndError', lower: 'lineenderror', index: 13, isBkr: false };
this.rules[14] = { name: 'Alternation', lower: 'alternation', index: 14, isBkr: false };
this.rules[15] = { name: 'Concatenation', lower: 'concatenation', index: 15, isBkr: false };
this.rules[16] = { name: 'Repetition', lower: 'repetition', index: 16, isBkr: false };
this.rules[17] = { name: 'Modifier', lower: 'modifier', index: 17, isBkr: false };
this.rules[18] = { name: 'Predicate', lower: 'predicate', index: 18, isBkr: false };
this.rules[19] = { name: 'BasicElement', lower: 'basicelement', index: 19, isBkr: false };
this.rules[20] = { name: 'BasicElementErr', lower: 'basicelementerr', index: 20, isBkr: false };
this.rules[21] = { name: 'Group', lower: 'group', index: 21, isBkr: false };
this.rules[22] = { name: 'GroupError', lower: 'grouperror', index: 22, isBkr: false };
this.rules[23] = { name: 'GroupOpen', lower: 'groupopen', index: 23, isBkr: false };
this.rules[24] = { name: 'GroupClose', lower: 'groupclose', index: 24, isBkr: false };
this.rules[25] = { name: 'Option', lower: 'option', index: 25, isBkr: false };
this.rules[26] = { name: 'OptionError', lower: 'optionerror', index: 26, isBkr: false };
this.rules[27] = { name: 'OptionOpen', lower: 'optionopen', index: 27, isBkr: false };
this.rules[28] = { name: 'OptionClose', lower: 'optionclose', index: 28, isBkr: false };
this.rules[29] = { name: 'RnmOp', lower: 'rnmop', index: 29, isBkr: false };
this.rules[30] = { name: 'BkrOp', lower: 'bkrop', index: 30, isBkr: false };
this.rules[31] = { name: 'bkrModifier', lower: 'bkrmodifier', index: 31, isBkr: false };
this.rules[32] = { name: 'cs', lower: 'cs', index: 32, isBkr: false };
this.rules[33] = { name: 'ci', lower: 'ci', index: 33, isBkr: false };
this.rules[34] = { name: 'um', lower: 'um', index: 34, isBkr: false };
this.rules[35] = { name: 'pm', lower: 'pm', index: 35, isBkr: false };
this.rules[36] = { name: 'bkr-name', lower: 'bkr-name', index: 36, isBkr: false };
this.rules[37] = { name: 'rname', lower: 'rname', index: 37, isBkr: false };
this.rules[38] = { name: 'uname', lower: 'uname', index: 38, isBkr: false };
this.rules[39] = { name: 'ename', lower: 'ename', index: 39, isBkr: false };
this.rules[40] = { name: 'UdtOp', lower: 'udtop', index: 40, isBkr: false };
this.rules[41] = { name: 'udt-non-empty', lower: 'udt-non-empty', index: 41, isBkr: false };
this.rules[42] = { name: 'udt-empty', lower: 'udt-empty', index: 42, isBkr: false };
this.rules[43] = { name: 'RepOp', lower: 'repop', index: 43, isBkr: false };
this.rules[44] = { name: 'AltOp', lower: 'altop', index: 44, isBkr: false };
this.rules[45] = { name: 'CatOp', lower: 'catop', index: 45, isBkr: false };
this.rules[46] = { name: 'StarOp', lower: 'starop', index: 46, isBkr: false };
this.rules[47] = { name: 'AndOp', lower: 'andop', index: 47, isBkr: false };
this.rules[48] = { name: 'NotOp', lower: 'notop', index: 48, isBkr: false };
this.rules[49] = { name: 'BkaOp', lower: 'bkaop', index: 49, isBkr: false };
this.rules[50] = { name: 'BknOp', lower: 'bknop', index: 50, isBkr: false };
this.rules[51] = { name: 'AbgOp', lower: 'abgop', index: 51, isBkr: false };
this.rules[52] = { name: 'AenOp', lower: 'aenop', index: 52, isBkr: false };
this.rules[53] = { name: 'TrgOp', lower: 'trgop', index: 53, isBkr: false };
this.rules[54] = { name: 'TbsOp', lower: 'tbsop', index: 54, isBkr: false };
this.rules[55] = { name: 'TlsOp', lower: 'tlsop', index: 55, isBkr: false };
this.rules[56] = { name: 'TlsCase', lower: 'tlscase', index: 56, isBkr: false };
this.rules[57] = { name: 'TlsOpen', lower: 'tlsopen', index: 57, isBkr: false };
this.rules[58] = { name: 'TlsClose', lower: 'tlsclose', index: 58, isBkr: false };
this.rules[59] = { name: 'TlsString', lower: 'tlsstring', index: 59, isBkr: false };
this.rules[60] = { name: 'StringTab', lower: 'stringtab', index: 60, isBkr: false };
this.rules[61] = { name: 'ClsOp', lower: 'clsop', index: 61, isBkr: false };
this.rules[62] = { name: 'ClsOpen', lower: 'clsopen', index: 62, isBkr: false };
this.rules[63] = { name: 'ClsClose', lower: 'clsclose', index: 63, isBkr: false };
this.rules[64] = { name: 'ClsString', lower: 'clsstring', index: 64, isBkr: false };
this.rules[65] = { name: 'ProsVal', lower: 'prosval', index: 65, isBkr: false };
this.rules[66] = { name: 'ProsValOpen', lower: 'prosvalopen', index: 66, isBkr: false };
this.rules[67] = { name: 'ProsValString', lower: 'prosvalstring', index: 67, isBkr: false };
this.rules[68] = { name: 'ProsValClose', lower: 'prosvalclose', index: 68, isBkr: false };
this.rules[69] = { name: 'rep-min', lower: 'rep-min', index: 69, isBkr: false };
this.rules[70] = { name: 'rep-min-max', lower: 'rep-min-max', index: 70, isBkr: false };
this.rules[71] = { name: 'rep-max', lower: 'rep-max', index: 71, isBkr: false };
this.rules[72] = { name: 'rep-num', lower: 'rep-num', index: 72, isBkr: false };
this.rules[73] = { name: 'dString', lower: 'dstring', index: 73, isBkr: false };
this.rules[74] = { name: 'xString', lower: 'xstring', index: 74, isBkr: false };
this.rules[75] = { name: 'bString', lower: 'bstring', index: 75, isBkr: false };
this.rules[76] = { name: 'Dec', lower: 'dec', index: 76, isBkr: false };
this.rules[77] = { name: 'Hex', lower: 'hex', index: 77, isBkr: false };
this.rules[78] = { name: 'Bin', lower: 'bin', index: 78, isBkr: false };
this.rules[79] = { name: 'dmin', lower: 'dmin', index: 79, isBkr: false };
this.rules[80] = { name: 'dmax', lower: 'dmax', index: 80, isBkr: false };
this.rules[81] = { name: 'bmin', lower: 'bmin', index: 81, isBkr: false };
this.rules[82] = { name: 'bmax', lower: 'bmax', index: 82, isBkr: false };
this.rules[83] = { name: 'xmin', lower: 'xmin', index: 83, isBkr: false };
this.rules[84] = { name: 'xmax', lower: 'xmax', index: 84, isBkr: false };
this.rules[85] = { name: 'dnum', lower: 'dnum', index: 85, isBkr: false };
this.rules[86] = { name: 'bnum', lower: 'bnum', index: 86, isBkr: false };
this.rules[87] = { name: 'xnum', lower: 'xnum', index: 87, isBkr: false };
this.rules[88] = { name: 'alphanum', lower: 'alphanum', index: 88, isBkr: false };
this.rules[89] = { name: 'owsp', lower: 'owsp', index: 89, isBkr: false };
this.rules[90] = { name: 'wsp', lower: 'wsp', index: 90, isBkr: false };
this.rules[91] = { name: 'space', lower: 'space', index: 91, isBkr: false };
this.rules[92] = { name: 'comment', lower: 'comment', index: 92, isBkr: false };
this.rules[93] = { name: 'LineEnd', lower: 'lineend', index: 93, isBkr: false };
this.rules[94] = { name: 'LineContinue', lower: 'linecontinue', index: 94, isBkr: false };

@@ -138,656 +138,656 @@ /* UDTS */

this.rules[0].opcodes = [];
this.rules[0].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[0].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[0].opcodes[2] = {type: 4, index: 1};// RNM(BlankLine)
this.rules[0].opcodes[3] = {type: 4, index: 2};// RNM(Rule)
this.rules[0].opcodes[4] = {type: 4, index: 12};// RNM(RuleError)
this.rules[0].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[0].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[0].opcodes[2] = { type: 4, index: 1 };// RNM(BlankLine)
this.rules[0].opcodes[3] = { type: 4, index: 2 };// RNM(Rule)
this.rules[0].opcodes[4] = { type: 4, index: 12 };// RNM(RuleError)
/* BlankLine */
this.rules[1].opcodes = [];
this.rules[1].opcodes[0] = {type: 2, children: [1,5,7]};// CAT
this.rules[1].opcodes[1] = {type: 3, min: 0, max: Infinity};// REP
this.rules[1].opcodes[2] = {type: 1, children: [3,4]};// ALT
this.rules[1].opcodes[3] = {type: 6, string: [32]};// TBS
this.rules[1].opcodes[4] = {type: 6, string: [9]};// TBS
this.rules[1].opcodes[5] = {type: 3, min: 0, max: 1};// REP
this.rules[1].opcodes[6] = {type: 4, index: 92};// RNM(comment)
this.rules[1].opcodes[7] = {type: 4, index: 93};// RNM(LineEnd)
this.rules[1].opcodes[0] = { type: 2, children: [1,5,7] };// CAT
this.rules[1].opcodes[1] = { type: 3, min: 0, max: Infinity };// REP
this.rules[1].opcodes[2] = { type: 1, children: [3,4] };// ALT
this.rules[1].opcodes[3] = { type: 6, string: [32] };// TBS
this.rules[1].opcodes[4] = { type: 6, string: [9] };// TBS
this.rules[1].opcodes[5] = { type: 3, min: 0, max: 1 };// REP
this.rules[1].opcodes[6] = { type: 4, index: 92 };// RNM(comment)
this.rules[1].opcodes[7] = { type: 4, index: 93 };// RNM(LineEnd)
/* Rule */
this.rules[2].opcodes = [];
this.rules[2].opcodes[0] = {type: 2, children: [1,2,3,4]};// CAT
this.rules[2].opcodes[1] = {type: 4, index: 3};// RNM(RuleLookup)
this.rules[2].opcodes[2] = {type: 4, index: 89};// RNM(owsp)
this.rules[2].opcodes[3] = {type: 4, index: 14};// RNM(Alternation)
this.rules[2].opcodes[4] = {type: 1, children: [5,8]};// ALT
this.rules[2].opcodes[5] = {type: 2, children: [6,7]};// CAT
this.rules[2].opcodes[6] = {type: 4, index: 89};// RNM(owsp)
this.rules[2].opcodes[7] = {type: 4, index: 93};// RNM(LineEnd)
this.rules[2].opcodes[8] = {type: 2, children: [9,10]};// CAT
this.rules[2].opcodes[9] = {type: 4, index: 13};// RNM(LineEndError)
this.rules[2].opcodes[10] = {type: 4, index: 93};// RNM(LineEnd)
this.rules[2].opcodes[0] = { type: 2, children: [1,2,3,4] };// CAT
this.rules[2].opcodes[1] = { type: 4, index: 3 };// RNM(RuleLookup)
this.rules[2].opcodes[2] = { type: 4, index: 89 };// RNM(owsp)
this.rules[2].opcodes[3] = { type: 4, index: 14 };// RNM(Alternation)
this.rules[2].opcodes[4] = { type: 1, children: [5,8] };// ALT
this.rules[2].opcodes[5] = { type: 2, children: [6,7] };// CAT
this.rules[2].opcodes[6] = { type: 4, index: 89 };// RNM(owsp)
this.rules[2].opcodes[7] = { type: 4, index: 93 };// RNM(LineEnd)
this.rules[2].opcodes[8] = { type: 2, children: [9,10] };// CAT
this.rules[2].opcodes[9] = { type: 4, index: 13 };// RNM(LineEndError)
this.rules[2].opcodes[10] = { type: 4, index: 93 };// RNM(LineEnd)
/* RuleLookup */
this.rules[3].opcodes = [];
this.rules[3].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[3].opcodes[1] = {type: 4, index: 4};// RNM(RuleNameTest)
this.rules[3].opcodes[2] = {type: 4, index: 89};// RNM(owsp)
this.rules[3].opcodes[3] = {type: 4, index: 7};// RNM(DefinedAsTest)
this.rules[3].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[3].opcodes[1] = { type: 4, index: 4 };// RNM(RuleNameTest)
this.rules[3].opcodes[2] = { type: 4, index: 89 };// RNM(owsp)
this.rules[3].opcodes[3] = { type: 4, index: 7 };// RNM(DefinedAsTest)
/* RuleNameTest */
this.rules[4].opcodes = [];
this.rules[4].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[4].opcodes[1] = {type: 4, index: 5};// RNM(RuleName)
this.rules[4].opcodes[2] = {type: 4, index: 6};// RNM(RuleNameError)
this.rules[4].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[4].opcodes[1] = { type: 4, index: 5 };// RNM(RuleName)
this.rules[4].opcodes[2] = { type: 4, index: 6 };// RNM(RuleNameError)
/* RuleName */
this.rules[5].opcodes = [];
this.rules[5].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)
this.rules[5].opcodes[0] = { type: 4, index: 88 };// RNM(alphanum)
/* RuleNameError */
this.rules[6].opcodes = [];
this.rules[6].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[6].opcodes[1] = {type: 1, children: [2,3]};// ALT
this.rules[6].opcodes[2] = {type: 5, min: 33, max: 60};// TRG
this.rules[6].opcodes[3] = {type: 5, min: 62, max: 126};// TRG
this.rules[6].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[6].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[6].opcodes[2] = { type: 5, min: 33, max: 60 };// TRG
this.rules[6].opcodes[3] = { type: 5, min: 62, max: 126 };// TRG
/* DefinedAsTest */
this.rules[7].opcodes = [];
this.rules[7].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[7].opcodes[1] = {type: 4, index: 9};// RNM(DefinedAs)
this.rules[7].opcodes[2] = {type: 4, index: 8};// RNM(DefinedAsError)
this.rules[7].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[7].opcodes[1] = { type: 4, index: 9 };// RNM(DefinedAs)
this.rules[7].opcodes[2] = { type: 4, index: 8 };// RNM(DefinedAsError)
/* DefinedAsError */
this.rules[8].opcodes = [];
this.rules[8].opcodes[0] = {type: 3, min: 1, max: 2};// REP
this.rules[8].opcodes[1] = {type: 5, min: 33, max: 126};// TRG
this.rules[8].opcodes[0] = { type: 3, min: 1, max: 2 };// REP
this.rules[8].opcodes[1] = { type: 5, min: 33, max: 126 };// TRG
/* DefinedAs */
this.rules[9].opcodes = [];
this.rules[9].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[9].opcodes[1] = {type: 4, index: 11};// RNM(IncAlt)
this.rules[9].opcodes[2] = {type: 4, index: 10};// RNM(Defined)
this.rules[9].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[9].opcodes[1] = { type: 4, index: 11 };// RNM(IncAlt)
this.rules[9].opcodes[2] = { type: 4, index: 10 };// RNM(Defined)
/* Defined */
this.rules[10].opcodes = [];
this.rules[10].opcodes[0] = {type: 6, string: [61]};// TBS
this.rules[10].opcodes[0] = { type: 6, string: [61] };// TBS
/* IncAlt */
this.rules[11].opcodes = [];
this.rules[11].opcodes[0] = {type: 6, string: [61,47]};// TBS
this.rules[11].opcodes[0] = { type: 6, string: [61,47] };// TBS
/* RuleError */
this.rules[12].opcodes = [];
this.rules[12].opcodes[0] = {type: 2, children: [1,6]};// CAT
this.rules[12].opcodes[1] = {type: 3, min: 1, max: Infinity};// REP
this.rules[12].opcodes[2] = {type: 1, children: [3,4,5]};// ALT
this.rules[12].opcodes[3] = {type: 5, min: 32, max: 126};// TRG
this.rules[12].opcodes[4] = {type: 6, string: [9]};// TBS
this.rules[12].opcodes[5] = {type: 4, index: 94};// RNM(LineContinue)
this.rules[12].opcodes[6] = {type: 4, index: 93};// RNM(LineEnd)
this.rules[12].opcodes[0] = { type: 2, children: [1,6] };// CAT
this.rules[12].opcodes[1] = { type: 3, min: 1, max: Infinity };// REP
this.rules[12].opcodes[2] = { type: 1, children: [3,4,5] };// ALT
this.rules[12].opcodes[3] = { type: 5, min: 32, max: 126 };// TRG
this.rules[12].opcodes[4] = { type: 6, string: [9] };// TBS
this.rules[12].opcodes[5] = { type: 4, index: 94 };// RNM(LineContinue)
this.rules[12].opcodes[6] = { type: 4, index: 93 };// RNM(LineEnd)
/* LineEndError */
this.rules[13].opcodes = [];
this.rules[13].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[13].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[13].opcodes[2] = {type: 5, min: 32, max: 126};// TRG
this.rules[13].opcodes[3] = {type: 6, string: [9]};// TBS
this.rules[13].opcodes[4] = {type: 4, index: 94};// RNM(LineContinue)
this.rules[13].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[13].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[13].opcodes[2] = { type: 5, min: 32, max: 126 };// TRG
this.rules[13].opcodes[3] = { type: 6, string: [9] };// TBS
this.rules[13].opcodes[4] = { type: 4, index: 94 };// RNM(LineContinue)
/* Alternation */
this.rules[14].opcodes = [];
this.rules[14].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[14].opcodes[1] = {type: 4, index: 15};// RNM(Concatenation)
this.rules[14].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP
this.rules[14].opcodes[3] = {type: 2, children: [4,5,6]};// CAT
this.rules[14].opcodes[4] = {type: 4, index: 89};// RNM(owsp)
this.rules[14].opcodes[5] = {type: 4, index: 44};// RNM(AltOp)
this.rules[14].opcodes[6] = {type: 4, index: 15};// RNM(Concatenation)
this.rules[14].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[14].opcodes[1] = { type: 4, index: 15 };// RNM(Concatenation)
this.rules[14].opcodes[2] = { type: 3, min: 0, max: Infinity };// REP
this.rules[14].opcodes[3] = { type: 2, children: [4,5,6] };// CAT
this.rules[14].opcodes[4] = { type: 4, index: 89 };// RNM(owsp)
this.rules[14].opcodes[5] = { type: 4, index: 44 };// RNM(AltOp)
this.rules[14].opcodes[6] = { type: 4, index: 15 };// RNM(Concatenation)
/* Concatenation */
this.rules[15].opcodes = [];
this.rules[15].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[15].opcodes[1] = {type: 4, index: 16};// RNM(Repetition)
this.rules[15].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP
this.rules[15].opcodes[3] = {type: 2, children: [4,5]};// CAT
this.rules[15].opcodes[4] = {type: 4, index: 45};// RNM(CatOp)
this.rules[15].opcodes[5] = {type: 4, index: 16};// RNM(Repetition)
this.rules[15].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[15].opcodes[1] = { type: 4, index: 16 };// RNM(Repetition)
this.rules[15].opcodes[2] = { type: 3, min: 0, max: Infinity };// REP
this.rules[15].opcodes[3] = { type: 2, children: [4,5] };// CAT
this.rules[15].opcodes[4] = { type: 4, index: 45 };// RNM(CatOp)
this.rules[15].opcodes[5] = { type: 4, index: 16 };// RNM(Repetition)
/* Repetition */
this.rules[16].opcodes = [];
this.rules[16].opcodes[0] = {type: 2, children: [1,3]};// CAT
this.rules[16].opcodes[1] = {type: 3, min: 0, max: 1};// REP
this.rules[16].opcodes[2] = {type: 4, index: 17};// RNM(Modifier)
this.rules[16].opcodes[3] = {type: 1, children: [4,5,6,7]};// ALT
this.rules[16].opcodes[4] = {type: 4, index: 21};// RNM(Group)
this.rules[16].opcodes[5] = {type: 4, index: 25};// RNM(Option)
this.rules[16].opcodes[6] = {type: 4, index: 19};// RNM(BasicElement)
this.rules[16].opcodes[7] = {type: 4, index: 20};// RNM(BasicElementErr)
this.rules[16].opcodes[0] = { type: 2, children: [1,3] };// CAT
this.rules[16].opcodes[1] = { type: 3, min: 0, max: 1 };// REP
this.rules[16].opcodes[2] = { type: 4, index: 17 };// RNM(Modifier)
this.rules[16].opcodes[3] = { type: 1, children: [4,5,6,7] };// ALT
this.rules[16].opcodes[4] = { type: 4, index: 21 };// RNM(Group)
this.rules[16].opcodes[5] = { type: 4, index: 25 };// RNM(Option)
this.rules[16].opcodes[6] = { type: 4, index: 19 };// RNM(BasicElement)
this.rules[16].opcodes[7] = { type: 4, index: 20 };// RNM(BasicElementErr)
/* Modifier */
this.rules[17].opcodes = [];
this.rules[17].opcodes[0] = {type: 1, children: [1,5]};// ALT
this.rules[17].opcodes[1] = {type: 2, children: [2,3]};// CAT
this.rules[17].opcodes[2] = {type: 4, index: 18};// RNM(Predicate)
this.rules[17].opcodes[3] = {type: 3, min: 0, max: 1};// REP
this.rules[17].opcodes[4] = {type: 4, index: 43};// RNM(RepOp)
this.rules[17].opcodes[5] = {type: 4, index: 43};// RNM(RepOp)
this.rules[17].opcodes[0] = { type: 1, children: [1,5] };// ALT
this.rules[17].opcodes[1] = { type: 2, children: [2,3] };// CAT
this.rules[17].opcodes[2] = { type: 4, index: 18 };// RNM(Predicate)
this.rules[17].opcodes[3] = { type: 3, min: 0, max: 1 };// REP
this.rules[17].opcodes[4] = { type: 4, index: 43 };// RNM(RepOp)
this.rules[17].opcodes[5] = { type: 4, index: 43 };// RNM(RepOp)
/* Predicate */
this.rules[18].opcodes = [];
this.rules[18].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT
this.rules[18].opcodes[1] = {type: 4, index: 49};// RNM(BkaOp)
this.rules[18].opcodes[2] = {type: 4, index: 50};// RNM(BknOp)
this.rules[18].opcodes[3] = {type: 4, index: 47};// RNM(AndOp)
this.rules[18].opcodes[4] = {type: 4, index: 48};// RNM(NotOp)
this.rules[18].opcodes[0] = { type: 1, children: [1,2,3,4] };// ALT
this.rules[18].opcodes[1] = { type: 4, index: 49 };// RNM(BkaOp)
this.rules[18].opcodes[2] = { type: 4, index: 50 };// RNM(BknOp)
this.rules[18].opcodes[3] = { type: 4, index: 47 };// RNM(AndOp)
this.rules[18].opcodes[4] = { type: 4, index: 48 };// RNM(NotOp)
/* BasicElement */
this.rules[19].opcodes = [];
this.rules[19].opcodes[0] = {type: 1, children: [1,2,3,4,5,6,7,8,9,10]};// ALT
this.rules[19].opcodes[1] = {type: 4, index: 40};// RNM(UdtOp)
this.rules[19].opcodes[2] = {type: 4, index: 29};// RNM(RnmOp)
this.rules[19].opcodes[3] = {type: 4, index: 53};// RNM(TrgOp)
this.rules[19].opcodes[4] = {type: 4, index: 54};// RNM(TbsOp)
this.rules[19].opcodes[5] = {type: 4, index: 55};// RNM(TlsOp)
this.rules[19].opcodes[6] = {type: 4, index: 61};// RNM(ClsOp)
this.rules[19].opcodes[7] = {type: 4, index: 30};// RNM(BkrOp)
this.rules[19].opcodes[8] = {type: 4, index: 51};// RNM(AbgOp)
this.rules[19].opcodes[9] = {type: 4, index: 52};// RNM(AenOp)
this.rules[19].opcodes[10] = {type: 4, index: 65};// RNM(ProsVal)
this.rules[19].opcodes[0] = { type: 1, children: [1,2,3,4,5,6,7,8,9,10] };// ALT
this.rules[19].opcodes[1] = { type: 4, index: 40 };// RNM(UdtOp)
this.rules[19].opcodes[2] = { type: 4, index: 29 };// RNM(RnmOp)
this.rules[19].opcodes[3] = { type: 4, index: 53 };// RNM(TrgOp)
this.rules[19].opcodes[4] = { type: 4, index: 54 };// RNM(TbsOp)
this.rules[19].opcodes[5] = { type: 4, index: 55 };// RNM(TlsOp)
this.rules[19].opcodes[6] = { type: 4, index: 61 };// RNM(ClsOp)
this.rules[19].opcodes[7] = { type: 4, index: 30 };// RNM(BkrOp)
this.rules[19].opcodes[8] = { type: 4, index: 51 };// RNM(AbgOp)
this.rules[19].opcodes[9] = { type: 4, index: 52 };// RNM(AenOp)
this.rules[19].opcodes[10] = { type: 4, index: 65 };// RNM(ProsVal)
/* BasicElementErr */
this.rules[20].opcodes = [];
this.rules[20].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[20].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT
this.rules[20].opcodes[2] = {type: 5, min: 33, max: 40};// TRG
this.rules[20].opcodes[3] = {type: 5, min: 42, max: 46};// TRG
this.rules[20].opcodes[4] = {type: 5, min: 48, max: 92};// TRG
this.rules[20].opcodes[5] = {type: 5, min: 94, max: 126};// TRG
this.rules[20].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[20].opcodes[1] = { type: 1, children: [2,3,4,5] };// ALT
this.rules[20].opcodes[2] = { type: 5, min: 33, max: 40 };// TRG
this.rules[20].opcodes[3] = { type: 5, min: 42, max: 46 };// TRG
this.rules[20].opcodes[4] = { type: 5, min: 48, max: 92 };// TRG
this.rules[20].opcodes[5] = { type: 5, min: 94, max: 126 };// TRG
/* Group */
this.rules[21].opcodes = [];
this.rules[21].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[21].opcodes[1] = {type: 4, index: 23};// RNM(GroupOpen)
this.rules[21].opcodes[2] = {type: 4, index: 14};// RNM(Alternation)
this.rules[21].opcodes[3] = {type: 1, children: [4,5]};// ALT
this.rules[21].opcodes[4] = {type: 4, index: 24};// RNM(GroupClose)
this.rules[21].opcodes[5] = {type: 4, index: 22};// RNM(GroupError)
this.rules[21].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[21].opcodes[1] = { type: 4, index: 23 };// RNM(GroupOpen)
this.rules[21].opcodes[2] = { type: 4, index: 14 };// RNM(Alternation)
this.rules[21].opcodes[3] = { type: 1, children: [4,5] };// ALT
this.rules[21].opcodes[4] = { type: 4, index: 24 };// RNM(GroupClose)
this.rules[21].opcodes[5] = { type: 4, index: 22 };// RNM(GroupError)
/* GroupError */
this.rules[22].opcodes = [];
this.rules[22].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[22].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT
this.rules[22].opcodes[2] = {type: 5, min: 33, max: 40};// TRG
this.rules[22].opcodes[3] = {type: 5, min: 42, max: 46};// TRG
this.rules[22].opcodes[4] = {type: 5, min: 48, max: 92};// TRG
this.rules[22].opcodes[5] = {type: 5, min: 94, max: 126};// TRG
this.rules[22].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[22].opcodes[1] = { type: 1, children: [2,3,4,5] };// ALT
this.rules[22].opcodes[2] = { type: 5, min: 33, max: 40 };// TRG
this.rules[22].opcodes[3] = { type: 5, min: 42, max: 46 };// TRG
this.rules[22].opcodes[4] = { type: 5, min: 48, max: 92 };// TRG
this.rules[22].opcodes[5] = { type: 5, min: 94, max: 126 };// TRG
/* GroupOpen */
this.rules[23].opcodes = [];
this.rules[23].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[23].opcodes[1] = {type: 6, string: [40]};// TBS
this.rules[23].opcodes[2] = {type: 4, index: 89};// RNM(owsp)
this.rules[23].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[23].opcodes[1] = { type: 6, string: [40] };// TBS
this.rules[23].opcodes[2] = { type: 4, index: 89 };// RNM(owsp)
/* GroupClose */
this.rules[24].opcodes = [];
this.rules[24].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[24].opcodes[1] = {type: 4, index: 89};// RNM(owsp)
this.rules[24].opcodes[2] = {type: 6, string: [41]};// TBS
this.rules[24].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[24].opcodes[1] = { type: 4, index: 89 };// RNM(owsp)
this.rules[24].opcodes[2] = { type: 6, string: [41] };// TBS
/* Option */
this.rules[25].opcodes = [];
this.rules[25].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[25].opcodes[1] = {type: 4, index: 27};// RNM(OptionOpen)
this.rules[25].opcodes[2] = {type: 4, index: 14};// RNM(Alternation)
this.rules[25].opcodes[3] = {type: 1, children: [4,5]};// ALT
this.rules[25].opcodes[4] = {type: 4, index: 28};// RNM(OptionClose)
this.rules[25].opcodes[5] = {type: 4, index: 26};// RNM(OptionError)
this.rules[25].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[25].opcodes[1] = { type: 4, index: 27 };// RNM(OptionOpen)
this.rules[25].opcodes[2] = { type: 4, index: 14 };// RNM(Alternation)
this.rules[25].opcodes[3] = { type: 1, children: [4,5] };// ALT
this.rules[25].opcodes[4] = { type: 4, index: 28 };// RNM(OptionClose)
this.rules[25].opcodes[5] = { type: 4, index: 26 };// RNM(OptionError)
/* OptionError */
this.rules[26].opcodes = [];
this.rules[26].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[26].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT
this.rules[26].opcodes[2] = {type: 5, min: 33, max: 40};// TRG
this.rules[26].opcodes[3] = {type: 5, min: 42, max: 46};// TRG
this.rules[26].opcodes[4] = {type: 5, min: 48, max: 92};// TRG
this.rules[26].opcodes[5] = {type: 5, min: 94, max: 126};// TRG
this.rules[26].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[26].opcodes[1] = { type: 1, children: [2,3,4,5] };// ALT
this.rules[26].opcodes[2] = { type: 5, min: 33, max: 40 };// TRG
this.rules[26].opcodes[3] = { type: 5, min: 42, max: 46 };// TRG
this.rules[26].opcodes[4] = { type: 5, min: 48, max: 92 };// TRG
this.rules[26].opcodes[5] = { type: 5, min: 94, max: 126 };// TRG
/* OptionOpen */
this.rules[27].opcodes = [];
this.rules[27].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[27].opcodes[1] = {type: 6, string: [91]};// TBS
this.rules[27].opcodes[2] = {type: 4, index: 89};// RNM(owsp)
this.rules[27].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[27].opcodes[1] = { type: 6, string: [91] };// TBS
this.rules[27].opcodes[2] = { type: 4, index: 89 };// RNM(owsp)
/* OptionClose */
this.rules[28].opcodes = [];
this.rules[28].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[28].opcodes[1] = {type: 4, index: 89};// RNM(owsp)
this.rules[28].opcodes[2] = {type: 6, string: [93]};// TBS
this.rules[28].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[28].opcodes[1] = { type: 4, index: 89 };// RNM(owsp)
this.rules[28].opcodes[2] = { type: 6, string: [93] };// TBS
/* RnmOp */
this.rules[29].opcodes = [];
this.rules[29].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)
this.rules[29].opcodes[0] = { type: 4, index: 88 };// RNM(alphanum)
/* BkrOp */
this.rules[30].opcodes = [];
this.rules[30].opcodes[0] = {type: 2, children: [1,2,4]};// CAT
this.rules[30].opcodes[1] = {type: 6, string: [92]};// TBS
this.rules[30].opcodes[2] = {type: 3, min: 0, max: 1};// REP
this.rules[30].opcodes[3] = {type: 4, index: 31};// RNM(bkrModifier)
this.rules[30].opcodes[4] = {type: 4, index: 36};// RNM(bkr-name)
this.rules[30].opcodes[0] = { type: 2, children: [1,2,4] };// CAT
this.rules[30].opcodes[1] = { type: 6, string: [92] };// TBS
this.rules[30].opcodes[2] = { type: 3, min: 0, max: 1 };// REP
this.rules[30].opcodes[3] = { type: 4, index: 31 };// RNM(bkrModifier)
this.rules[30].opcodes[4] = { type: 4, index: 36 };// RNM(bkr-name)
/* bkrModifier */
this.rules[31].opcodes = [];
this.rules[31].opcodes[0] = {type: 1, children: [1,7,13,19]};// ALT
this.rules[31].opcodes[1] = {type: 2, children: [2,3]};// CAT
this.rules[31].opcodes[2] = {type: 4, index: 32};// RNM(cs)
this.rules[31].opcodes[3] = {type: 3, min: 0, max: 1};// REP
this.rules[31].opcodes[4] = {type: 1, children: [5,6]};// ALT
this.rules[31].opcodes[5] = {type: 4, index: 34};// RNM(um)
this.rules[31].opcodes[6] = {type: 4, index: 35};// RNM(pm)
this.rules[31].opcodes[7] = {type: 2, children: [8,9]};// CAT
this.rules[31].opcodes[8] = {type: 4, index: 33};// RNM(ci)
this.rules[31].opcodes[9] = {type: 3, min: 0, max: 1};// REP
this.rules[31].opcodes[10] = {type: 1, children: [11,12]};// ALT
this.rules[31].opcodes[11] = {type: 4, index: 34};// RNM(um)
this.rules[31].opcodes[12] = {type: 4, index: 35};// RNM(pm)
this.rules[31].opcodes[13] = {type: 2, children: [14,15]};// CAT
this.rules[31].opcodes[14] = {type: 4, index: 34};// RNM(um)
this.rules[31].opcodes[15] = {type: 3, min: 0, max: 1};// REP
this.rules[31].opcodes[16] = {type: 1, children: [17,18]};// ALT
this.rules[31].opcodes[17] = {type: 4, index: 32};// RNM(cs)
this.rules[31].opcodes[18] = {type: 4, index: 33};// RNM(ci)
this.rules[31].opcodes[19] = {type: 2, children: [20,21]};// CAT
this.rules[31].opcodes[20] = {type: 4, index: 35};// RNM(pm)
this.rules[31].opcodes[21] = {type: 3, min: 0, max: 1};// REP
this.rules[31].opcodes[22] = {type: 1, children: [23,24]};// ALT
this.rules[31].opcodes[23] = {type: 4, index: 32};// RNM(cs)
this.rules[31].opcodes[24] = {type: 4, index: 33};// RNM(ci)
this.rules[31].opcodes[0] = { type: 1, children: [1,7,13,19] };// ALT
this.rules[31].opcodes[1] = { type: 2, children: [2,3] };// CAT
this.rules[31].opcodes[2] = { type: 4, index: 32 };// RNM(cs)
this.rules[31].opcodes[3] = { type: 3, min: 0, max: 1 };// REP
this.rules[31].opcodes[4] = { type: 1, children: [5,6] };// ALT
this.rules[31].opcodes[5] = { type: 4, index: 34 };// RNM(um)
this.rules[31].opcodes[6] = { type: 4, index: 35 };// RNM(pm)
this.rules[31].opcodes[7] = { type: 2, children: [8,9] };// CAT
this.rules[31].opcodes[8] = { type: 4, index: 33 };// RNM(ci)
this.rules[31].opcodes[9] = { type: 3, min: 0, max: 1 };// REP
this.rules[31].opcodes[10] = { type: 1, children: [11,12] };// ALT
this.rules[31].opcodes[11] = { type: 4, index: 34 };// RNM(um)
this.rules[31].opcodes[12] = { type: 4, index: 35 };// RNM(pm)
this.rules[31].opcodes[13] = { type: 2, children: [14,15] };// CAT
this.rules[31].opcodes[14] = { type: 4, index: 34 };// RNM(um)
this.rules[31].opcodes[15] = { type: 3, min: 0, max: 1 };// REP
this.rules[31].opcodes[16] = { type: 1, children: [17,18] };// ALT
this.rules[31].opcodes[17] = { type: 4, index: 32 };// RNM(cs)
this.rules[31].opcodes[18] = { type: 4, index: 33 };// RNM(ci)
this.rules[31].opcodes[19] = { type: 2, children: [20,21] };// CAT
this.rules[31].opcodes[20] = { type: 4, index: 35 };// RNM(pm)
this.rules[31].opcodes[21] = { type: 3, min: 0, max: 1 };// REP
this.rules[31].opcodes[22] = { type: 1, children: [23,24] };// ALT
this.rules[31].opcodes[23] = { type: 4, index: 32 };// RNM(cs)
this.rules[31].opcodes[24] = { type: 4, index: 33 };// RNM(ci)
/* cs */
this.rules[32].opcodes = [];
this.rules[32].opcodes[0] = {type: 6, string: [37,115]};// TBS
this.rules[32].opcodes[0] = { type: 6, string: [37,115] };// TBS
/* ci */
this.rules[33].opcodes = [];
this.rules[33].opcodes[0] = {type: 6, string: [37,105]};// TBS
this.rules[33].opcodes[0] = { type: 6, string: [37,105] };// TBS
/* um */
this.rules[34].opcodes = [];
this.rules[34].opcodes[0] = {type: 6, string: [37,117]};// TBS
this.rules[34].opcodes[0] = { type: 6, string: [37,117] };// TBS
/* pm */
this.rules[35].opcodes = [];
this.rules[35].opcodes[0] = {type: 6, string: [37,112]};// TBS
this.rules[35].opcodes[0] = { type: 6, string: [37,112] };// TBS
/* bkr-name */
this.rules[36].opcodes = [];
this.rules[36].opcodes[0] = {type: 1, children: [1,2,3]};// ALT
this.rules[36].opcodes[1] = {type: 4, index: 38};// RNM(uname)
this.rules[36].opcodes[2] = {type: 4, index: 39};// RNM(ename)
this.rules[36].opcodes[3] = {type: 4, index: 37};// RNM(rname)
this.rules[36].opcodes[0] = { type: 1, children: [1,2,3] };// ALT
this.rules[36].opcodes[1] = { type: 4, index: 38 };// RNM(uname)
this.rules[36].opcodes[2] = { type: 4, index: 39 };// RNM(ename)
this.rules[36].opcodes[3] = { type: 4, index: 37 };// RNM(rname)
/* rname */
this.rules[37].opcodes = [];
this.rules[37].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)
this.rules[37].opcodes[0] = { type: 4, index: 88 };// RNM(alphanum)
/* uname */
this.rules[38].opcodes = [];
this.rules[38].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[38].opcodes[1] = {type: 6, string: [117,95]};// TBS
this.rules[38].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)
this.rules[38].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[38].opcodes[1] = { type: 6, string: [117,95] };// TBS
this.rules[38].opcodes[2] = { type: 4, index: 88 };// RNM(alphanum)
/* ename */
this.rules[39].opcodes = [];
this.rules[39].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[39].opcodes[1] = {type: 6, string: [101,95]};// TBS
this.rules[39].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)
this.rules[39].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[39].opcodes[1] = { type: 6, string: [101,95] };// TBS
this.rules[39].opcodes[2] = { type: 4, index: 88 };// RNM(alphanum)
/* UdtOp */
this.rules[40].opcodes = [];
this.rules[40].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[40].opcodes[1] = {type: 4, index: 42};// RNM(udt-empty)
this.rules[40].opcodes[2] = {type: 4, index: 41};// RNM(udt-non-empty)
this.rules[40].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[40].opcodes[1] = { type: 4, index: 42 };// RNM(udt-empty)
this.rules[40].opcodes[2] = { type: 4, index: 41 };// RNM(udt-non-empty)
/* udt-non-empty */
this.rules[41].opcodes = [];
this.rules[41].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[41].opcodes[1] = {type: 6, string: [117,95]};// TBS
this.rules[41].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)
this.rules[41].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[41].opcodes[1] = { type: 6, string: [117,95] };// TBS
this.rules[41].opcodes[2] = { type: 4, index: 88 };// RNM(alphanum)
/* udt-empty */
this.rules[42].opcodes = [];
this.rules[42].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[42].opcodes[1] = {type: 6, string: [101,95]};// TBS
this.rules[42].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)
this.rules[42].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[42].opcodes[1] = { type: 6, string: [101,95] };// TBS
this.rules[42].opcodes[2] = { type: 4, index: 88 };// RNM(alphanum)
/* RepOp */
this.rules[43].opcodes = [];
this.rules[43].opcodes[0] = {type: 1, children: [1,5,8,11,12]};// ALT
this.rules[43].opcodes[1] = {type: 2, children: [2,3,4]};// CAT
this.rules[43].opcodes[2] = {type: 4, index: 69};// RNM(rep-min)
this.rules[43].opcodes[3] = {type: 4, index: 46};// RNM(StarOp)
this.rules[43].opcodes[4] = {type: 4, index: 71};// RNM(rep-max)
this.rules[43].opcodes[5] = {type: 2, children: [6,7]};// CAT
this.rules[43].opcodes[6] = {type: 4, index: 69};// RNM(rep-min)
this.rules[43].opcodes[7] = {type: 4, index: 46};// RNM(StarOp)
this.rules[43].opcodes[8] = {type: 2, children: [9,10]};// CAT
this.rules[43].opcodes[9] = {type: 4, index: 46};// RNM(StarOp)
this.rules[43].opcodes[10] = {type: 4, index: 71};// RNM(rep-max)
this.rules[43].opcodes[11] = {type: 4, index: 46};// RNM(StarOp)
this.rules[43].opcodes[12] = {type: 4, index: 70};// RNM(rep-min-max)
this.rules[43].opcodes[0] = { type: 1, children: [1,5,8,11,12] };// ALT
this.rules[43].opcodes[1] = { type: 2, children: [2,3,4] };// CAT
this.rules[43].opcodes[2] = { type: 4, index: 69 };// RNM(rep-min)
this.rules[43].opcodes[3] = { type: 4, index: 46 };// RNM(StarOp)
this.rules[43].opcodes[4] = { type: 4, index: 71 };// RNM(rep-max)
this.rules[43].opcodes[5] = { type: 2, children: [6,7] };// CAT
this.rules[43].opcodes[6] = { type: 4, index: 69 };// RNM(rep-min)
this.rules[43].opcodes[7] = { type: 4, index: 46 };// RNM(StarOp)
this.rules[43].opcodes[8] = { type: 2, children: [9,10] };// CAT
this.rules[43].opcodes[9] = { type: 4, index: 46 };// RNM(StarOp)
this.rules[43].opcodes[10] = { type: 4, index: 71 };// RNM(rep-max)
this.rules[43].opcodes[11] = { type: 4, index: 46 };// RNM(StarOp)
this.rules[43].opcodes[12] = { type: 4, index: 70 };// RNM(rep-min-max)
/* AltOp */
this.rules[44].opcodes = [];
this.rules[44].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[44].opcodes[1] = {type: 6, string: [47]};// TBS
this.rules[44].opcodes[2] = {type: 4, index: 89};// RNM(owsp)
this.rules[44].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[44].opcodes[1] = { type: 6, string: [47] };// TBS
this.rules[44].opcodes[2] = { type: 4, index: 89 };// RNM(owsp)
/* CatOp */
this.rules[45].opcodes = [];
this.rules[45].opcodes[0] = {type: 4, index: 90};// RNM(wsp)
this.rules[45].opcodes[0] = { type: 4, index: 90 };// RNM(wsp)
/* StarOp */
this.rules[46].opcodes = [];
this.rules[46].opcodes[0] = {type: 6, string: [42]};// TBS
this.rules[46].opcodes[0] = { type: 6, string: [42] };// TBS
/* AndOp */
this.rules[47].opcodes = [];
this.rules[47].opcodes[0] = {type: 6, string: [38]};// TBS
this.rules[47].opcodes[0] = { type: 6, string: [38] };// TBS
/* NotOp */
this.rules[48].opcodes = [];
this.rules[48].opcodes[0] = {type: 6, string: [33]};// TBS
this.rules[48].opcodes[0] = { type: 6, string: [33] };// TBS
/* BkaOp */
this.rules[49].opcodes = [];
this.rules[49].opcodes[0] = {type: 6, string: [38,38]};// TBS
this.rules[49].opcodes[0] = { type: 6, string: [38,38] };// TBS
/* BknOp */
this.rules[50].opcodes = [];
this.rules[50].opcodes[0] = {type: 6, string: [33,33]};// TBS
this.rules[50].opcodes[0] = { type: 6, string: [33,33] };// TBS
/* AbgOp */
this.rules[51].opcodes = [];
this.rules[51].opcodes[0] = {type: 6, string: [37,94]};// TBS
this.rules[51].opcodes[0] = { type: 6, string: [37,94] };// TBS
/* AenOp */
this.rules[52].opcodes = [];
this.rules[52].opcodes[0] = {type: 6, string: [37,36]};// TBS
this.rules[52].opcodes[0] = { type: 6, string: [37,36] };// TBS
/* TrgOp */
this.rules[53].opcodes = [];
this.rules[53].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[53].opcodes[1] = {type: 6, string: [37]};// TBS
this.rules[53].opcodes[2] = {type: 1, children: [3,8,13]};// ALT
this.rules[53].opcodes[3] = {type: 2, children: [4,5,6,7]};// CAT
this.rules[53].opcodes[4] = {type: 4, index: 76};// RNM(Dec)
this.rules[53].opcodes[5] = {type: 4, index: 79};// RNM(dmin)
this.rules[53].opcodes[6] = {type: 6, string: [45]};// TBS
this.rules[53].opcodes[7] = {type: 4, index: 80};// RNM(dmax)
this.rules[53].opcodes[8] = {type: 2, children: [9,10,11,12]};// CAT
this.rules[53].opcodes[9] = {type: 4, index: 77};// RNM(Hex)
this.rules[53].opcodes[10] = {type: 4, index: 83};// RNM(xmin)
this.rules[53].opcodes[11] = {type: 6, string: [45]};// TBS
this.rules[53].opcodes[12] = {type: 4, index: 84};// RNM(xmax)
this.rules[53].opcodes[13] = {type: 2, children: [14,15,16,17]};// CAT
this.rules[53].opcodes[14] = {type: 4, index: 78};// RNM(Bin)
this.rules[53].opcodes[15] = {type: 4, index: 81};// RNM(bmin)
this.rules[53].opcodes[16] = {type: 6, string: [45]};// TBS
this.rules[53].opcodes[17] = {type: 4, index: 82};// RNM(bmax)
this.rules[53].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[53].opcodes[1] = { type: 6, string: [37] };// TBS
this.rules[53].opcodes[2] = { type: 1, children: [3,8,13] };// ALT
this.rules[53].opcodes[3] = { type: 2, children: [4,5,6,7] };// CAT
this.rules[53].opcodes[4] = { type: 4, index: 76 };// RNM(Dec)
this.rules[53].opcodes[5] = { type: 4, index: 79 };// RNM(dmin)
this.rules[53].opcodes[6] = { type: 6, string: [45] };// TBS
this.rules[53].opcodes[7] = { type: 4, index: 80 };// RNM(dmax)
this.rules[53].opcodes[8] = { type: 2, children: [9,10,11,12] };// CAT
this.rules[53].opcodes[9] = { type: 4, index: 77 };// RNM(Hex)
this.rules[53].opcodes[10] = { type: 4, index: 83 };// RNM(xmin)
this.rules[53].opcodes[11] = { type: 6, string: [45] };// TBS
this.rules[53].opcodes[12] = { type: 4, index: 84 };// RNM(xmax)
this.rules[53].opcodes[13] = { type: 2, children: [14,15,16,17] };// CAT
this.rules[53].opcodes[14] = { type: 4, index: 78 };// RNM(Bin)
this.rules[53].opcodes[15] = { type: 4, index: 81 };// RNM(bmin)
this.rules[53].opcodes[16] = { type: 6, string: [45] };// TBS
this.rules[53].opcodes[17] = { type: 4, index: 82 };// RNM(bmax)
/* TbsOp */
this.rules[54].opcodes = [];
this.rules[54].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[54].opcodes[1] = {type: 6, string: [37]};// TBS
this.rules[54].opcodes[2] = {type: 1, children: [3,10,17]};// ALT
this.rules[54].opcodes[3] = {type: 2, children: [4,5,6]};// CAT
this.rules[54].opcodes[4] = {type: 4, index: 76};// RNM(Dec)
this.rules[54].opcodes[5] = {type: 4, index: 73};// RNM(dString)
this.rules[54].opcodes[6] = {type: 3, min: 0, max: Infinity};// REP
this.rules[54].opcodes[7] = {type: 2, children: [8,9]};// CAT
this.rules[54].opcodes[8] = {type: 6, string: [46]};// TBS
this.rules[54].opcodes[9] = {type: 4, index: 73};// RNM(dString)
this.rules[54].opcodes[10] = {type: 2, children: [11,12,13]};// CAT
this.rules[54].opcodes[11] = {type: 4, index: 77};// RNM(Hex)
this.rules[54].opcodes[12] = {type: 4, index: 74};// RNM(xString)
this.rules[54].opcodes[13] = {type: 3, min: 0, max: Infinity};// REP
this.rules[54].opcodes[14] = {type: 2, children: [15,16]};// CAT
this.rules[54].opcodes[15] = {type: 6, string: [46]};// TBS
this.rules[54].opcodes[16] = {type: 4, index: 74};// RNM(xString)
this.rules[54].opcodes[17] = {type: 2, children: [18,19,20]};// CAT
this.rules[54].opcodes[18] = {type: 4, index: 78};// RNM(Bin)
this.rules[54].opcodes[19] = {type: 4, index: 75};// RNM(bString)
this.rules[54].opcodes[20] = {type: 3, min: 0, max: Infinity};// REP
this.rules[54].opcodes[21] = {type: 2, children: [22,23]};// CAT
this.rules[54].opcodes[22] = {type: 6, string: [46]};// TBS
this.rules[54].opcodes[23] = {type: 4, index: 75};// RNM(bString)
this.rules[54].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[54].opcodes[1] = { type: 6, string: [37] };// TBS
this.rules[54].opcodes[2] = { type: 1, children: [3,10,17] };// ALT
this.rules[54].opcodes[3] = { type: 2, children: [4,5,6] };// CAT
this.rules[54].opcodes[4] = { type: 4, index: 76 };// RNM(Dec)
this.rules[54].opcodes[5] = { type: 4, index: 73 };// RNM(dString)
this.rules[54].opcodes[6] = { type: 3, min: 0, max: Infinity };// REP
this.rules[54].opcodes[7] = { type: 2, children: [8,9] };// CAT
this.rules[54].opcodes[8] = { type: 6, string: [46] };// TBS
this.rules[54].opcodes[9] = { type: 4, index: 73 };// RNM(dString)
this.rules[54].opcodes[10] = { type: 2, children: [11,12,13] };// CAT
this.rules[54].opcodes[11] = { type: 4, index: 77 };// RNM(Hex)
this.rules[54].opcodes[12] = { type: 4, index: 74 };// RNM(xString)
this.rules[54].opcodes[13] = { type: 3, min: 0, max: Infinity };// REP
this.rules[54].opcodes[14] = { type: 2, children: [15,16] };// CAT
this.rules[54].opcodes[15] = { type: 6, string: [46] };// TBS
this.rules[54].opcodes[16] = { type: 4, index: 74 };// RNM(xString)
this.rules[54].opcodes[17] = { type: 2, children: [18,19,20] };// CAT
this.rules[54].opcodes[18] = { type: 4, index: 78 };// RNM(Bin)
this.rules[54].opcodes[19] = { type: 4, index: 75 };// RNM(bString)
this.rules[54].opcodes[20] = { type: 3, min: 0, max: Infinity };// REP
this.rules[54].opcodes[21] = { type: 2, children: [22,23] };// CAT
this.rules[54].opcodes[22] = { type: 6, string: [46] };// TBS
this.rules[54].opcodes[23] = { type: 4, index: 75 };// RNM(bString)
/* TlsOp */
this.rules[55].opcodes = [];
this.rules[55].opcodes[0] = {type: 2, children: [1,2,3,4]};// CAT
this.rules[55].opcodes[1] = {type: 4, index: 56};// RNM(TlsCase)
this.rules[55].opcodes[2] = {type: 4, index: 57};// RNM(TlsOpen)
this.rules[55].opcodes[3] = {type: 4, index: 59};// RNM(TlsString)
this.rules[55].opcodes[4] = {type: 4, index: 58};// RNM(TlsClose)
this.rules[55].opcodes[0] = { type: 2, children: [1,2,3,4] };// CAT
this.rules[55].opcodes[1] = { type: 4, index: 56 };// RNM(TlsCase)
this.rules[55].opcodes[2] = { type: 4, index: 57 };// RNM(TlsOpen)
this.rules[55].opcodes[3] = { type: 4, index: 59 };// RNM(TlsString)
this.rules[55].opcodes[4] = { type: 4, index: 58 };// RNM(TlsClose)
/* TlsCase */
this.rules[56].opcodes = [];
this.rules[56].opcodes[0] = {type: 3, min: 0, max: 1};// REP
this.rules[56].opcodes[1] = {type: 1, children: [2,3]};// ALT
this.rules[56].opcodes[2] = {type: 7, string: [37,105]};// TLS
this.rules[56].opcodes[3] = {type: 7, string: [37,115]};// TLS
this.rules[56].opcodes[0] = { type: 3, min: 0, max: 1 };// REP
this.rules[56].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[56].opcodes[2] = { type: 7, string: [37,105] };// TLS
this.rules[56].opcodes[3] = { type: 7, string: [37,115] };// TLS
/* TlsOpen */
this.rules[57].opcodes = [];
this.rules[57].opcodes[0] = {type: 6, string: [34]};// TBS
this.rules[57].opcodes[0] = { type: 6, string: [34] };// TBS
/* TlsClose */
this.rules[58].opcodes = [];
this.rules[58].opcodes[0] = {type: 6, string: [34]};// TBS
this.rules[58].opcodes[0] = { type: 6, string: [34] };// TBS
/* TlsString */
this.rules[59].opcodes = [];
this.rules[59].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[59].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[59].opcodes[2] = {type: 5, min: 32, max: 33};// TRG
this.rules[59].opcodes[3] = {type: 5, min: 35, max: 126};// TRG
this.rules[59].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)
this.rules[59].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[59].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[59].opcodes[2] = { type: 5, min: 32, max: 33 };// TRG
this.rules[59].opcodes[3] = { type: 5, min: 35, max: 126 };// TRG
this.rules[59].opcodes[4] = { type: 4, index: 60 };// RNM(StringTab)
/* StringTab */
this.rules[60].opcodes = [];
this.rules[60].opcodes[0] = {type: 6, string: [9]};// TBS
this.rules[60].opcodes[0] = { type: 6, string: [9] };// TBS
/* ClsOp */
this.rules[61].opcodes = [];
this.rules[61].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[61].opcodes[1] = {type: 4, index: 62};// RNM(ClsOpen)
this.rules[61].opcodes[2] = {type: 4, index: 64};// RNM(ClsString)
this.rules[61].opcodes[3] = {type: 4, index: 63};// RNM(ClsClose)
this.rules[61].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[61].opcodes[1] = { type: 4, index: 62 };// RNM(ClsOpen)
this.rules[61].opcodes[2] = { type: 4, index: 64 };// RNM(ClsString)
this.rules[61].opcodes[3] = { type: 4, index: 63 };// RNM(ClsClose)
/* ClsOpen */
this.rules[62].opcodes = [];
this.rules[62].opcodes[0] = {type: 6, string: [39]};// TBS
this.rules[62].opcodes[0] = { type: 6, string: [39] };// TBS
/* ClsClose */
this.rules[63].opcodes = [];
this.rules[63].opcodes[0] = {type: 6, string: [39]};// TBS
this.rules[63].opcodes[0] = { type: 6, string: [39] };// TBS
/* ClsString */
this.rules[64].opcodes = [];
this.rules[64].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[64].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[64].opcodes[2] = {type: 5, min: 32, max: 38};// TRG
this.rules[64].opcodes[3] = {type: 5, min: 40, max: 126};// TRG
this.rules[64].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)
this.rules[64].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[64].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[64].opcodes[2] = { type: 5, min: 32, max: 38 };// TRG
this.rules[64].opcodes[3] = { type: 5, min: 40, max: 126 };// TRG
this.rules[64].opcodes[4] = { type: 4, index: 60 };// RNM(StringTab)
/* ProsVal */
this.rules[65].opcodes = [];
this.rules[65].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[65].opcodes[1] = {type: 4, index: 66};// RNM(ProsValOpen)
this.rules[65].opcodes[2] = {type: 4, index: 67};// RNM(ProsValString)
this.rules[65].opcodes[3] = {type: 4, index: 68};// RNM(ProsValClose)
this.rules[65].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[65].opcodes[1] = { type: 4, index: 66 };// RNM(ProsValOpen)
this.rules[65].opcodes[2] = { type: 4, index: 67 };// RNM(ProsValString)
this.rules[65].opcodes[3] = { type: 4, index: 68 };// RNM(ProsValClose)
/* ProsValOpen */
this.rules[66].opcodes = [];
this.rules[66].opcodes[0] = {type: 6, string: [60]};// TBS
this.rules[66].opcodes[0] = { type: 6, string: [60] };// TBS
/* ProsValString */
this.rules[67].opcodes = [];
this.rules[67].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[67].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[67].opcodes[2] = {type: 5, min: 32, max: 61};// TRG
this.rules[67].opcodes[3] = {type: 5, min: 63, max: 126};// TRG
this.rules[67].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)
this.rules[67].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[67].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[67].opcodes[2] = { type: 5, min: 32, max: 61 };// TRG
this.rules[67].opcodes[3] = { type: 5, min: 63, max: 126 };// TRG
this.rules[67].opcodes[4] = { type: 4, index: 60 };// RNM(StringTab)
/* ProsValClose */
this.rules[68].opcodes = [];
this.rules[68].opcodes[0] = {type: 6, string: [62]};// TBS
this.rules[68].opcodes[0] = { type: 6, string: [62] };// TBS
/* rep-min */
this.rules[69].opcodes = [];
this.rules[69].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)
this.rules[69].opcodes[0] = { type: 4, index: 72 };// RNM(rep-num)
/* rep-min-max */
this.rules[70].opcodes = [];
this.rules[70].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)
this.rules[70].opcodes[0] = { type: 4, index: 72 };// RNM(rep-num)
/* rep-max */
this.rules[71].opcodes = [];
this.rules[71].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)
this.rules[71].opcodes[0] = { type: 4, index: 72 };// RNM(rep-num)
/* rep-num */
this.rules[72].opcodes = [];
this.rules[72].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[72].opcodes[1] = {type: 5, min: 48, max: 57};// TRG
this.rules[72].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[72].opcodes[1] = { type: 5, min: 48, max: 57 };// TRG
/* dString */
this.rules[73].opcodes = [];
this.rules[73].opcodes[0] = {type: 4, index: 85};// RNM(dnum)
this.rules[73].opcodes[0] = { type: 4, index: 85 };// RNM(dnum)
/* xString */
this.rules[74].opcodes = [];
this.rules[74].opcodes[0] = {type: 4, index: 87};// RNM(xnum)
this.rules[74].opcodes[0] = { type: 4, index: 87 };// RNM(xnum)
/* bString */
this.rules[75].opcodes = [];
this.rules[75].opcodes[0] = {type: 4, index: 86};// RNM(bnum)
this.rules[75].opcodes[0] = { type: 4, index: 86 };// RNM(bnum)
/* Dec */
this.rules[76].opcodes = [];
this.rules[76].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[76].opcodes[1] = {type: 6, string: [68]};// TBS
this.rules[76].opcodes[2] = {type: 6, string: [100]};// TBS
this.rules[76].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[76].opcodes[1] = { type: 6, string: [68] };// TBS
this.rules[76].opcodes[2] = { type: 6, string: [100] };// TBS
/* Hex */
this.rules[77].opcodes = [];
this.rules[77].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[77].opcodes[1] = {type: 6, string: [88]};// TBS
this.rules[77].opcodes[2] = {type: 6, string: [120]};// TBS
this.rules[77].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[77].opcodes[1] = { type: 6, string: [88] };// TBS
this.rules[77].opcodes[2] = { type: 6, string: [120] };// TBS
/* Bin */
this.rules[78].opcodes = [];
this.rules[78].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[78].opcodes[1] = {type: 6, string: [66]};// TBS
this.rules[78].opcodes[2] = {type: 6, string: [98]};// TBS
this.rules[78].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[78].opcodes[1] = { type: 6, string: [66] };// TBS
this.rules[78].opcodes[2] = { type: 6, string: [98] };// TBS
/* dmin */
this.rules[79].opcodes = [];
this.rules[79].opcodes[0] = {type: 4, index: 85};// RNM(dnum)
this.rules[79].opcodes[0] = { type: 4, index: 85 };// RNM(dnum)
/* dmax */
this.rules[80].opcodes = [];
this.rules[80].opcodes[0] = {type: 4, index: 85};// RNM(dnum)
this.rules[80].opcodes[0] = { type: 4, index: 85 };// RNM(dnum)
/* bmin */
this.rules[81].opcodes = [];
this.rules[81].opcodes[0] = {type: 4, index: 86};// RNM(bnum)
this.rules[81].opcodes[0] = { type: 4, index: 86 };// RNM(bnum)
/* bmax */
this.rules[82].opcodes = [];
this.rules[82].opcodes[0] = {type: 4, index: 86};// RNM(bnum)
this.rules[82].opcodes[0] = { type: 4, index: 86 };// RNM(bnum)
/* xmin */
this.rules[83].opcodes = [];
this.rules[83].opcodes[0] = {type: 4, index: 87};// RNM(xnum)
this.rules[83].opcodes[0] = { type: 4, index: 87 };// RNM(xnum)
/* xmax */
this.rules[84].opcodes = [];
this.rules[84].opcodes[0] = {type: 4, index: 87};// RNM(xnum)
this.rules[84].opcodes[0] = { type: 4, index: 87 };// RNM(xnum)
/* dnum */
this.rules[85].opcodes = [];
this.rules[85].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[85].opcodes[1] = {type: 5, min: 48, max: 57};// TRG
this.rules[85].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[85].opcodes[1] = { type: 5, min: 48, max: 57 };// TRG
/* bnum */
this.rules[86].opcodes = [];
this.rules[86].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[86].opcodes[1] = {type: 5, min: 48, max: 49};// TRG
this.rules[86].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[86].opcodes[1] = { type: 5, min: 48, max: 49 };// TRG
/* xnum */
this.rules[87].opcodes = [];
this.rules[87].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[87].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[87].opcodes[2] = {type: 5, min: 48, max: 57};// TRG
this.rules[87].opcodes[3] = {type: 5, min: 65, max: 70};// TRG
this.rules[87].opcodes[4] = {type: 5, min: 97, max: 102};// TRG
this.rules[87].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[87].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[87].opcodes[2] = { type: 5, min: 48, max: 57 };// TRG
this.rules[87].opcodes[3] = { type: 5, min: 65, max: 70 };// TRG
this.rules[87].opcodes[4] = { type: 5, min: 97, max: 102 };// TRG
/* alphanum */
this.rules[88].opcodes = [];
this.rules[88].opcodes[0] = {type: 2, children: [1,4]};// CAT
this.rules[88].opcodes[1] = {type: 1, children: [2,3]};// ALT
this.rules[88].opcodes[2] = {type: 5, min: 97, max: 122};// TRG
this.rules[88].opcodes[3] = {type: 5, min: 65, max: 90};// TRG
this.rules[88].opcodes[4] = {type: 3, min: 0, max: Infinity};// REP
this.rules[88].opcodes[5] = {type: 1, children: [6,7,8,9]};// ALT
this.rules[88].opcodes[6] = {type: 5, min: 97, max: 122};// TRG
this.rules[88].opcodes[7] = {type: 5, min: 65, max: 90};// TRG
this.rules[88].opcodes[8] = {type: 5, min: 48, max: 57};// TRG
this.rules[88].opcodes[9] = {type: 6, string: [45]};// TBS
this.rules[88].opcodes[0] = { type: 2, children: [1,4] };// CAT
this.rules[88].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[88].opcodes[2] = { type: 5, min: 97, max: 122 };// TRG
this.rules[88].opcodes[3] = { type: 5, min: 65, max: 90 };// TRG
this.rules[88].opcodes[4] = { type: 3, min: 0, max: Infinity };// REP
this.rules[88].opcodes[5] = { type: 1, children: [6,7,8,9] };// ALT
this.rules[88].opcodes[6] = { type: 5, min: 97, max: 122 };// TRG
this.rules[88].opcodes[7] = { type: 5, min: 65, max: 90 };// TRG
this.rules[88].opcodes[8] = { type: 5, min: 48, max: 57 };// TRG
this.rules[88].opcodes[9] = { type: 6, string: [45] };// TBS
/* owsp */
this.rules[89].opcodes = [];
this.rules[89].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[89].opcodes[1] = {type: 4, index: 91};// RNM(space)
this.rules[89].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[89].opcodes[1] = { type: 4, index: 91 };// RNM(space)
/* wsp */
this.rules[90].opcodes = [];
this.rules[90].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[90].opcodes[1] = {type: 4, index: 91};// RNM(space)
this.rules[90].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[90].opcodes[1] = { type: 4, index: 91 };// RNM(space)
/* space */
this.rules[91].opcodes = [];
this.rules[91].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT
this.rules[91].opcodes[1] = {type: 6, string: [32]};// TBS
this.rules[91].opcodes[2] = {type: 6, string: [9]};// TBS
this.rules[91].opcodes[3] = {type: 4, index: 92};// RNM(comment)
this.rules[91].opcodes[4] = {type: 4, index: 94};// RNM(LineContinue)
this.rules[91].opcodes[0] = { type: 1, children: [1,2,3,4] };// ALT
this.rules[91].opcodes[1] = { type: 6, string: [32] };// TBS
this.rules[91].opcodes[2] = { type: 6, string: [9] };// TBS
this.rules[91].opcodes[3] = { type: 4, index: 92 };// RNM(comment)
this.rules[91].opcodes[4] = { type: 4, index: 94 };// RNM(LineContinue)
/* comment */
this.rules[92].opcodes = [];
this.rules[92].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[92].opcodes[1] = {type: 6, string: [59]};// TBS
this.rules[92].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP
this.rules[92].opcodes[3] = {type: 1, children: [4,5]};// ALT
this.rules[92].opcodes[4] = {type: 5, min: 32, max: 126};// TRG
this.rules[92].opcodes[5] = {type: 6, string: [9]};// TBS
this.rules[92].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[92].opcodes[1] = { type: 6, string: [59] };// TBS
this.rules[92].opcodes[2] = { type: 3, min: 0, max: Infinity };// REP
this.rules[92].opcodes[3] = { type: 1, children: [4,5] };// ALT
this.rules[92].opcodes[4] = { type: 5, min: 32, max: 126 };// TRG
this.rules[92].opcodes[5] = { type: 6, string: [9] };// TBS
/* LineEnd */
this.rules[93].opcodes = [];
this.rules[93].opcodes[0] = {type: 1, children: [1,2,3]};// ALT
this.rules[93].opcodes[1] = {type: 6, string: [13,10]};// TBS
this.rules[93].opcodes[2] = {type: 6, string: [10]};// TBS
this.rules[93].opcodes[3] = {type: 6, string: [13]};// TBS
this.rules[93].opcodes[0] = { type: 1, children: [1,2,3] };// ALT
this.rules[93].opcodes[1] = { type: 6, string: [13,10] };// TBS
this.rules[93].opcodes[2] = { type: 6, string: [10] };// TBS
this.rules[93].opcodes[3] = { type: 6, string: [13] };// TBS
/* LineContinue */
this.rules[94].opcodes = [];
this.rules[94].opcodes[0] = {type: 2, children: [1,5]};// CAT
this.rules[94].opcodes[1] = {type: 1, children: [2,3,4]};// ALT
this.rules[94].opcodes[2] = {type: 6, string: [13,10]};// TBS
this.rules[94].opcodes[3] = {type: 6, string: [10]};// TBS
this.rules[94].opcodes[4] = {type: 6, string: [13]};// TBS
this.rules[94].opcodes[5] = {type: 1, children: [6,7]};// ALT
this.rules[94].opcodes[6] = {type: 6, string: [32]};// TBS
this.rules[94].opcodes[7] = {type: 6, string: [9]};// TBS
this.rules[94].opcodes[0] = { type: 2, children: [1,5] };// CAT
this.rules[94].opcodes[1] = { type: 1, children: [2,3,4] };// ALT
this.rules[94].opcodes[2] = { type: 6, string: [13,10] };// TBS
this.rules[94].opcodes[3] = { type: 6, string: [10] };// TBS
this.rules[94].opcodes[4] = { type: 6, string: [13] };// TBS
this.rules[94].opcodes[5] = { type: 1, children: [6,7] };// ALT
this.rules[94].opcodes[6] = { type: 6, string: [32] };// TBS
this.rules[94].opcodes[7] = { type: 6, string: [9] };// TBS

@@ -794,0 +794,0 @@ // The `toString()` function will display the original grammar file(s) that produced these opcodes.

@@ -1,5 +0,5 @@

// copyright: Copyright (c) 2023 Lowell D. Thomas, all rights reserved<br>
// 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.2.1 [apg-js](https://github.com/ldthomas/apg-js)
// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)
module.exports = function grammar(){

@@ -35,12 +35,12 @@ // ```

this.rules = [];
this.rules[0] = {name: 'file', lower: 'file', index: 0, isBkr: false};
this.rules[1] = {name: 'line', lower: 'line', index: 1, isBkr: false};
this.rules[2] = {name: 'line-text', lower: 'line-text', index: 2, isBkr: false};
this.rules[3] = {name: 'last-line', lower: 'last-line', index: 3, isBkr: false};
this.rules[4] = {name: 'valid', lower: 'valid', index: 4, isBkr: false};
this.rules[5] = {name: 'invalid', lower: 'invalid', index: 5, isBkr: false};
this.rules[6] = {name: 'end', lower: 'end', index: 6, isBkr: false};
this.rules[7] = {name: 'CRLF', lower: 'crlf', index: 7, isBkr: false};
this.rules[8] = {name: 'LF', lower: 'lf', index: 8, isBkr: false};
this.rules[9] = {name: 'CR', lower: 'cr', index: 9, isBkr: false};
this.rules[0] = { name: 'file', lower: 'file', index: 0, isBkr: false };
this.rules[1] = { name: 'line', lower: 'line', index: 1, isBkr: false };
this.rules[2] = { name: 'line-text', lower: 'line-text', index: 2, isBkr: false };
this.rules[3] = { name: 'last-line', lower: 'last-line', index: 3, isBkr: false };
this.rules[4] = { name: 'valid', lower: 'valid', index: 4, isBkr: false };
this.rules[5] = { name: 'invalid', lower: 'invalid', index: 5, isBkr: false };
this.rules[6] = { name: 'end', lower: 'end', index: 6, isBkr: false };
this.rules[7] = { name: 'CRLF', lower: 'crlf', index: 7, isBkr: false };
this.rules[8] = { name: 'LF', lower: 'lf', index: 8, isBkr: false };
this.rules[9] = { name: 'CR', lower: 'cr', index: 9, isBkr: false };

@@ -53,60 +53,60 @@ /* UDTS */

this.rules[0].opcodes = [];
this.rules[0].opcodes[0] = {type: 2, children: [1,3]};// CAT
this.rules[0].opcodes[1] = {type: 3, min: 0, max: Infinity};// REP
this.rules[0].opcodes[2] = {type: 4, index: 1};// RNM(line)
this.rules[0].opcodes[3] = {type: 3, min: 0, max: 1};// REP
this.rules[0].opcodes[4] = {type: 4, index: 3};// RNM(last-line)
this.rules[0].opcodes[0] = { type: 2, children: [1,3] };// CAT
this.rules[0].opcodes[1] = { type: 3, min: 0, max: Infinity };// REP
this.rules[0].opcodes[2] = { type: 4, index: 1 };// RNM(line)
this.rules[0].opcodes[3] = { type: 3, min: 0, max: 1 };// REP
this.rules[0].opcodes[4] = { type: 4, index: 3 };// RNM(last-line)
/* line */
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(line-text)
this.rules[1].opcodes[2] = {type: 4, index: 6};// RNM(end)
this.rules[1].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[1].opcodes[1] = { type: 4, index: 2 };// RNM(line-text)
this.rules[1].opcodes[2] = { type: 4, index: 6 };// RNM(end)
/* line-text */
this.rules[2].opcodes = [];
this.rules[2].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[2].opcodes[1] = {type: 1, children: [2,3]};// ALT
this.rules[2].opcodes[2] = {type: 4, index: 4};// RNM(valid)
this.rules[2].opcodes[3] = {type: 4, index: 5};// RNM(invalid)
this.rules[2].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[2].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[2].opcodes[2] = { type: 4, index: 4 };// RNM(valid)
this.rules[2].opcodes[3] = { type: 4, index: 5 };// RNM(invalid)
/* last-line */
this.rules[3].opcodes = [];
this.rules[3].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP
this.rules[3].opcodes[1] = {type: 1, children: [2,3]};// ALT
this.rules[3].opcodes[2] = {type: 4, index: 4};// RNM(valid)
this.rules[3].opcodes[3] = {type: 4, index: 5};// RNM(invalid)
this.rules[3].opcodes[0] = { type: 3, min: 1, max: Infinity };// REP
this.rules[3].opcodes[1] = { type: 1, children: [2,3] };// ALT
this.rules[3].opcodes[2] = { type: 4, index: 4 };// RNM(valid)
this.rules[3].opcodes[3] = { type: 4, index: 5 };// RNM(invalid)
/* valid */
this.rules[4].opcodes = [];
this.rules[4].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[4].opcodes[1] = {type: 5, min: 32, max: 126};// TRG
this.rules[4].opcodes[2] = {type: 6, string: [9]};// TBS
this.rules[4].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[4].opcodes[1] = { type: 5, min: 32, max: 126 };// TRG
this.rules[4].opcodes[2] = { type: 6, string: [9] };// TBS
/* invalid */
this.rules[5].opcodes = [];
this.rules[5].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT
this.rules[5].opcodes[1] = {type: 5, min: 0, max: 8};// TRG
this.rules[5].opcodes[2] = {type: 5, min: 11, max: 12};// TRG
this.rules[5].opcodes[3] = {type: 5, min: 14, max: 31};// TRG
this.rules[5].opcodes[4] = {type: 5, min: 127, max: 4294967295};// TRG
this.rules[5].opcodes[0] = { type: 1, children: [1,2,3,4] };// ALT
this.rules[5].opcodes[1] = { type: 5, min: 0, max: 8 };// TRG
this.rules[5].opcodes[2] = { type: 5, min: 11, max: 12 };// TRG
this.rules[5].opcodes[3] = { type: 5, min: 14, max: 31 };// TRG
this.rules[5].opcodes[4] = { type: 5, min: 127, max: 4294967295 };// TRG
/* end */
this.rules[6].opcodes = [];
this.rules[6].opcodes[0] = {type: 1, children: [1,2,3]};// ALT
this.rules[6].opcodes[1] = {type: 4, index: 7};// RNM(CRLF)
this.rules[6].opcodes[2] = {type: 4, index: 8};// RNM(LF)
this.rules[6].opcodes[3] = {type: 4, index: 9};// RNM(CR)
this.rules[6].opcodes[0] = { type: 1, children: [1,2,3] };// ALT
this.rules[6].opcodes[1] = { type: 4, index: 7 };// RNM(CRLF)
this.rules[6].opcodes[2] = { type: 4, index: 8 };// RNM(LF)
this.rules[6].opcodes[3] = { type: 4, index: 9 };// RNM(CR)
/* CRLF */
this.rules[7].opcodes = [];
this.rules[7].opcodes[0] = {type: 6, string: [13,10]};// TBS
this.rules[7].opcodes[0] = { type: 6, string: [13,10] };// TBS
/* LF */
this.rules[8].opcodes = [];
this.rules[8].opcodes[0] = {type: 6, string: [10]};// TBS
this.rules[8].opcodes[0] = { type: 6, string: [10] };// TBS
/* CR */
this.rules[9].opcodes = [];
this.rules[9].opcodes[0] = {type: 6, string: [13]};// TBS
this.rules[9].opcodes[0] = { type: 6, string: [13] };// TBS

@@ -113,0 +113,0 @@ // The `toString()` function will display the original grammar file(s) that produced these opcodes.

@@ -1,5 +0,5 @@

// copyright: Copyright (c) 2023 Lowell D. Thomas, all rights reserved<br>
// 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.2.1 [apg-js](https://github.com/ldthomas/apg-js)
// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)
module.exports = function grammar(){

@@ -35,13 +35,13 @@ // ```

this.rules = [];
this.rules[0] = {name: 'rule', lower: 'rule', index: 0, isBkr: false};
this.rules[1] = {name: 'error', lower: 'error', index: 1, isBkr: false};
this.rules[2] = {name: 'escape', lower: 'escape', index: 2, isBkr: false};
this.rules[3] = {name: 'match', lower: 'match', index: 3, isBkr: false};
this.rules[4] = {name: 'prefix', lower: 'prefix', index: 4, isBkr: false};
this.rules[5] = {name: 'suffix', lower: 'suffix', index: 5, isBkr: false};
this.rules[6] = {name: 'xname', lower: 'xname', index: 6, isBkr: false};
this.rules[7] = {name: 'name', lower: 'name', index: 7, isBkr: false};
this.rules[8] = {name: 'alpha', lower: 'alpha', index: 8, isBkr: false};
this.rules[9] = {name: 'digit', lower: 'digit', index: 9, isBkr: false};
this.rules[10] = {name: 'any-other', lower: 'any-other', index: 10, isBkr: false};
this.rules[0] = { name: 'rule', lower: 'rule', index: 0, isBkr: false };
this.rules[1] = { name: 'error', lower: 'error', index: 1, isBkr: false };
this.rules[2] = { name: 'escape', lower: 'escape', index: 2, isBkr: false };
this.rules[3] = { name: 'match', lower: 'match', index: 3, isBkr: false };
this.rules[4] = { name: 'prefix', lower: 'prefix', index: 4, isBkr: false };
this.rules[5] = { name: 'suffix', lower: 'suffix', index: 5, isBkr: false };
this.rules[6] = { name: 'xname', lower: 'xname', index: 6, isBkr: false };
this.rules[7] = { name: 'name', lower: 'name', index: 7, isBkr: false };
this.rules[8] = { name: 'alpha', lower: 'alpha', index: 8, isBkr: false };
this.rules[9] = { name: 'digit', lower: 'digit', index: 9, isBkr: false };
this.rules[10] = { name: 'any-other', lower: 'any-other', index: 10, isBkr: false };

@@ -54,71 +54,71 @@ /* UDTS */

this.rules[0].opcodes = [];
this.rules[0].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP
this.rules[0].opcodes[1] = {type: 2, children: [2,4]};// CAT
this.rules[0].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP
this.rules[0].opcodes[3] = {type: 4, index: 10};// RNM(any-other)
this.rules[0].opcodes[4] = {type: 3, min: 0, max: 1};// REP
this.rules[0].opcodes[5] = {type: 1, children: [6,7,8,9,10,11]};// ALT
this.rules[0].opcodes[6] = {type: 4, index: 2};// RNM(escape)
this.rules[0].opcodes[7] = {type: 4, index: 3};// RNM(match)
this.rules[0].opcodes[8] = {type: 4, index: 4};// RNM(prefix)
this.rules[0].opcodes[9] = {type: 4, index: 5};// RNM(suffix)
this.rules[0].opcodes[10] = {type: 4, index: 6};// RNM(xname)
this.rules[0].opcodes[11] = {type: 4, index: 1};// RNM(error)
this.rules[0].opcodes[0] = { type: 3, min: 0, max: Infinity };// REP
this.rules[0].opcodes[1] = { type: 2, children: [2,4] };// CAT
this.rules[0].opcodes[2] = { type: 3, min: 0, max: Infinity };// REP
this.rules[0].opcodes[3] = { type: 4, index: 10 };// RNM(any-other)
this.rules[0].opcodes[4] = { type: 3, min: 0, max: 1 };// REP
this.rules[0].opcodes[5] = { type: 1, children: [6,7,8,9,10,11] };// ALT
this.rules[0].opcodes[6] = { type: 4, index: 2 };// RNM(escape)
this.rules[0].opcodes[7] = { type: 4, index: 3 };// RNM(match)
this.rules[0].opcodes[8] = { type: 4, index: 4 };// RNM(prefix)
this.rules[0].opcodes[9] = { type: 4, index: 5 };// RNM(suffix)
this.rules[0].opcodes[10] = { type: 4, index: 6 };// RNM(xname)
this.rules[0].opcodes[11] = { type: 4, index: 1 };// RNM(error)
/* error */
this.rules[1].opcodes = [];
this.rules[1].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[1].opcodes[1] = {type: 7, string: [36]};// TLS
this.rules[1].opcodes[2] = {type: 4, index: 10};// RNM(any-other)
this.rules[1].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[1].opcodes[1] = { type: 7, string: [36] };// TLS
this.rules[1].opcodes[2] = { type: 4, index: 10 };// RNM(any-other)
/* escape */
this.rules[2].opcodes = [];
this.rules[2].opcodes[0] = {type: 7, string: [36,36]};// TLS
this.rules[2].opcodes[0] = { type: 7, string: [36,36] };// TLS
/* match */
this.rules[3].opcodes = [];
this.rules[3].opcodes[0] = {type: 7, string: [36,38]};// TLS
this.rules[3].opcodes[0] = { type: 7, string: [36,38] };// TLS
/* prefix */
this.rules[4].opcodes = [];
this.rules[4].opcodes[0] = {type: 7, string: [36,96]};// TLS
this.rules[4].opcodes[0] = { type: 7, string: [36,96] };// TLS
/* suffix */
this.rules[5].opcodes = [];
this.rules[5].opcodes[0] = {type: 7, string: [36,39]};// TLS
this.rules[5].opcodes[0] = { type: 7, string: [36,39] };// TLS
/* xname */
this.rules[6].opcodes = [];
this.rules[6].opcodes[0] = {type: 2, children: [1,2,3]};// CAT
this.rules[6].opcodes[1] = {type: 7, string: [36,123]};// TLS
this.rules[6].opcodes[2] = {type: 4, index: 7};// RNM(name)
this.rules[6].opcodes[3] = {type: 7, string: [125]};// TLS
this.rules[6].opcodes[0] = { type: 2, children: [1,2,3] };// CAT
this.rules[6].opcodes[1] = { type: 7, string: [36,123] };// TLS
this.rules[6].opcodes[2] = { type: 4, index: 7 };// RNM(name)
this.rules[6].opcodes[3] = { type: 7, string: [125] };// TLS
/* name */
this.rules[7].opcodes = [];
this.rules[7].opcodes[0] = {type: 2, children: [1,2]};// CAT
this.rules[7].opcodes[1] = {type: 4, index: 8};// RNM(alpha)
this.rules[7].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP
this.rules[7].opcodes[3] = {type: 1, children: [4,5,6,7]};// ALT
this.rules[7].opcodes[4] = {type: 4, index: 8};// RNM(alpha)
this.rules[7].opcodes[5] = {type: 4, index: 9};// RNM(digit)
this.rules[7].opcodes[6] = {type: 6, string: [45]};// TBS
this.rules[7].opcodes[7] = {type: 6, string: [95]};// TBS
this.rules[7].opcodes[0] = { type: 2, children: [1,2] };// CAT
this.rules[7].opcodes[1] = { type: 4, index: 8 };// RNM(alpha)
this.rules[7].opcodes[2] = { type: 3, min: 0, max: Infinity };// REP
this.rules[7].opcodes[3] = { type: 1, children: [4,5,6,7] };// ALT
this.rules[7].opcodes[4] = { type: 4, index: 8 };// RNM(alpha)
this.rules[7].opcodes[5] = { type: 4, index: 9 };// RNM(digit)
this.rules[7].opcodes[6] = { type: 6, string: [45] };// TBS
this.rules[7].opcodes[7] = { type: 6, string: [95] };// TBS
/* alpha */
this.rules[8].opcodes = [];
this.rules[8].opcodes[0] = {type: 1, children: [1,2]};// ALT
this.rules[8].opcodes[1] = {type: 5, min: 97, max: 122};// TRG
this.rules[8].opcodes[2] = {type: 5, min: 65, max: 90};// TRG
this.rules[8].opcodes[0] = { type: 1, children: [1,2] };// ALT
this.rules[8].opcodes[1] = { type: 5, min: 97, max: 122 };// TRG
this.rules[8].opcodes[2] = { type: 5, min: 65, max: 90 };// TRG
/* digit */
this.rules[9].opcodes = [];
this.rules[9].opcodes[0] = {type: 5, min: 48, max: 57};// TRG
this.rules[9].opcodes[0] = { type: 5, min: 48, max: 57 };// TRG
/* any-other */
this.rules[10].opcodes = [];
this.rules[10].opcodes[0] = {type: 1, children: [1,2,3]};// ALT
this.rules[10].opcodes[1] = {type: 5, min: 32, max: 35};// TRG
this.rules[10].opcodes[2] = {type: 5, min: 37, max: 65535};// TRG
this.rules[10].opcodes[3] = {type: 5, min: 10, max: 13};// TRG
this.rules[10].opcodes[0] = { type: 1, children: [1,2,3] };// ALT
this.rules[10].opcodes[1] = { type: 5, min: 32, max: 35 };// TRG
this.rules[10].opcodes[2] = { type: 5, min: 37, max: 65535 };// TRG
this.rules[10].opcodes[3] = { type: 5, min: 10, max: 13 };// TRG

@@ -125,0 +125,0 @@ // The `toString()` function will display the original grammar file(s) that produced these opcodes.

@@ -109,3 +109,3 @@ /* *************************************************************************************

if (config.outfd) {
fs.writeSync(config.outfd, api.toSource(config.lite, config.funcName));
fs.writeSync(config.outfd, api.toSource(config));
if (config.lite) {

@@ -112,0 +112,0 @@ console.log(`\napg-lite grammar object generated: ${config.outFilename}`);

@@ -30,9 +30,10 @@ /* *************************************************************************************

help += '-s, --strict : only ABNF grammar (RFC 5234 & 7405) allowed, no Superset features\n';
help += '-l, --lite : generate an apg-lite ESM grammar object\n';
help += '-i <path>[,<path>[,...]] : input file(s)*\n';
help += '--in=<path>[,<path>[,...]] : input file(s)*\n';
help += '-o <path> : output filename**\n';
help += '--out=<path> : output filename**\n';
help += '-n <function name> : the grammar function name***\n';
help += '--name=<function name> : the grammar function name***\n';
help += '-l, --lite : generate an apg-lite ES Modules grammar object*\n';
help += '-t, --typescript : generate a typescript grammar object*\n';
help += '-i <path>[,<path>[,...]] : input file(s)**\n';
help += '--in=<path>[,<path>[,...]] : input file(s)**\n';
help += '-o <path> : output filename***\n';
help += '--out=<path> : output filename***\n';
help += '-n <function name> : the grammar function name****\n';
help += '--name=<function name> : the grammar function name****\n';
help += '--display-rules : display the rule names\n';

@@ -43,18 +44,27 @@ help += '--display-rule-dependencies: display => rules referenced <= rules referring to this rule\n';

help += 'Options are case insensitive.\n';
help += '* Multiple input files allowed.\n';
help += '* --typescript - a typescript grammar object is exported with\n';
help += ' export function grammar(){}\n';
help += '* --lite - an apg-lite ES Modules grammar object is exported with\n';
help += ' export default function grammar(){}\n';
help += ' --typescript and --lite are mutually exclusive and\n';
help += ' --typescript superceeds --lite if both are specified.\n';
help += ' If neither are specified a CommonJS object is exported with.\n';
help += ' module.exports = function grammar(){}\n';
help += '** Multiple input files allowed.\n';
help += ' Multiple file names must be comma separated with no spaces.\n';
help += ' File names from multiple input options are concatenated.\n';
help += ' Content of all resulting input files is concatenated.\n';
help += '** Output file name is optional.\n';
help += '*** Output file name is optional.\n';
help += ' If no output file name is given, no parser is generated.\n';
help += ' If the output file name does not have a ".js" extension,\n';
help += ' the existing extension, if any, is stripped and ".js" is added.\n';
help += '*** Grammar function name is optional.\n';
help += ' If present, must be a valid JavaScript function name\n';
help += ' If absent, uses "module.exports" for apg-js application\n';
help += ' or "export default" for apg-lite application.\n';
help += ' If the output file name is specified, the existing extension,\n';
help += ' if any, is stripped and ".js" is added unless the --typescript option\n';
help += ' is present in which case ".ts" is added.\n';
help += '****If --name=fname is present, a named function is created\n';
help += ' const fname = function grammar(){}\n';
help += ' typically for scripting directly into a web page.\n';
help += ' \n';
return help;
};
const version = function version() {
return 'JavaScript APG, version 4.3.0\nCopyright (C) 2023 Lowell D. Thomas, all rights reserved\n';
return 'JavaScript APG, version 4.4.0\nCopyright (C) 2024 Lowell D. Thomas, all rights reserved\n';
};

@@ -65,2 +75,4 @@ const STRICTL = '--strict';

const LITES = '-l';
const TYPEL = '--typescript';
const TYPES = '-t';
const HELPL = '--help';

@@ -86,2 +98,3 @@ const HELPS = '-h';

lite: false,
typescript: false,
noAttrs: false,

@@ -143,2 +156,7 @@ displayRules: false,

break;
case TYPEL:
case TYPES:
config.typescript = true;
i += 1;
break;
case INL:

@@ -188,9 +206,7 @@ case INS:

const info = path.parse(config.outFilename);
if (info.ext !== 'js') {
/* strip the extension and add .js */
if (info.dir) {
config.outFilename = `${info.dir}/${info.name}.js`;
} else {
config.outFilename = `${info.name}.js`;
}
const ext = config.typescript ? 'ts' : 'js';
if (info.dir) {
config.outFilename = `${info.dir}/${info.name}.${ext}`;
} else {
config.outFilename = `${info.name}.${ext}`;
}

@@ -197,0 +213,0 @@ config.outfd = fs.openSync(config.outFilename, 'w');

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc