From b36cc0a0ce2a39269365b913813be6d19348dd50 Mon Sep 17 00:00:00 2001 From: RedCMD Date: Sat, 13 Jan 2024 22:43:02 +1300 Subject: [PATCH] Attempt TreeSitter (json)regex parsing --- out/DiagnosticCollection.js | 60 +- out/DocumentSymbolProvider.js | 23 +- out/TreeSitter.js | 132 +- out/tree-sitter-regextm.wasm | Bin 4521 -> 32981 bytes src/DiagnosticCollection.ts | 80 +- src/DocumentSymbolProvider.ts | 25 +- src/TreeSitter.ts | 157 +- src/extension.ts | 2 +- src/tree-sitter/generate-wasm.ps1 | 2 +- src/tree-sitter/tree-sitter-regex/grammar.js | 264 +- .../tree-sitter-regex/src/grammar.json | 949 +- .../tree-sitter-regex/src/node-types.json | 328 +- .../tree-sitter-regex/src/parser.c | 8730 ++++++++++++++++- syntaxes/regex.tmLanguage.json | 4 +- 14 files changed, 10058 insertions(+), 698 deletions(-) diff --git a/out/DiagnosticCollection.js b/out/DiagnosticCollection.js index 711ddb9..564f14b 100644 --- a/out/DiagnosticCollection.js +++ b/out/DiagnosticCollection.js @@ -29,24 +29,50 @@ function Diagnostics(document, Diagnostics) { if (!vscode.languages.match(extension_1.DocumentSelector, document)) { return; } - // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) - const tree = (0, TreeSitter_1.getTree)(document); - if (tree == null) { - return; - } const diagnostics = []; - const language = tree.getLanguage(); - const query = language.query(`(` + - ` (ERROR) @ERROR` + - `)`); - const queryCaptures = query.captures(tree.rootNode); - for (const queryCapture of queryCaptures) { - const node = queryCapture.node; - const text = node.text; - const range = (0, TreeSitter_1.toRange)(node); - const diagnostic = new vscode.Diagnostic(range, `JSON error: \`${text}\``, vscode.DiagnosticSeverity.Warning); - diagnostics.push(diagnostic); - // vscode.window.showInformationMessage(JSON.stringify(text)); + const JSON = false; + const Regex = true; + if (JSON) { + // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) + const tree = (0, TreeSitter_1.getTree)(document); + if (tree == null) { + return; + } + // const language = tree.getLanguage() + // const query = language.query( + // `(` + + // ` (ERROR) @ERROR` + + // `)` + // ); + // const queryCaptures = query.captures(tree.rootNode); + const queryCaptures = (0, TreeSitter_1.queryNode)(tree.rootNode, `(ERROR) @ERROR`); + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const text = node.text; + const range = (0, TreeSitter_1.toRange)(node); + const diagnostic = new vscode.Diagnostic(range, `JSON error: \`${text}\``, vscode.DiagnosticSeverity.Warning); + diagnostics.push(diagnostic); + // vscode.window.showInformationMessage(JSON.stringify(text)); + } + } + if (Regex) { + // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) + const trees = (0, TreeSitter_1.getTrees)(document).regexTrees; + if (trees == null) { + return; + } + for (const id in trees) { + const tree = trees[id]; + const queryCaptures = (0, TreeSitter_1.queryNode)(tree.rootNode, `(ERROR) @ERROR`); + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const text = node.text; + const range = (0, TreeSitter_1.toRange)(node); + const diagnostic = new vscode.Diagnostic(range, `Regex error: \`${text}\``, vscode.DiagnosticSeverity.Warning); + diagnostics.push(diagnostic); + // vscode.window.showInformationMessage(JSON.stringify(text)); + } + } } // vscode.window.showInformationMessage(JSON.stringify(diagnostics)) Diagnostics.set(document.uri, diagnostics); diff --git a/out/DocumentSymbolProvider.js b/out/DocumentSymbolProvider.js index fa4776e..d7952d3 100644 --- a/out/DocumentSymbolProvider.js +++ b/out/DocumentSymbolProvider.js @@ -79,12 +79,13 @@ const SymbolKind = { }; exports.DocumentSymbolProvider = { async provideDocumentSymbols(document) { - const tree = (0, TreeSitter_1.getTree)(document); + // const tree = getTree(document) const symbols = []; if (true) { - this.getAllChildren(tree.rootNode, symbols); + const tree = (0, TreeSitter_1.getTree)(document); + this.getAllChildren(tree.rootNode, symbols, document); } - else { + else if (false) { let i = 0; for (const symbol in SymbolKind) { const documentSymbol = new vscode.DocumentSymbol(symbol, SymbolKind[symbol].toString(), SymbolKind[symbol], new vscode.Range(i, 0, i, 1), new vscode.Range(i, 0, i, 1)); @@ -92,10 +93,16 @@ exports.DocumentSymbolProvider = { i++; } } + else if (true) { + const regexTrees = (0, TreeSitter_1.getTrees)(document).regexTrees; + for (const regexTree in regexTrees) { + this.getAllChildren(regexTrees[regexTree].rootNode, symbols, document); + } + } // vscode.window.showInformationMessage(JSON.stringify(symbols)) return symbols; }, - async getAllChildren(node, symbols) { + async getAllChildren(node, symbols, document) { let symbolsChildren = []; let documentSymbol; if (false) { @@ -119,7 +126,7 @@ exports.DocumentSymbolProvider = { } else { for (let index = 0; index < node.namedChildCount; index++) - this.getAllChildren(node.namedChild(index), symbolsChildren); + this.getAllChildren(node.namedChild(index), symbolsChildren, document); let name = ''; switch (node.type) { case 'pattern': @@ -138,6 +145,12 @@ exports.DocumentSymbolProvider = { case 'value': name = node.text; break; + case 'regex': + node = (0, TreeSitter_1.getRegexNode)(document, node); + for (const regexChildNode of node.namedChildren) { + this.getAllChildren(regexChildNode, symbolsChildren, document); + } + break; } if (name == '') name = node.type; diff --git a/out/TreeSitter.js b/out/TreeSitter.js index effcb60..196b3eb 100644 --- a/out/TreeSitter.js +++ b/out/TreeSitter.js @@ -1,16 +1,31 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.initTreeSitter = exports.toPoint = exports.toRange = exports.queryForPosition = exports.queryNode = exports.getTree = void 0; +exports.initTreeSitter = exports.toPoint = exports.toRange = exports.queryForPosition = exports.queryNode = exports.getRegexNode = exports.getTree = exports.getTrees = void 0; const vscode = require("vscode"); const Parser = require("web-tree-sitter"); const extension_1 = require("./extension"); const trees = {}; +function getTrees(document) { + const uriString = document.uri.toString(); + return trees[uriString]; +} +exports.getTrees = getTrees; +/** + * @deprecated use {@link getTrees()} instead + */ function getTree(document) { const uriString = document.uri.toString(); const tree = trees[uriString]?.jsonTree; return tree; } exports.getTree = getTree; +function getRegexNode(document, node) { + const uriString = document.uri.toString(); + const regexTrees = trees[uriString]?.regexTrees; + const regexTree = regexTrees[node.id]; + return regexTree.rootNode; +} +exports.getRegexNode = getRegexNode; function queryNode(node, queryString, startPoint, endPoint) { const language = node.tree.getLanguage(); const query = language.query(queryString); @@ -66,15 +81,6 @@ async function initTreeSitter(context) { const regexWasm = context.asAbsolutePath('out/tree-sitter-regextm.wasm'); const regexLanguage = await Parser.Language.load(regexWasm); regexParser.setLanguage(regexLanguage); - // const regexTree = regexParser.parse('code'); - // const activeDocument = vscode.window.activeTextEditor?.document; - // if (activeDocument) { - // if (vscode.languages.match(DocumentSelector, activeDocument)) { - // const uriString = activeDocument.uri.toString(); - // const tree = parserJSON.parse(activeDocument.getText()); - // trees[uriString] = tree; - // } - // } vscode.window.visibleTextEditors.forEach(editor => { // vscode.window.showInformationMessage(JSON.stringify("visible")); parseTextDocument(editor.document, jsonParser, regexParser); @@ -102,25 +108,52 @@ function parseTextDocument(document, jsonParser, regexParser) { // vscode.window.showInformationMessage(JSON.stringify(document.uri)); const uriString = document.uri.toString(); if (uriString in trees) { - // return; + vscode.window.showInformationMessage(JSON.stringify("JSON TextMate: Why are we here?")); + return; } - const tree = jsonParser.parse(document.getText()); - trees[uriString] = { jsonTree: tree }; - const languageJSON = tree.getLanguage(); - const query = languageJSON.query(`(` + - ` (regex) @regex` + - `)`); - const queryCaptures = query.captures(tree.rootNode); - trees[uriString].regexCaptures = queryCaptures; - const regexTrees = []; + const text = document.getText(); + const jsonTree = jsonParser.parse(text); + // const languageJSON = jsonParser.getLanguage(); + // const query = languageJSON.query(`(regex) @regex`); + // const queryCaptures = query.captures(jsonTree.rootNode); + const queryCaptures = queryNode(jsonTree.rootNode, `(regex) @regex`); + const regexTrees = {}; for (const queryCapture of queryCaptures) { - const text = queryCapture.node.text; - const regexTree = regexParser.parse(text); - regexTrees.push(regexTree); + const node = queryCapture.node; + const range = { + startPosition: node.startPosition, + endPosition: node.endPosition, + startIndex: node.startIndex, + endIndex: node.endIndex + }; + const ranges = []; + ranges.push(range); + const options = { includedRanges: ranges }; + const regexTree = regexParser.parse(text, null, options); + regexTrees[node.id] = regexTree; } - trees[uriString].regexTrees = regexTrees; - // trees[uriString] = { tree: tree, regexCaptures: queryCaptures }; - // vscode.window.showInformationMessage(JSON.stringify(trees[uriString].regexTrees)); + trees[uriString] = { + jsonTree: jsonTree, + regexTrees: regexTrees + }; + // let index = 0; + // const regexIds = {}; + // const ranges: Parser.Range[] = []; + // for (const queryCapture of queryCaptures) { + // const node = queryCapture.node; + // const range: Parser.Range = { + // startPosition: node.startPosition, + // endPosition: node.endPosition, + // startIndex: node.startIndex, + // endIndex: node.endIndex + // }; + // ranges.push(range); + // const id = node.id; + // regexIds[id] = index++; + // } + // const Options: Parser.Options = { includedRanges: ranges }; + // const regexTree = regexParser.parse(text, jsonTree, Options); + // if(node.hasChanges()) {} } function reparseTextDocument(edits, JSONParser, regexParser) { const document = edits.document; @@ -131,7 +164,13 @@ function reparseTextDocument(edits, JSONParser, regexParser) { if (!(uriString in trees)) { return; } - const oldTree = trees[uriString].jsonTree; + const jsonTreeOld = trees[uriString].jsonTree; + const text = document.getText(); + // const trees = getTrees(document); + // if (!trees) { + // return; + // } + // const oldTree = trees.jsonTree; for (const edit of edits.contentChanges) { const startIndex = edit.rangeOffset; const oldEndIndex = edit.rangeOffset + edit.rangeLength; @@ -139,12 +178,12 @@ function reparseTextDocument(edits, JSONParser, regexParser) { const startPos = edits.document.positionAt(startIndex); const oldEndPos = edits.document.positionAt(oldEndIndex); const newEndPos = edits.document.positionAt(newEndIndex); - const startPosition = { row: startPos.line, column: startPos.character }; - const oldEndPosition = { row: oldEndPos.line, column: oldEndPos.character }; - const newEndPosition = { row: newEndPos.line, column: newEndPos.character }; - // const startPosition = asPoint(startPos); - // const oldEndPosition = asPoint(oldEndPos); - // const newEndPosition = asPoint(newEndPos); + // const startPosition: Parser.Point = { row: startPos.line, column: startPos.character }; + // const oldEndPosition: Parser.Point = { row: oldEndPos.line, column: oldEndPos.character }; + // const newEndPosition: Parser.Point = { row: newEndPos.line, column: newEndPos.character }; + const startPosition = toPoint(startPos); + const oldEndPosition = toPoint(oldEndPos); + const newEndPosition = toPoint(newEndPos); const delta = { startIndex, oldEndIndex, @@ -153,10 +192,27 @@ function reparseTextDocument(edits, JSONParser, regexParser) { oldEndPosition, newEndPosition, }; - oldTree.edit(delta); + jsonTreeOld.edit(delta); + } + const jsonTree = JSONParser.parse(text, jsonTreeOld); + // trees[uriString].jsonTree = jsonTree; + // Todo: only reparse modified regex nodes. tree.getChangedRanges(); + const queryCaptures = queryNode(jsonTree.rootNode, `(regex) @regex`); + const regexTrees = {}; + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const range = { + startPosition: node.startPosition, + endPosition: node.endPosition, + startIndex: node.startIndex, + endIndex: node.endIndex + }; + const ranges = []; + ranges.push(range); + const options = { includedRanges: ranges }; + const regexTree = regexParser.parse(text, jsonTreeOld, options); + regexTrees[node.id] = regexTree; } - const tree = JSONParser.parse(document.getText(), oldTree); - trees[uriString].jsonTree = tree; // vscode.window.showInformationMessage(JSON.stringify(tree)); // const changedRanges = tree.getChangedRanges(oldTree); // vscode.window.showInformationMessage(JSON.stringify(tree.rootNode.firstNamedChild)); @@ -186,5 +242,9 @@ function reparseTextDocument(edits, JSONParser, regexParser) { // // } // // } // } + trees[uriString] = { + jsonTree: jsonTree, + regexTrees: regexTrees + }; // vscode.window.showInformationMessage(JSON.stringify(trees[uriString].regexTrees)); } diff --git a/out/tree-sitter-regextm.wasm b/out/tree-sitter-regextm.wasm index b7f503686e6b0921dc194035800a4f398c9eaf0b..4929f5b34441a0e9070a7ce843d254c45ae93449 100644 GIT binary patch literal 32981 zcmeHw378edwg0KU_YO<<1=&|+7B&He0c77AWDpGx;)a4c48sM6ff*PE0k=WL4N)*| zxD%Je7mZ@nM3bl(#1)ss1yoer!7Z5Riw2DEcdEMjc30mS?w!Z~effXi>&vOCbLyO5 zo!YDW_8q8f=^{b6S~Z=sa$!YP<>K-mYgvT#)FRH%rvfEW$rgH_NK4Lnt^vlB^l= zSgPvGWNGQ5)S~K|m8G-GmZoBL#6qXEw6<*a!c3>MCU;7DFQ*6IQHAU#nGV>2f$&T3)trVQG17bCEyHw^Y@9NBtlwjjJ z;c4$yg3VjSf7VK1l z8+^eoCAh>Fe53>$P{Wtmd{4hof?Iu)@08#=zm)w-aG5Vy z^|Wl-n|+hjO7No(dZ`k8=L^; zC3w~E+x1Ftn-6-85|0YdoR^FZ+T&D#2U6V6zf@<6}If1dsaFe^v?p<#)q2CHTY_yrKm6_$IF@ z!E?S~hZ4N*o9tAAtCWV_jMuPD=mL9RKar@*7X`7{xP0nuQGw-J1&MrOremu(738^8 zAgpo!_xXR_0{Job#~))$TGWzAILQ_*4{6o9P5TZVJ9X|-P*~KxN6%ip5AV~r|DYj5 zhm9OHdd%2y?)V8uPb`^q%;aOITrW0=6HdHAoOJT^Q%;>R^R&~?m{m5rd`@cay!jOi zDiL+mw3nY3~wrJAgWGfc`t$0+B4N3EobYUD5`36M?!^r?U!EFk=G77 zzfc&HlH`7@ZC>FjD9=|caR*FF-Y%RwrCzU+_&E1V)>HhbNy!QB9_H^z=YNvskv|?T zBmeev{%)V2m~`RQm`TaQ9G9yw2A%0{MK;pCD_g{WF5)9cjZ2RqYdr?5H>URSFxnt) zQloEdNpgd5R3Dir8%1oy$gu&Gbr|$PlhDKKUMHMuCG$41F;4EQac0MmSgVXqQ<#8I3MxuzZxQYP=6v*9zwwVMdy(&T`4Q5u4G?}E5~6_XeK$T}hf%q0UW`FvIqPMCFJh>6MAl9? zWjR+W6Y2Yh@IBEr9>-0M>W$A?U_sDKR`px3@w!;7SPrC9VGkg=Uj$60WfAyV;KwB=Mxf9E>s`Ue=4 zyee%&ED#SUNnXzJ7Bu)JXtE?~bdA*Hu4s)MUdJvK&PCi8U}Zb6xConp8p$6byA9-j z1;A>1d696q zb=n4HtA%s1bOCD+^5hDL7Ra|ICW~zM3$FhKGXHI_tuY8OXt;%y{6#cbf$g?{V3kzF zsFxFi+mt)yTPWl^DckJmVP}L=q!d%OZEpmsbVWvu8ghJqOTxoYOPqY!dhX)R_LXqUU17D5&}Ql zIaeb|aBa@ zcGpNhpgmJq3BWItt1QsvvRivb8!ib`H(8CCyS9zn9%@THF;IAjE1t7kyB)#S*lvHn zrYx>@me}r_(DbUy>vxs2m{9`D^ z#dbwOJfB=KQXt~nEvFTcd$_DmzmnwXygNfjF6wf3o(Z(fMo+^vPjv+5`)M;~%xFHt zc4GwzXM&9~V&O7Sa6Rod!$a}L!YK|=;y`hE?@c)4Y&Q?lSjNnYV)pjE;4yrnbF%F= zfjSO8^4NW)$Z7f3xr`UE|AsWD&M#AaO`%c0+k{xIh zc7R**g>>Vq892e2SdZ#9Q+2#^G^@6aqVl}G(`HACkemh z0_1WL?L&4_mrwSgBF1nBcR*Ep*;uL)PER)M7%@bl`{W|o7fn3I#z80J931Uodt+&& z8V6B0_b-|4M}_T2IHTB|P7!zNTdYQg?T4!o)H!4?Pe8f_F&B*%Bzc;Fp^F1FtV$#%I8DG5jaE~<=OH* z@4Ok4x4fEUKd*}E=IP_~WBcwQdp6)R019>vRps+})H7D)AMW(!Q(VGnZM!`Ywcs=uyD8D9kUFJKA!lnO`nL3`&qhZ)zpPfciZg?3!5$a zMJ%`!bzDuClJ6AqrkZe?@s62rn(`qe;WV+`0f_Q!w-`~vb_XJgGwi?&uzcr$X6cG< z!MIRI9&{5We~aNTEeki9J!#T*K(d> zhj8m226(jYb7%%MukK9v!41O={yAcZ`58+~Z`)6Ia1wnXA8oW?Q^@&dG1I+b(o(n7 z@>a2>5G{=x#TNRe@D1-~@IW_(ycF|oVN&poqPjCg;x*zM$iL9!F0!?dew!vIiFNdi z;-@qT+%7t938GJNvnUaEQwb~}3EeE(cvKU(PedJYgP5FLgTx-3=PW+xji_{cO|Gd) zCcW1A0vT6*3AefIuvmgV7+3%ma)}Q*OXBF>{~bCwd+NZ7VQ$k z>;%m0+f?<{(g%kJe?vji$!`K9TCFppA)9)qw^wl9}>bGoKxKu=CTOph!EzmoG?$4b)POVM>SaY zT*v3Sh@WoA&#^iAsp?)9!JHVvoX`l&B@xW%e9yk_YJ8qAF@xiCQpnHA@H6}IsW4|p zFpmpiPH6;Yc?2^$mU8uTP6Tsm$j_fP!q2%8%;;K|tDjX7%;;K|E9Th|%;@;c6%)@3 zjs56^P*p+q89doV_s#6rI)%A9g1IE*XEprH9#gG#S4HZ+G=#aV z5p_>R{9GBrT;2#jOCx^%&(92a?2h>!?4xMivu{t;M|gF@z>KcRxnj~uZGrA_{ii!7Z4L_rMT&|dP5zJ`6XOF4I(t3#*981x2a`tBi)$f%NKco9* zu6|w_@iTfalf9p+?rS5My+ZSd?+tUsTob{J?nl{Us`gwMY0v1{CfD}7G~#EMP~G{N zK=yvB_B=O&8QtTu#f;NWfi|A%0(XVx6PE0E_Bfp{pEIeaSQi6RKmA!PI(qfg&#w;r z)JpqyX~4HwsPz&#?B;R8Ye%T7dirJhru#MMT|>{j;&h^Hw<`m_McXa=UQlT318C8j zW{;-&^y&aw)HhvY?uTq@dR>EP+4^SDO`#sV0pmh@l5N{(!cgT05gL9X+JbJ8qv00_ zThrYL+t57-+tPgqJJJIPJJCZ3yVCCv9!Wn#f4j5^;UvOqblzyb11UAee~*-U+IlLU zg&sviXatRi%4 zq+i~jvnnr}l3qo5twZ%|xV#w+)GwRzUeB?-hT1cm^0wz#-f0=?XVIIXar<@->vnX! zX20fJ^j@gkcXC+qEQ;>4dafO4)?4&`sN4^8s_(}k+fQ?{jh@@HUt6MQmF(*qJ>O`%Oz z*607pxXRu(Iv29HjqVHC+eYVa_O{XWIeXigq4~?tnX~WT=-!>ZZR78$EsBn-?CTp{ zW3#tSgvN6djOXla8~;qkqRLPo@w4mf+c~-)W$$yezS)->^*Q@;&3l<#>Kkq6?8}Yr z``Oz@$8+|!(X&eSw$b^Uy=~*4=~)!D&A!~|xh`AVCe+O0`@P%bUE@ZC80NRA z2gbN3f?cALxMKH{#y9dVj&j^P3jnIKH?u}rWv;Dvr_eU_ynR{T2 zyCWFpENlqlc36+6J0wOjFhjB*>v1|HF#E#K`VR4CnSNFjoo#XYx%8k-pltK`S^fTN z>vjR_SZH5Nhyz=93|MDhcJxWZfomImN>IOd(bcpeU2}JANY~uK8`9kuYR&H(XibaE z6}%zb?B`1K)ZY-Ud6H{LH~YC}QTFSUMdqo!ejgIl1#{;}>V|M2-H4emmL5bni4L{& z6V3$wPy*`|Nu81P==6{}y`;{tj5={TT2iTU-K+B>-=`cKP z9W14fO6d?^I!sD`FQp?qX`DtuT0mnE7ScF`MKm5^51<^4xC1>b^-Fw|W297JAL~n} z1f=N_r)H4iI}1n)=mdm?bP~cMnvRf5JQZ;Vnu)M8Z9%ycAv+yhJ1UhqPeOJyWM$wA zs2pJ-r4aUnOj*s7dfK)ETsvAQW!hHZRfS}WC0B#cEO(jAdEP5`Ik-YviLeiyjj*p@ z?zvJ=ms=bpfwa$8gDaqG5f;+* z2#fr3Z;*PAh1%*SDSO=WS+&b8Quef`cN@4u`Z>ZrbO%B%_b$W*^h=rZp9r}O<;y+b zI?$g&c)ymi%^n{2L2tSrVF5jWun@Lf$KLdylsznE0zF}&KRRH4`5h!Z=~0CJ!2JPn zZ+gt*(w5zk$L-c#qV+^+i-FJqy=2LLS7ox+6B6M`4}r%=cW-1^v;|yG+A8w|JtH~c z%~0RnafkXAY|LJ{5>!KeJ}q*8KY{r z`h(5@T?Tpx^e(6=syz^N8t7usCeT};xJ7g%=oHWepnE}YfY8;{2XrFnJkZ^szkv3G zdd7*SfzATm33>_i9jGut^b^pTppBsCLEnH5%Og4lR0Fyh^fYKMsB;sdqd`@m4WK`P zz5umvN;D3%0CWxLanNp1>t;lwK;@t{pa(!ZKtFn zG3ZLry`bkoyFo2m6BUC_04)Pu4|){zHs}XXw>E^IFQUyr7lD2WdK&aGD306qBG72i z37`s49q3xnJ)kE++d*G~V(o}Jf%=0cf~JEiKxc#2fUX5?1l`oabQ9<<(EXrCL0dpCg0_R+2Ymwi z67&sdAIR!J)CAN5)DF}YR0Qe;>I>=*8Uz{&8VMQ;ngE&vIu0}ybOLBPXeOu>R1TU4 zssvSomV%ap&IZ+iE(Bcyx*W6)bT#OD&`qG*KzD#b7v>YpmqD;lLY_|FH)oDf*YWAgVp{97J<_rc%8>EFVrJCSx+FFW8H;ZE2G zy5QSjKJ)M|dJ3@b6k*-(fpxSO*2=@NF80O#lKz#?KpI4YyvYSVFuFe%k9)q8|r*BW_xXC<^_3O zjv3ddqva;PX&=nzG`69GLYdmCA=#lQH%PqIYvM&fr*+ISrUEb4Y0YySOq=fB(a>+TE_X>CyqIvW4^Rp%QPR<(=v^#`F;WW0x!)m>oIXU$g|YKCyo!V zXL;Ul{+eSwYbJl&XG7W&@3$o7de)(y^{hayXIsbN9 zzF6P-Lwg)nx&o|$gRmlu1I9qimTu51#)>%{E9W$nHw`hbqMd0vKBv+QnknfFaI>h4 zW>Y!Mp%l%Q<6|{gVX(275DypW%_*5Zh4s>SIa_CnhrwsWiIuEDHRghKU7n-Z- zBG_Gsa5~Zzkk3c{I(+6~6)%7<-B6!=c-I5o4}^aMAl05t2jV(dUI^@Yu$=|W^H9P< zyl2Fp2XStF81y^PqewlB)MNBGJ%R8^#9Qbo+KTj6NS*`#0&Rn28`3Yx_*Ht9UZ*!` zJMEx1=`DoY5x+t2(Jp$QKA;cjBcwi|PeFU=Gy0sqK;BnK@1?IL{|&eg=^xPk9$FtD z{0DUQqW5`Jq%Y=KqUD-b8ev^+rKH-9rD;jnUR%^3#|Xbd#mH+SL;MXb?~}wBR97oR zZE%04E*_73@qFTypqq?!P=G{{$MlfDr9B*D4JSDKW|cqfy;yN7?1*21>gxd{`eJA9 z58|*t`hAf69ECAD9G{Ui8aiXi^-LyUU*>C)3@6iZGS7!=DsB^A3_fc~~iVEmv_c%+8+*_`_G_LGq_LPHbwAR;hHDn?H;G&HSnU zH}PkQ*Ix(AA70=1Y^dU3X!h4q{Bf|AAP!f`F~h+*R43CHV7I~@8m*BW(G|2_rmmLZ zb##L#SJBOgZu2C!(_M78{IK9)jh}n|m;37i`nB9&)h_#>S2v>HVxLvl9}zu)=Ys0m zO3%u~3o?9({_M$B^cte=p5!fh2YV`i_;Tb&$BI)SzxS-K=zgJd^nCyDf4P0k{X+Zm z@j+gHTI0=QJf4xEO6$-Z&*A+``}3*i&%tURb#CB$67v)GXOD5-(EfaWP|q8B+~~OR z{Q24&KYu?+{H6oh(7Pk#R6Yj*UftcK^-W&g>80~y%HFR(9{e+&&v!NWnFfEP!K)L1Z%+SVVoo+gNgFKa@4OM~Zo%%DEsH3fNox*OyN8$93D z1oQF5Pl$I7p6@z>`usF5$n*Vnkmn~B#b-!qwXn7bv8SOESGRiTYSgza-)Cc1#qdvx0Mmfe=M)|mU~vvRoA#C>QH)M*WxSkz*assE_qHqa5pUMmg5!jB>2g8Rb~7Gs?%;Bggs; z{dE5wrP>=Zb+tBlJH!j&?U%kj`Uh7U?=XX(VDPOBo}Z_s?S;koc#7!bw^jKvr+^+ixXmK7*F$3$^me2 z>GFJDN+FMp3FSw4YnaN{`kL465$Al1U6q&6d?;U5C6J%?M_Ar|r0q>!V4mXA{tL}( zeKFR^SG>Q@dii)WA*^SORJ_K~yzjTyE;>K1_$cm42JR>W*W)#=FzRda31fU}Ui*>o z+FRpkUgyURd(G?on31n}Ki}{-X4EIz2JJea)Y;cL7IKTi3h{kIHW7~>+s8|^2;JmK#o@Rgp=uH@x9f-?PaY$>_t2KE8P z`{T=7CnO$}qIg(WAlG^~+S8z(h&dkD>Y0ueXnyXO6TWBrL6>r>pA@0$1RjrA{X z@N)f4_m437Jg@z9eNEm9pNE9zJ$?N=J>CBsWsW~j{Qd2ACHL&~dLr#nm$d!Q!}k6< z13C24xM~~_e&fJb+WuC9e^Bu< z@r3WZ<@zUck@VzgT=hOun*W2;O!K!G{G$f1%1!J4-pE(a`P2EI8u@P;{Kp1=gTX%> z;)SK2tEB6#c)ZD{>g~7hfRG*DHZ=Gr4E~=6|Bk`$GWeSf{u_h;+Td?8_}vEoFN5!I z@Wql(*ITVmcq1}YZ(*71*1!;suv9ywaTJfY9YZ*H<1=JOcyEEPbie+W!S6KqpBVfP z2LGYKZ#Vc)4E_s)53i4eH!Ju``}du}ziaTv82qaSzt7;`Huwz&f33k68vK5Pf8XHW zF!*Rbzn@b4LXZ-f8V;9ocRB7=X+;LZAZ?cw|PrJ?_o zh6>}?6HMA&ITUJ_LT~%9C zjsHp;dQ@JvxOQ1hs&rmW^|HlOwh(4z{Qq!MX==sdn$*&zoUSgfEn7$nD>!o@%}=c; zo0BT9ScLTKvhvEMC}ln^T{asKwG~wcw6?l3RdrMtM+>D-iWwYqNsD~Xf&$+g zE!0h?_(7_snh8`?iwx93foca;jB*C~U8Ix-2Fn>3^?sn)1_LAIC>5ief$4H;Qj1e% zwZ-OO!2gx5xA32I4}lP3lv9(qRt3(Y_T45Ixkq1 z92~`FOBF|2s#uRl4Z?kBG+Z$T-;^T|OgI8>ZS}#MXT5n$_Tn+ARvEm@kJ+Yn0KB^| zXC4B~%?^lS9-oJJ(+I^(!*;xJ64B<_UZ##WfS9n}jm_ z76$P%h;NxibQI`4@Hc=i0d+*#ok5F`-xmB~NMDEeGEi5f>kzL1Z9x9Hux$r=0{pXQ z;P*R_tpQ&M+6LL_;1?mC0DX`2TF5pdeF|tV(!ToE?tRcH0ri0F zGw`*Lw?VoEs1E$AD6bo2#h{6xJ>c^Yzlpdn;^Cm@k)DlsDrg4i8}P$n`!C>r0_uzO LWYFtKw?h2iqaLS- literal 4521 zcmb7HO^h7H6@FFSGdr{0J%792UmMM=WwZp_!ci1tN5n26?=oSHC4{1gkhI6+G2Wf^ z{>+XINI_!)2M$Q_Awr07uoPshC{mE%f`kMIPKggbL_}IU2xJT85Gg+Rz>m@Ly{fL6 z>7Ioo-F{v5z543a_g+=Ecc`{;RuHa2=G1e`i!06j4~W#2QCE=InLZ&p1QVSTL?;N1 z>@dKS}Nk7%5jet{A#s7Q^rv2n_4B<>j#6UTtj z+4fly*&#u@g(u|j9|QM&M~KdDQeTvo@O*n{>Bo}Lxy#UWFO2ZWB{v#*NyBT|2)?Z0 zrz1-<5&bpoxR8p*-_Y&w#>+_`4ZNbJQ{m{J0n`a7&N; zsT9F~Y52N@|JLw^CEwQYJv(|w!<%;W3k|Q@(YqS{)xry-T!+sr`6UfEEqqzSix$43 z;YSu;)bL#kf3M+H3t!XlvW0JG_^O4MG`wTsn;QOBtMW2jifg4M?|Me0I?AoM@`!Up z9x2nTq>58Ut!Cv!QBWnVs3IkX{@=SS)Yg`>o*N+{-O)^T*xNDY2f2KqSQ^>sVM$R= z2NNc0*-_W2nRA3pk*9JPN>wDBv(22GO7HSip(6ZAPYE;=o(e#4)D4;o#?c1H6e&2` z>V>PcJ{?RbAGC2#4OIj(Vj{wf3-Zd&QNWqGRxqwI;EZ{ygl30TGm6noT5ylB1U;1n zjLH6)WBw@OXt`3z5l`h20ZkE2$x|sbMHZSWL)1@%Yf9-CiTY$0SfcFk5;Icm!-{38 z0@Gxx=npRh&J_EqzQfVd=vS(NKr_=+4pa8>W41c&OH0^47Z7~^q+>eX;W>a!Iu=Nd zbe-nFMCTKfjcH#~Q%R1oMNHhH>U1UTmD65OP-$J@+;Mb8MXDF>QrS7L#QM>oz`1Ul z9p*5(>=c}%K_0b00c5-YnAcZ?oGF4X!JchPpoOCZTK5dAELU5;;4JQ)cROg1p3Ze2 z4<3wCJrreX68nUzt&|d;7vy-;v3JNTm&_}NT^kS#ZuyZw=NnBmrvqu~(=pS`rAqmH zzQhMa?VAgHG>7H`9Za7QY?YqRhk1+UgTOEFGVWkqvbKEsT>E~W&ywqBn4TJ>dpZ+- z1%`X4I-`bh{DwX3pX;aj1#tb82kEZwa-2*&j@dEP#_n3$&w45gHjWgb5uS1?JhL1Z z%oULc$>)UQ5`Qf+#S~$N$FDB$kXZMgC)vU9PkD1mRib8|XFRr!1O<9~aH^-!{$^dx z&Y|6}AJyq-_%IGD4}YaMnxezaEr;2pM-c}d9BSS2mXrDhTkd(@Uq8~^DTf4S>liuqZO z;m7r`e&dhpXPw3$*U9lszVZ01$N1xV)=&!vd%A+B*;PqrBH!t*Pf!cB8-lfA1Us)W zy0}JQ_reas7GNQ)33~?iBJ6jtKfvCCy#xCI_BYr+U^ij^fqe;c5E_3ck;hBe%l2){ z>-YW%67hd_TCe4^!0q4<{Xc9I}J7Ij8GNC4Yw~5>TWOXU*=MZ9}-msm(>@zpI zh)-Cdhlx%Q&(_K8Z$HK_4Kr>EiT;Ga`pJ(7cgJ}*d+`XT zD~`?i!ZD4mQer&9-ErO<#Oq?Ne1Cl2vHo#>`+8VNqu;24Kf*dM#FSCoo*((JUq|WZ zNB#jmnA`G^H~dz&5T*`;aZwMRKM)sn*fwtDAK;@-+wxH#_#-;9n$($DT|`p`NBMSf zcfweLKbpWfjeB|7?+4alJy9GXtsm>LKUy#8x4Nv~Vt)7dvRF7~T`RMTyX!^#?mEf& ziE$?}F8C|ZtD6|W{BHH>5fRp2_+_N8t0$pX_=)*(Y~I~o{BFH$!uSU9rGHUV{YdUFH(Gt^i)MZcn_aM3S&?y$Yu zY^?mytbyO|YmHj_z(BO`@<*$fAP16B572!y3;kRb^TyjR1<^h5WneZ{{sO#hJ_A%n zA+F(b`KfvBF=DO@@P7!q1^XO!8}`3mYf)_Ge~g8HfY?*88|WWIdlT&f+MmHbLw^%? U5%v-6UD#FFW!S5*J1_~}w{fD({{R30 diff --git a/src/DiagnosticCollection.ts b/src/DiagnosticCollection.ts index a9514b7..be35cc5 100644 --- a/src/DiagnosticCollection.ts +++ b/src/DiagnosticCollection.ts @@ -1,5 +1,5 @@ import * as vscode from 'vscode'; -import { getTree, toRange } from "./TreeSitter"; +import { getTree, getTrees, queryNode, toRange } from "./TreeSitter"; import { DocumentSelector } from './extension'; export function initDiagnostics(context: vscode.ExtensionContext) { @@ -40,34 +40,64 @@ function Diagnostics(document: vscode.TextDocument, Diagnostics: vscode.Diagnost if (!vscode.languages.match(DocumentSelector, document)) { return; } + const diagnostics: vscode.Diagnostic[] = []; - // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) - const tree = getTree(document); - if (tree == null) { - return; + if (false) { + // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) + const tree = getTree(document); + if (tree == null) { + return; + } + + + // const language = tree.getLanguage() + // const query = language.query( + // `(` + + // ` (ERROR) @ERROR` + + // `)` + // ); + // const queryCaptures = query.captures(tree.rootNode); + + const queryCaptures = queryNode(tree.rootNode, `(ERROR) @ERROR`); + + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const text = node.text; + const range = toRange(node); + const diagnostic = new vscode.Diagnostic( + range, + `JSON error: \`${text}\``, + vscode.DiagnosticSeverity.Warning + ); + diagnostics.push(diagnostic); + // vscode.window.showInformationMessage(JSON.stringify(text)); + } } - const diagnostics = []; + if (true) { + // vscode.window.showInformationMessage(JSON.stringify("diagnostics")) + const trees = getTrees(document).regexTrees; + if (trees == null) { + return; + } - const language = tree.getLanguage() - const query = language.query( - `(` + - ` (ERROR) @ERROR` + - `)` - ); - const queryCaptures = query.captures(tree.rootNode); - - for (const queryCapture of queryCaptures) { - const node = queryCapture.node; - const text = node.text; - const range = toRange(node); - const diagnostic = new vscode.Diagnostic( - range, - `JSON error: \`${text}\``, - vscode.DiagnosticSeverity.Warning - ); - diagnostics.push(diagnostic); - // vscode.window.showInformationMessage(JSON.stringify(text)); + for (const id in trees) { + const tree = trees[id]; + const queryCaptures = queryNode(tree.rootNode, `(ERROR) @ERROR`); + + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const text = node.text; + const range = toRange(node); + const diagnostic = new vscode.Diagnostic( + range, + `Regex error: \`${text}\``, + vscode.DiagnosticSeverity.Warning + ); + diagnostics.push(diagnostic); + // vscode.window.showInformationMessage(JSON.stringify(text)); + } + } } diff --git a/src/DocumentSymbolProvider.ts b/src/DocumentSymbolProvider.ts index ed6b856..7a93d07 100644 --- a/src/DocumentSymbolProvider.ts +++ b/src/DocumentSymbolProvider.ts @@ -1,5 +1,5 @@ import * as vscode from 'vscode'; -import { getTree, toRange, toPoint, queryForPosition } from "./TreeSitter"; +import { getTree, getTrees, getRegexNode, toRange, toPoint, queryForPosition } from "./TreeSitter"; import { SyntaxNode } from 'web-tree-sitter'; const SymbolKind = { @@ -95,13 +95,14 @@ export const DocumentSymbolProvider = { - const tree = getTree(document) + // const tree = getTree(document) const symbols = [] if (true) { - this.getAllChildren(tree.rootNode, symbols) + const tree = getTree(document); + this.getAllChildren(tree.rootNode, symbols, document) } - else { + else if (false) { let i = 0 for (const symbol in SymbolKind) { const documentSymbol = new vscode.DocumentSymbol( @@ -115,11 +116,17 @@ export const DocumentSymbolProvider = { i++ } } + else if (true) { + const regexTrees = getTrees(document).regexTrees; + for (const regexTree in regexTrees) { + this.getAllChildren(regexTrees[regexTree].rootNode, symbols, document) + } + } // vscode.window.showInformationMessage(JSON.stringify(symbols)) return symbols }, - async getAllChildren(node: SyntaxNode, symbols: any[]) { + async getAllChildren(node: SyntaxNode, symbols: vscode.DocumentSymbol[], document: vscode.TextDocument) { let symbolsChildren = [] @@ -152,7 +159,7 @@ export const DocumentSymbolProvider = { ) } else { for (let index = 0; index < node.namedChildCount; index++) - this.getAllChildren(node.namedChild(index), symbolsChildren) + this.getAllChildren(node.namedChild(index), symbolsChildren, document) let name = '' switch (node.type) { @@ -172,6 +179,12 @@ export const DocumentSymbolProvider = { case 'value': name = node.text break + case 'regex': + node = getRegexNode(document, node); + for (const regexChildNode of node.namedChildren) { + this.getAllChildren(regexChildNode, symbolsChildren, document); + } + break; } if (name == '') name = node.type diff --git a/src/TreeSitter.ts b/src/TreeSitter.ts index ecfe42c..3e26ba7 100644 --- a/src/TreeSitter.ts +++ b/src/TreeSitter.ts @@ -2,20 +2,38 @@ import * as vscode from 'vscode'; import * as Parser from 'web-tree-sitter'; import { DocumentSelector } from './extension'; +interface trees { + jsonTree: Parser.Tree; + regexTrees: { + [id: number]: Parser.Tree; + }; +} + const trees: { - [uri: string]: { - jsonTree: Parser.Tree, - regexTrees?: Parser.Tree[], - regexCaptures?: Parser.QueryCapture[], - } + [uri: string]: trees } = {}; +export function getTrees(document: vscode.TextDocument): trees { + const uriString = document.uri.toString(); + return trees[uriString]; +} + +/** + * @deprecated use {@link getTrees()} instead + */ export function getTree(document: vscode.TextDocument): Parser.Tree { const uriString = document.uri.toString(); const tree = trees[uriString]?.jsonTree; return tree; } +export function getRegexNode(document: vscode.TextDocument, node: Parser.SyntaxNode): Parser.SyntaxNode { + const uriString = document.uri.toString(); + const regexTrees = trees[uriString]?.regexTrees; + const regexTree = regexTrees[node.id]; + return regexTree.rootNode; +} + export function queryNode(node: Parser.SyntaxNode, queryString: string): Parser.QueryCapture[]; export function queryNode(node: Parser.SyntaxNode, queryString: string, point: Parser.Point): Parser.QueryCapture | null; export function queryNode(node: Parser.SyntaxNode, queryString: string, startPoint: Parser.Point, endPoint: Parser.Point): Parser.QueryCapture[]; @@ -88,17 +106,6 @@ export async function initTreeSitter(context: vscode.ExtensionContext) { regexParser.setLanguage(regexLanguage); - // const regexTree = regexParser.parse('code'); - - // const activeDocument = vscode.window.activeTextEditor?.document; - // if (activeDocument) { - // if (vscode.languages.match(DocumentSelector, activeDocument)) { - // const uriString = activeDocument.uri.toString(); - // const tree = parserJSON.parse(activeDocument.getText()); - // trees[uriString] = tree; - // } - // } - vscode.window.visibleTextEditors.forEach(editor => { // vscode.window.showInformationMessage(JSON.stringify("visible")); parseTextDocument(editor.document, jsonParser, regexParser); @@ -140,32 +147,60 @@ function parseTextDocument(document: vscode.TextDocument, jsonParser: Parser, re const uriString = document.uri.toString(); if (uriString in trees) { - // return; + vscode.window.showInformationMessage(JSON.stringify("JSON TextMate: Why are we here?")); + return; } - const tree = jsonParser.parse(document.getText()); + const text = document.getText(); + const jsonTree = jsonParser.parse(text); - trees[uriString] = { jsonTree: tree }; - - const languageJSON = tree.getLanguage(); - const query = languageJSON.query( - `(` + - ` (regex) @regex` + - `)` - ); - const queryCaptures = query.captures(tree.rootNode); - trees[uriString].regexCaptures = queryCaptures; - - const regexTrees = []; + // const languageJSON = jsonParser.getLanguage(); + // const query = languageJSON.query(`(regex) @regex`); + // const queryCaptures = query.captures(jsonTree.rootNode); + + const queryCaptures = queryNode(jsonTree.rootNode, `(regex) @regex`); + const regexTrees: trees["regexTrees"] = {}; for (const queryCapture of queryCaptures) { - const text = queryCapture.node.text; - const regexTree = regexParser.parse(text); - regexTrees.push(regexTree); + const node = queryCapture.node; + const range: Parser.Range = { + startPosition: node.startPosition, + endPosition: node.endPosition, + startIndex: node.startIndex, + endIndex: node.endIndex + }; + const ranges: Parser.Range[] = []; + ranges.push(range); + const options: Parser.Options = { includedRanges: ranges }; + const regexTree = regexParser.parse(text, null, options); + regexTrees[node.id] = regexTree; } - trees[uriString].regexTrees = regexTrees; + trees[uriString] = { + jsonTree: jsonTree, + regexTrees: regexTrees + }; + + // let index = 0; + // const regexIds = {}; + // const ranges: Parser.Range[] = []; + // for (const queryCapture of queryCaptures) { + // const node = queryCapture.node; + // const range: Parser.Range = { + // startPosition: node.startPosition, + // endPosition: node.endPosition, + // startIndex: node.startIndex, + // endIndex: node.endIndex + // }; + // ranges.push(range); + + // const id = node.id; + // regexIds[id] = index++; + // } + // const Options: Parser.Options = { includedRanges: ranges }; - // trees[uriString] = { tree: tree, regexCaptures: queryCaptures }; - // vscode.window.showInformationMessage(JSON.stringify(trees[uriString].regexTrees)); + // const regexTree = regexParser.parse(text, jsonTree, Options); + + + // if(node.hasChanges()) {} } function reparseTextDocument(edits: vscode.TextDocumentChangeEvent, JSONParser: Parser, regexParser: Parser) { @@ -179,7 +214,13 @@ function reparseTextDocument(edits: vscode.TextDocumentChangeEvent, JSONParser: return; } - const oldTree = trees[uriString].jsonTree; + const jsonTreeOld = trees[uriString].jsonTree; + const text = document.getText(); + // const trees = getTrees(document); + // if (!trees) { + // return; + // } + // const oldTree = trees.jsonTree; for (const edit of edits.contentChanges) { const startIndex = edit.rangeOffset; @@ -188,12 +229,12 @@ function reparseTextDocument(edits: vscode.TextDocumentChangeEvent, JSONParser: const startPos = edits.document.positionAt(startIndex); const oldEndPos = edits.document.positionAt(oldEndIndex); const newEndPos = edits.document.positionAt(newEndIndex); - const startPosition: Parser.Point = { row: startPos.line, column: startPos.character }; - const oldEndPosition: Parser.Point = { row: oldEndPos.line, column: oldEndPos.character }; - const newEndPosition: Parser.Point = { row: newEndPos.line, column: newEndPos.character }; - // const startPosition = asPoint(startPos); - // const oldEndPosition = asPoint(oldEndPos); - // const newEndPosition = asPoint(newEndPos); + // const startPosition: Parser.Point = { row: startPos.line, column: startPos.character }; + // const oldEndPosition: Parser.Point = { row: oldEndPos.line, column: oldEndPos.character }; + // const newEndPosition: Parser.Point = { row: newEndPos.line, column: newEndPos.character }; + const startPosition = toPoint(startPos); + const oldEndPosition = toPoint(oldEndPos); + const newEndPosition = toPoint(newEndPos); const delta: Parser.Edit = { startIndex, oldEndIndex, @@ -202,11 +243,29 @@ function reparseTextDocument(edits: vscode.TextDocumentChangeEvent, JSONParser: oldEndPosition, newEndPosition, }; - oldTree.edit(delta); + jsonTreeOld.edit(delta); } - const tree = JSONParser.parse(document.getText(), oldTree); - trees[uriString].jsonTree = tree; + const jsonTree = JSONParser.parse(text, jsonTreeOld); + // trees[uriString].jsonTree = jsonTree; + + // Todo: only reparse modified regex nodes. tree.getChangedRanges(); + const queryCaptures = queryNode(jsonTree.rootNode, `(regex) @regex`); + const regexTrees: trees["regexTrees"] = {}; + for (const queryCapture of queryCaptures) { + const node = queryCapture.node; + const range: Parser.Range = { + startPosition: node.startPosition, + endPosition: node.endPosition, + startIndex: node.startIndex, + endIndex: node.endIndex + }; + const ranges: Parser.Range[] = []; + ranges.push(range); + const options: Parser.Options = { includedRanges: ranges }; + const regexTree = regexParser.parse(text, jsonTreeOld, options); + regexTrees[node.id] = regexTree; + } // vscode.window.showInformationMessage(JSON.stringify(tree)); @@ -243,5 +302,11 @@ function reparseTextDocument(edits: vscode.TextDocumentChangeEvent, JSONParser: // // } // } + + + trees[uriString] = { + jsonTree: jsonTree, + regexTrees: regexTrees + }; // vscode.window.showInformationMessage(JSON.stringify(trees[uriString].regexTrees)); } \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 04340e0..9b30dbf 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -21,7 +21,7 @@ export async function activate(context: vscode.ExtensionContext) { // vscode.window.showInformationMessage(JSON.stringify("TextMate Extension")); await initTreeSitter(context); - initDiagnostics(context); + // initDiagnostics(context); initTokenColorCustomizations(context); // context.subscriptions.push(vscode.languages.registerHoverProvider(DocumentSelector, HoverProvider)); // Mouse over Hovers diff --git a/src/tree-sitter/generate-wasm.ps1 b/src/tree-sitter/generate-wasm.ps1 index 6593b97..05f1921 100644 --- a/src/tree-sitter/generate-wasm.ps1 +++ b/src/tree-sitter/generate-wasm.ps1 @@ -19,7 +19,7 @@ cd ./../tree-sitter-regex/ # build the wasm files cd ./../../../out/ ./../node_modules/.bin/tree-sitter build-wasm ./../src/tree-sitter/tree-sitter-json/ -# ./../node_modules/.bin/tree-sitter build-wasm ./../src/tree-sitter/tree-sitter-regex/ +./../node_modules/.bin/tree-sitter build-wasm ./../src/tree-sitter/tree-sitter-regex/ # return to previous location diff --git a/src/tree-sitter/tree-sitter-regex/grammar.js b/src/tree-sitter/tree-sitter-regex/grammar.js index c02e3f3..f7a0f86 100644 --- a/src/tree-sitter/tree-sitter-regex/grammar.js +++ b/src/tree-sitter/tree-sitter-regex/grammar.js @@ -1,47 +1,275 @@ // https://github.com/tree-sitter/tree-sitter/blob/master/docs/section-3-creating-parsers.md +if (false) {// `tree-sitter generate` fails if this is true + // However the VSCode js extension still seems to pickup the file. Providing lovely tooltip hints :) + require('./../../../node_modules/tree-sitter-cli/dsl'); +} + module.exports = grammar({ name: "regextm", extras: $ => [ //$._whitespace, ], - // word: $ => $._string, + conflicts: $ => [ + [$.unicode], + [$.quantifier], + ], + // word: $ => /.+/, rules: { - regex: $ => repeat1( + regex: $ => optional( + seq( + optional( + alias( + $.quantifier, + $.ERROR, + ), + ), + $._expression, + ), + ), + _expression: $ => repeat1( choice( + $.octal, + $.hexadecimal, + $.backreference, + $.subroutine, + $.property, + $.meta_control_char, + $.unicode, $.backslash, $.capture_group, $.character_class, + $.alteration, $.literal, ), ), - literal: $ => prec(-1, /[^"()][^\x00-\x1F\x7F "#$^.+*?|\[{()\\]*/), - character_class_literal: $ => prec(-1, /[^\]"][^\x00-\x1F\x7F"&:\[\]\\\-]*/), - - backslash: $ => choice( - '\\\\\\\\', - /\\\\[^"]/, - /\\[^\r\n\t]/, + literal: $ => prec(-1, + seq( + repeat1(/[^\\]/), + optional($.quantifier), + ), ), - + backslash: $ => seq( + choice( + '\\\\\\\\', + /\\\\\\["/bfnrtu]/, + // /\\\\[^\\]/, + /\\\\[NORXDHSWdhswaefnrtvABbGKYyZz]/, + /\\\\[$()*+?|\[^]/, + /\\\\[ !#%&',-/:;<=>@EFIJLQTUV\]_`ijlmoq{}~]/, + /\\["/bfnrtu]/, + ), + optional($.quantifier), + ), + quantifier: $ => repeat1( + choice( + '?', + '+', + '*', + token( + seq( + '{', + choice( + seq( + /\d+/, + optional( + seq( + ',', + optional(/\d+/), + ), + ), + ), + seq( + optional(','), + /\d+/, + ), + ), + '}', + ), + ), + ), + ), + alteration: $ => '|', capture_group: $ => seq( '(', optional( - $.regex, + alias( + $.quantifier, + $.ERROR, + ), + ), + optional( + choice( + '?:', + '?>' + ), ), + optional($._expression), ')', + optional($.quantifier), ), - character_class: $ => prec(1, - seq( - '[', - repeat( + character_class: $ => seq( + '[', + repeat( + choice( + $.octal, + $.hexadecimal, + $.property, + $.meta_control_char, + $.unicode, + $.backslash, + $.literal, + ), + ), + ']', + optional($.quantifier), + ), + octal: $ => seq( + choice( + /\\\\0[0-7]{0,2}/, + seq( + /\\\\o\{[0-7]+/, + repeat( + seq( + /(\s|\\u0020|\\n)+/, + /[0-7]+/, + ), + ), + '}', + ), + ), + optional($.quantifier), + ), + hexadecimal: $ => seq( + choice( + /\\\\x[0-9a-fA-F]{0,2}/, + seq( + /\\\\x\{[0-9a-fA-F]+/, + repeat( + seq( + /(\s+|\\u0020|\\n)+/, + /[0-9a-fA-F]+/, + ), + ), + '}', + ), + ), + optional($.quantifier), + ), + property: $ => seq( + /\\\\[pP]\{\^?/, + repeat( + choice( + /[a-zA-Z1]+/, + /[ _-]+/, + ), + ), + '}', + optional($.quantifier), + ), + backreference: $ => seq( + choice( + /\\\\[1-9]\d{0,2}/, + seq( + '\\\\k<', + choice( + seq( + optional(/\d*[1-9]/), + optional(/[-+]/), + /\d*[1-9]/, + ), + seq( + /[a-zA-Z_]\w*/, + optional(/[-+]\d*[1-9]/), + ), + alias( + // $.not_closing_angle_bracket, + '=', + $.ERROR, + ), + ), + '>', + ), + seq( + "\\\\k'", + choice( + seq( + optional(/\d*[1-9]/), + optional(/[-+]/), + /\d*[1-9]/, + ), + seq( + /[a-zA-Z_]\w*/, + optional(/[-+]\d*[1-9]/), + ), + ), + "'", + ), + ), + optional($.quantifier), + ), + subroutine: $ => seq( + choice( + seq( + '\\\\g<', + choice( + seq( + optional(/[-+]/), + /\d+/, + ), + seq( + /[a-zA-Z_]/, + optional(/[^>]+/), + ), + ), + '>', + ), + seq( + "\\\\g'", + choice( + seq( + optional(/[-+]/), + /\d+/, + ), + seq( + /[a-zA-Z_]/, + optional(/[^>]+/), + ), + ), + "'", + ), + ), + optional($.quantifier), + ), + not_closing_angle_bracket: $ => alias( + // /[^>]+/, + '=', + $.ERROR, + ), + unicode: $ => seq( + choice( + /\\{1,3}u[0-9a-fA-F]{4}/ + ), + optional($.quantifier), + ), + meta_control_char: $ => seq( + choice( + seq( + repeat1( + choice( + '\\\\c', + '\\\\C-', + '\\\\M-', + ), + ), choice( - $.backslash, - $.character_class_literal, + $.unicode, + // $.backslash, + /./, ), ), - ']', ), + optional($.quantifier), ), }, }); \ No newline at end of file diff --git a/src/tree-sitter/tree-sitter-regex/src/grammar.json b/src/tree-sitter/tree-sitter-regex/src/grammar.json index 83ddc6b..67d582c 100644 --- a/src/tree-sitter/tree-sitter-regex/src/grammar.json +++ b/src/tree-sitter/tree-sitter-regex/src/grammar.json @@ -2,10 +2,72 @@ "name": "regextm", "rules": { "regex": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "quantifier" + }, + "named": true, + "value": "ERROR" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + "_expression": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ + { + "type": "SYMBOL", + "name": "octal" + }, + { + "type": "SYMBOL", + "name": "hexadecimal" + }, + { + "type": "SYMBOL", + "name": "backreference" + }, + { + "type": "SYMBOL", + "name": "subroutine" + }, + { + "type": "SYMBOL", + "name": "property" + }, + { + "type": "SYMBOL", + "name": "meta_control_char" + }, + { + "type": "SYMBOL", + "name": "unicode" + }, { "type": "SYMBOL", "name": "backslash" @@ -18,6 +80,10 @@ "type": "SYMBOL", "name": "character_class" }, + { + "type": "SYMBOL", + "name": "alteration" + }, { "type": "SYMBOL", "name": "literal" @@ -29,96 +95,893 @@ "type": "PREC", "value": -1, "content": { - "type": "PATTERN", - "value": "[^\"()][^\\x00-\\x1F\\x7F \"#$^.+*?|\\[{()\\\\]*" + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[^\\\\]" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] } }, - "character_class_literal": { - "type": "PREC", - "value": -1, + "backslash": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\\\\\\\\" + }, + { + "type": "PATTERN", + "value": "\\\\\\\\\\\\[\"/bfnrtu]" + }, + { + "type": "PATTERN", + "value": "\\\\\\\\[NORXDHSWdhswaefnrtvABbGKYyZz]" + }, + { + "type": "PATTERN", + "value": "\\\\\\\\[$()*+?|\\[^]" + }, + { + "type": "PATTERN", + "value": "\\\\\\\\[ !#%&',-/:;<=>@EFIJLQTUV\\]_`ijlmoq{}~]" + }, + { + "type": "PATTERN", + "value": "\\\\[\"/bfnrtu]" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "quantifier": { + "type": "REPEAT1", "content": { - "type": "PATTERN", - "value": "[^\\]\"][^\\x00-\\x1F\\x7F\"&:\\[\\]\\\\\\-]*" + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "?" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\d+" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\d+" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d+" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + } + ] } }, - "backslash": { - "type": "CHOICE", + "alteration": { + "type": "STRING", + "value": "|" + }, + "capture_group": { + "type": "SEQ", "members": [ { "type": "STRING", - "value": "\\\\\\\\" + "value": "(" }, { - "type": "PATTERN", - "value": "\\\\\\\\[^\"]" + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "quantifier" + }, + "named": true, + "value": "ERROR" + }, + { + "type": "BLANK" + } + ] }, { - "type": "PATTERN", - "value": "\\\\[^\\r\\n\\t]" + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "?:" + }, + { + "type": "STRING", + "value": "?>" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] } ] }, - "capture_group": { + "character_class": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "(" + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "octal" + }, + { + "type": "SYMBOL", + "name": "hexadecimal" + }, + { + "type": "SYMBOL", + "name": "property" + }, + { + "type": "SYMBOL", + "name": "meta_control_char" + }, + { + "type": "SYMBOL", + "name": "unicode" + }, + { + "type": "SYMBOL", + "name": "backslash" + }, + { + "type": "SYMBOL", + "name": "literal" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "octal": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\0[0-7]{0,2}" + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\o\\{[0-7]+" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "(\\s|\\\\u0020|\\\\n)+" + }, + { + "type": "PATTERN", + "value": "[0-7]+" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "regex" + "name": "quantifier" }, { "type": "BLANK" } ] + } + ] + }, + "hexadecimal": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\x[0-9a-fA-F]{0,2}" + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\x\\{[0-9a-fA-F]+" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "(\\s+|\\\\u0020|\\\\n)+" + }, + { + "type": "PATTERN", + "value": "[0-9a-fA-F]+" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "property": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\[pP]\\{\\^?" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z1]+" + }, + { + "type": "PATTERN", + "value": "[ _-]+" + } + ] + } }, { "type": "STRING", - "value": ")" + "value": "}" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] } ] }, - "character_class": { - "type": "PREC", - "value": 1, + "backreference": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\\\\\\\[1-9]\\d{0,2}" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\\\k<" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\d*[1-9]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d*[1-9]" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z_]\\w*" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]\\d*[1-9]" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "=" + }, + "named": true, + "value": "ERROR" + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\\\k'" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\d*[1-9]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d*[1-9]" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z_]\\w*" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]\\d*[1-9]" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "STRING", + "value": "'" + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "subroutine": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\\\g<" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d+" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z_]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^>]+" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\\\g'" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[-+]" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d+" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z_]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^>]+" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "STRING", + "value": "'" + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "not_closing_angle_bracket": { + "type": "ALIAS", "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", + "type": "STRING", + "value": "=" + }, + "named": true, + "value": "ERROR" + }, + "unicode": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\\\{1,3}u[0-9a-fA-F]{4}" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "meta_control_char": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "backslash" + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\\\\c" + }, + { + "type": "STRING", + "value": "\\\\C-" + }, + { + "type": "STRING", + "value": "\\\\M-" + } + ] + } }, { - "type": "SYMBOL", - "name": "character_class_literal" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "unicode" + }, + { + "type": "PATTERN", + "value": "." + } + ] } ] } - }, - { - "type": "STRING", - "value": "]" - } - ] - } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "quantifier" + }, + { + "type": "BLANK" + } + ] + } + ] } }, "extras": [], - "conflicts": [], + "conflicts": [ + [ + "unicode" + ], + [ + "quantifier" + ] + ], "precedences": [], "externals": [], "inline": [], diff --git a/src/tree-sitter/tree-sitter-regex/src/node-types.json b/src/tree-sitter/tree-sitter-regex/src/node-types.json index 0c3d2b0..0a45770 100644 --- a/src/tree-sitter/tree-sitter-regex/src/node-types.json +++ b/src/tree-sitter/tree-sitter-regex/src/node-types.json @@ -1,11 +1,30 @@ [ { - "type": "backslash", + "type": "ERROR", "named": true, "fields": {} }, { - "type": "capture_group", + "type": "backreference", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "ERROR", + "named": true + }, + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "backslash", "named": true, "fields": {}, "children": { @@ -13,7 +32,74 @@ "required": false, "types": [ { - "type": "regex", + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "capture_group", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "ERROR", + "named": true + }, + { + "type": "alteration", + "named": true + }, + { + "type": "backreference", + "named": true + }, + { + "type": "backslash", + "named": true + }, + { + "type": "capture_group", + "named": true + }, + { + "type": "character_class", + "named": true + }, + { + "type": "hexadecimal", + "named": true + }, + { + "type": "literal", + "named": true + }, + { + "type": "meta_control_char", + "named": true + }, + { + "type": "octal", + "named": true + }, + { + "type": "property", + "named": true + }, + { + "type": "quantifier", + "named": true + }, + { + "type": "subroutine", + "named": true + }, + { + "type": "unicode", "named": true } ] @@ -32,20 +118,118 @@ "named": true }, { - "type": "character_class_literal", + "type": "hexadecimal", + "named": true + }, + { + "type": "literal", + "named": true + }, + { + "type": "meta_control_char", + "named": true + }, + { + "type": "octal", + "named": true + }, + { + "type": "property", + "named": true + }, + { + "type": "quantifier", + "named": true + }, + { + "type": "unicode", "named": true } ] } }, { - "type": "character_class_literal", + "type": "hexadecimal", "named": true, - "fields": {} + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } }, { "type": "literal", "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "meta_control_char", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + }, + { + "type": "unicode", + "named": true + } + ] + } + }, + { + "type": "octal", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "property", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "quantifier", + "named": true, "fields": {} }, { @@ -54,8 +238,20 @@ "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ + { + "type": "ERROR", + "named": true + }, + { + "type": "alteration", + "named": true + }, + { + "type": "backreference", + "named": true + }, { "type": "backslash", "named": true @@ -68,13 +264,71 @@ "type": "character_class", "named": true }, + { + "type": "hexadecimal", + "named": true + }, { "type": "literal", "named": true + }, + { + "type": "meta_control_char", + "named": true + }, + { + "type": "octal", + "named": true + }, + { + "type": "property", + "named": true + }, + { + "type": "subroutine", + "named": true + }, + { + "type": "unicode", + "named": true } ] } }, + { + "type": "subroutine", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "unicode", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "quantifier", + "named": true + } + ] + } + }, + { + "type": "'", + "named": false + }, { "type": "(", "named": false @@ -83,16 +337,76 @@ "type": ")", "named": false }, + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": "?", + "named": false + }, + { + "type": "?:", + "named": false + }, + { + "type": "?>", + "named": false + }, { "type": "[", "named": false }, + { + "type": "\\\\C-", + "named": false + }, + { + "type": "\\\\M-", + "named": false + }, { "type": "\\\\\\\\", "named": false }, + { + "type": "\\\\c", + "named": false + }, + { + "type": "\\\\g'", + "named": false + }, + { + "type": "\\\\g<", + "named": false + }, + { + "type": "\\\\k'", + "named": false + }, + { + "type": "\\\\k<", + "named": false + }, { "type": "]", "named": false + }, + { + "type": "alteration", + "named": true + }, + { + "type": "}", + "named": false } ] \ No newline at end of file diff --git a/src/tree-sitter/tree-sitter-regex/src/parser.c b/src/tree-sitter/tree-sitter-regex/src/parser.c index 14dfe14..5fe426f 100644 --- a/src/tree-sitter/tree-sitter-regex/src/parser.c +++ b/src/tree-sitter/tree-sitter-regex/src/parser.c @@ -6,76 +6,238 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 30 -#define LARGE_STATE_COUNT 8 -#define SYMBOL_COUNT 18 +#define STATE_COUNT 256 +#define LARGE_STATE_COUNT 23 +#define SYMBOL_COUNT 72 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 10 +#define TOKEN_COUNT 51 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 -#define MAX_ALIAS_SEQUENCE_LENGTH 3 -#define PRODUCTION_ID_COUNT 1 +#define MAX_ALIAS_SEQUENCE_LENGTH 6 +#define PRODUCTION_ID_COUNT 3 enum { aux_sym_literal_token1 = 1, - aux_sym_character_class_literal_token1 = 2, - anon_sym_BSLASH_BSLASH_BSLASH_BSLASH = 3, - aux_sym_backslash_token1 = 4, - aux_sym_backslash_token2 = 5, - anon_sym_LPAREN = 6, - anon_sym_RPAREN = 7, - anon_sym_LBRACK = 8, - anon_sym_RBRACK = 9, - sym_regex = 10, - sym_literal = 11, - sym_character_class_literal = 12, - sym_backslash = 13, - sym_capture_group = 14, - sym_character_class = 15, - aux_sym_regex_repeat1 = 16, - aux_sym_character_class_repeat1 = 17, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH = 2, + aux_sym_backslash_token1 = 3, + aux_sym_backslash_token2 = 4, + aux_sym_backslash_token3 = 5, + aux_sym_backslash_token4 = 6, + aux_sym_backslash_token5 = 7, + anon_sym_QMARK = 8, + anon_sym_PLUS = 9, + anon_sym_STAR = 10, + aux_sym_quantifier_token1 = 11, + sym_alteration = 12, + anon_sym_LPAREN = 13, + anon_sym_QMARK_COLON = 14, + anon_sym_QMARK_GT = 15, + anon_sym_RPAREN = 16, + anon_sym_LBRACK = 17, + anon_sym_RBRACK = 18, + aux_sym_octal_token1 = 19, + aux_sym_octal_token2 = 20, + aux_sym_octal_token3 = 21, + aux_sym_octal_token4 = 22, + anon_sym_RBRACE = 23, + aux_sym_hexadecimal_token1 = 24, + aux_sym_hexadecimal_token2 = 25, + aux_sym_hexadecimal_token3 = 26, + aux_sym_hexadecimal_token4 = 27, + aux_sym_property_token1 = 28, + aux_sym_property_token2 = 29, + aux_sym_property_token3 = 30, + aux_sym_backreference_token1 = 31, + anon_sym_BSLASH_BSLASHk_LT = 32, + aux_sym_backreference_token2 = 33, + aux_sym_backreference_token3 = 34, + aux_sym_backreference_token4 = 35, + aux_sym_backreference_token5 = 36, + anon_sym_EQ = 37, + anon_sym_GT = 38, + anon_sym_BSLASH_BSLASHk_SQUOTE = 39, + anon_sym_SQUOTE = 40, + anon_sym_BSLASH_BSLASHg_LT = 41, + aux_sym_subroutine_token1 = 42, + aux_sym_subroutine_token2 = 43, + aux_sym_subroutine_token3 = 44, + anon_sym_BSLASH_BSLASHg_SQUOTE = 45, + aux_sym_unicode_token1 = 46, + anon_sym_BSLASH_BSLASHc = 47, + anon_sym_BSLASH_BSLASHC_DASH = 48, + anon_sym_BSLASH_BSLASHM_DASH = 49, + aux_sym_meta_control_char_token1 = 50, + sym_regex = 51, + aux_sym__expression = 52, + sym_literal = 53, + sym_backslash = 54, + sym_quantifier = 55, + sym_capture_group = 56, + sym_character_class = 57, + sym_octal = 58, + sym_hexadecimal = 59, + sym_property = 60, + sym_backreference = 61, + sym_subroutine = 62, + sym_unicode = 63, + sym_meta_control_char = 64, + aux_sym_literal_repeat1 = 65, + aux_sym_quantifier_repeat1 = 66, + aux_sym_character_class_repeat1 = 67, + aux_sym_octal_repeat1 = 68, + aux_sym_hexadecimal_repeat1 = 69, + aux_sym_property_repeat1 = 70, + aux_sym_meta_control_char_repeat1 = 71, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [aux_sym_literal_token1] = "literal_token1", - [aux_sym_character_class_literal_token1] = "character_class_literal_token1", [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = "\\\\\\\\", [aux_sym_backslash_token1] = "backslash_token1", [aux_sym_backslash_token2] = "backslash_token2", + [aux_sym_backslash_token3] = "backslash_token3", + [aux_sym_backslash_token4] = "backslash_token4", + [aux_sym_backslash_token5] = "backslash_token5", + [anon_sym_QMARK] = "\?", + [anon_sym_PLUS] = "+", + [anon_sym_STAR] = "*", + [aux_sym_quantifier_token1] = "quantifier_token1", + [sym_alteration] = "alteration", [anon_sym_LPAREN] = "(", + [anon_sym_QMARK_COLON] = "\?:", + [anon_sym_QMARK_GT] = "\?>", [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", + [aux_sym_octal_token1] = "octal_token1", + [aux_sym_octal_token2] = "octal_token2", + [aux_sym_octal_token3] = "octal_token3", + [aux_sym_octal_token4] = "octal_token4", + [anon_sym_RBRACE] = "}", + [aux_sym_hexadecimal_token1] = "hexadecimal_token1", + [aux_sym_hexadecimal_token2] = "hexadecimal_token2", + [aux_sym_hexadecimal_token3] = "hexadecimal_token3", + [aux_sym_hexadecimal_token4] = "hexadecimal_token4", + [aux_sym_property_token1] = "property_token1", + [aux_sym_property_token2] = "property_token2", + [aux_sym_property_token3] = "property_token3", + [aux_sym_backreference_token1] = "backreference_token1", + [anon_sym_BSLASH_BSLASHk_LT] = "\\\\k<", + [aux_sym_backreference_token2] = "backreference_token2", + [aux_sym_backreference_token3] = "backreference_token3", + [aux_sym_backreference_token4] = "backreference_token4", + [aux_sym_backreference_token5] = "backreference_token5", + [anon_sym_EQ] = "ERROR", + [anon_sym_GT] = ">", + [anon_sym_BSLASH_BSLASHk_SQUOTE] = "\\\\k'", + [anon_sym_SQUOTE] = "'", + [anon_sym_BSLASH_BSLASHg_LT] = "\\\\g<", + [aux_sym_subroutine_token1] = "subroutine_token1", + [aux_sym_subroutine_token2] = "subroutine_token2", + [aux_sym_subroutine_token3] = "subroutine_token3", + [anon_sym_BSLASH_BSLASHg_SQUOTE] = "\\\\g'", + [aux_sym_unicode_token1] = "unicode_token1", + [anon_sym_BSLASH_BSLASHc] = "\\\\c", + [anon_sym_BSLASH_BSLASHC_DASH] = "\\\\C-", + [anon_sym_BSLASH_BSLASHM_DASH] = "\\\\M-", + [aux_sym_meta_control_char_token1] = "meta_control_char_token1", [sym_regex] = "regex", + [aux_sym__expression] = "_expression", [sym_literal] = "literal", - [sym_character_class_literal] = "character_class_literal", [sym_backslash] = "backslash", + [sym_quantifier] = "quantifier", [sym_capture_group] = "capture_group", [sym_character_class] = "character_class", - [aux_sym_regex_repeat1] = "regex_repeat1", + [sym_octal] = "octal", + [sym_hexadecimal] = "hexadecimal", + [sym_property] = "property", + [sym_backreference] = "backreference", + [sym_subroutine] = "subroutine", + [sym_unicode] = "unicode", + [sym_meta_control_char] = "meta_control_char", + [aux_sym_literal_repeat1] = "literal_repeat1", + [aux_sym_quantifier_repeat1] = "quantifier_repeat1", [aux_sym_character_class_repeat1] = "character_class_repeat1", + [aux_sym_octal_repeat1] = "octal_repeat1", + [aux_sym_hexadecimal_repeat1] = "hexadecimal_repeat1", + [aux_sym_property_repeat1] = "property_repeat1", + [aux_sym_meta_control_char_repeat1] = "meta_control_char_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [aux_sym_literal_token1] = aux_sym_literal_token1, - [aux_sym_character_class_literal_token1] = aux_sym_character_class_literal_token1, [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, [aux_sym_backslash_token1] = aux_sym_backslash_token1, [aux_sym_backslash_token2] = aux_sym_backslash_token2, + [aux_sym_backslash_token3] = aux_sym_backslash_token3, + [aux_sym_backslash_token4] = aux_sym_backslash_token4, + [aux_sym_backslash_token5] = aux_sym_backslash_token5, + [anon_sym_QMARK] = anon_sym_QMARK, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_STAR] = anon_sym_STAR, + [aux_sym_quantifier_token1] = aux_sym_quantifier_token1, + [sym_alteration] = sym_alteration, [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_QMARK_COLON] = anon_sym_QMARK_COLON, + [anon_sym_QMARK_GT] = anon_sym_QMARK_GT, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, + [aux_sym_octal_token1] = aux_sym_octal_token1, + [aux_sym_octal_token2] = aux_sym_octal_token2, + [aux_sym_octal_token3] = aux_sym_octal_token3, + [aux_sym_octal_token4] = aux_sym_octal_token4, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [aux_sym_hexadecimal_token1] = aux_sym_hexadecimal_token1, + [aux_sym_hexadecimal_token2] = aux_sym_hexadecimal_token2, + [aux_sym_hexadecimal_token3] = aux_sym_hexadecimal_token3, + [aux_sym_hexadecimal_token4] = aux_sym_hexadecimal_token4, + [aux_sym_property_token1] = aux_sym_property_token1, + [aux_sym_property_token2] = aux_sym_property_token2, + [aux_sym_property_token3] = aux_sym_property_token3, + [aux_sym_backreference_token1] = aux_sym_backreference_token1, + [anon_sym_BSLASH_BSLASHk_LT] = anon_sym_BSLASH_BSLASHk_LT, + [aux_sym_backreference_token2] = aux_sym_backreference_token2, + [aux_sym_backreference_token3] = aux_sym_backreference_token3, + [aux_sym_backreference_token4] = aux_sym_backreference_token4, + [aux_sym_backreference_token5] = aux_sym_backreference_token5, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_BSLASH_BSLASHk_SQUOTE] = anon_sym_BSLASH_BSLASHk_SQUOTE, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [anon_sym_BSLASH_BSLASHg_LT] = anon_sym_BSLASH_BSLASHg_LT, + [aux_sym_subroutine_token1] = aux_sym_subroutine_token1, + [aux_sym_subroutine_token2] = aux_sym_subroutine_token2, + [aux_sym_subroutine_token3] = aux_sym_subroutine_token3, + [anon_sym_BSLASH_BSLASHg_SQUOTE] = anon_sym_BSLASH_BSLASHg_SQUOTE, + [aux_sym_unicode_token1] = aux_sym_unicode_token1, + [anon_sym_BSLASH_BSLASHc] = anon_sym_BSLASH_BSLASHc, + [anon_sym_BSLASH_BSLASHC_DASH] = anon_sym_BSLASH_BSLASHC_DASH, + [anon_sym_BSLASH_BSLASHM_DASH] = anon_sym_BSLASH_BSLASHM_DASH, + [aux_sym_meta_control_char_token1] = aux_sym_meta_control_char_token1, [sym_regex] = sym_regex, + [aux_sym__expression] = aux_sym__expression, [sym_literal] = sym_literal, - [sym_character_class_literal] = sym_character_class_literal, [sym_backslash] = sym_backslash, + [sym_quantifier] = sym_quantifier, [sym_capture_group] = sym_capture_group, [sym_character_class] = sym_character_class, - [aux_sym_regex_repeat1] = aux_sym_regex_repeat1, + [sym_octal] = sym_octal, + [sym_hexadecimal] = sym_hexadecimal, + [sym_property] = sym_property, + [sym_backreference] = sym_backreference, + [sym_subroutine] = sym_subroutine, + [sym_unicode] = sym_unicode, + [sym_meta_control_char] = sym_meta_control_char, + [aux_sym_literal_repeat1] = aux_sym_literal_repeat1, + [aux_sym_quantifier_repeat1] = aux_sym_quantifier_repeat1, [aux_sym_character_class_repeat1] = aux_sym_character_class_repeat1, + [aux_sym_octal_repeat1] = aux_sym_octal_repeat1, + [aux_sym_hexadecimal_repeat1] = aux_sym_hexadecimal_repeat1, + [aux_sym_property_repeat1] = aux_sym_property_repeat1, + [aux_sym_meta_control_char_repeat1] = aux_sym_meta_control_char_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -87,10 +249,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_character_class_literal_token1] = { - .visible = false, - .named = false, - }, [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = { .visible = true, .named = false, @@ -103,10 +261,50 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_backslash_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_backslash_token4] = { + .visible = false, + .named = false, + }, + [aux_sym_backslash_token5] = { + .visible = false, + .named = false, + }, + [anon_sym_QMARK] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [aux_sym_quantifier_token1] = { + .visible = false, + .named = false, + }, + [sym_alteration] = { + .visible = true, + .named = true, + }, [anon_sym_LPAREN] = { .visible = true, .named = false, }, + [anon_sym_QMARK_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_QMARK_GT] = { + .visible = true, + .named = false, + }, [anon_sym_RPAREN] = { .visible = true, .named = false, @@ -119,19 +317,151 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [aux_sym_octal_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_octal_token2] = { + .visible = false, + .named = false, + }, + [aux_sym_octal_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_octal_token4] = { + .visible = false, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [aux_sym_hexadecimal_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_hexadecimal_token2] = { + .visible = false, + .named = false, + }, + [aux_sym_hexadecimal_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_hexadecimal_token4] = { + .visible = false, + .named = false, + }, + [aux_sym_property_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_property_token2] = { + .visible = false, + .named = false, + }, + [aux_sym_property_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_backreference_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_BSLASH_BSLASHk_LT] = { + .visible = true, + .named = false, + }, + [aux_sym_backreference_token2] = { + .visible = false, + .named = false, + }, + [aux_sym_backreference_token3] = { + .visible = false, + .named = false, + }, + [aux_sym_backreference_token4] = { + .visible = false, + .named = false, + }, + [aux_sym_backreference_token5] = { + .visible = false, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = true, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_BSLASH_BSLASHk_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, + [anon_sym_BSLASH_BSLASHg_LT] = { + .visible = true, + .named = false, + }, + [aux_sym_subroutine_token1] = { + .visible = false, + .named = false, + }, + [aux_sym_subroutine_token2] = { + .visible = false, + .named = false, + }, + [aux_sym_subroutine_token3] = { + .visible = false, + .named = false, + }, + [anon_sym_BSLASH_BSLASHg_SQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_unicode_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_BSLASH_BSLASHc] = { + .visible = true, + .named = false, + }, + [anon_sym_BSLASH_BSLASHC_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_BSLASH_BSLASHM_DASH] = { + .visible = true, + .named = false, + }, + [aux_sym_meta_control_char_token1] = { + .visible = false, + .named = false, + }, [sym_regex] = { .visible = true, .named = true, }, + [aux_sym__expression] = { + .visible = false, + .named = false, + }, [sym_literal] = { .visible = true, .named = true, }, - [sym_character_class_literal] = { + [sym_backslash] = { .visible = true, .named = true, }, - [sym_backslash] = { + [sym_quantifier] = { .visible = true, .named = true, }, @@ -143,7 +473,39 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [aux_sym_regex_repeat1] = { + [sym_octal] = { + .visible = true, + .named = true, + }, + [sym_hexadecimal] = { + .visible = true, + .named = true, + }, + [sym_property] = { + .visible = true, + .named = true, + }, + [sym_backreference] = { + .visible = true, + .named = true, + }, + [sym_subroutine] = { + .visible = true, + .named = true, + }, + [sym_unicode] = { + .visible = true, + .named = true, + }, + [sym_meta_control_char] = { + .visible = true, + .named = true, + }, + [aux_sym_literal_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_quantifier_repeat1] = { .visible = false, .named = false, }, @@ -151,13 +513,38 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_octal_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_hexadecimal_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_property_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_meta_control_char_repeat1] = { + .visible = false, + .named = false, + }, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, + [1] = { + [0] = anon_sym_EQ, + }, + [2] = { + [1] = anon_sym_EQ, + }, }; static const uint16_t ts_non_terminal_alias_map[] = { + sym_quantifier, 2, + sym_quantifier, + anon_sym_EQ, 0, }; @@ -167,79 +554,287 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [2] = 2, [3] = 2, [4] = 4, - [5] = 5, - [6] = 4, - [7] = 5, - [8] = 8, + [5] = 4, + [6] = 6, + [7] = 7, + [8] = 6, [9] = 9, - [10] = 9, + [10] = 10, [11] = 11, - [12] = 8, + [12] = 10, [13] = 13, - [14] = 14, + [14] = 9, [15] = 15, [16] = 16, - [17] = 16, - [18] = 18, - [19] = 19, - [20] = 14, + [17] = 11, + [18] = 7, + [19] = 15, + [20] = 20, [21] = 13, - [22] = 15, - [23] = 19, - [24] = 18, + [22] = 22, + [23] = 23, + [24] = 23, [25] = 25, - [26] = 18, + [26] = 26, [27] = 27, [28] = 28, - [29] = 27, + [29] = 29, + [30] = 30, + [31] = 31, + [32] = 32, + [33] = 33, + [34] = 34, + [35] = 35, + [36] = 33, + [37] = 37, + [38] = 38, + [39] = 27, + [40] = 40, + [41] = 41, + [42] = 35, + [43] = 43, + [44] = 29, + [45] = 30, + [46] = 38, + [47] = 47, + [48] = 48, + [49] = 49, + [50] = 50, + [51] = 51, + [52] = 52, + [53] = 53, + [54] = 32, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 33, + [59] = 56, + [60] = 43, + [61] = 53, + [62] = 47, + [63] = 40, + [64] = 64, + [65] = 52, + [66] = 33, + [67] = 41, + [68] = 51, + [69] = 48, + [70] = 64, + [71] = 37, + [72] = 50, + [73] = 34, + [74] = 31, + [75] = 55, + [76] = 49, + [77] = 28, + [78] = 57, + [79] = 26, + [80] = 80, + [81] = 25, + [82] = 80, + [83] = 26, + [84] = 25, + [85] = 26, + [86] = 26, + [87] = 87, + [88] = 87, + [89] = 89, + [90] = 90, + [91] = 91, + [92] = 90, + [93] = 91, + [94] = 94, + [95] = 87, + [96] = 96, + [97] = 97, + [98] = 98, + [99] = 99, + [100] = 100, + [101] = 101, + [102] = 102, + [103] = 103, + [104] = 104, + [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 109, + [110] = 110, + [111] = 111, + [112] = 112, + [113] = 112, + [114] = 110, + [115] = 102, + [116] = 100, + [117] = 99, + [118] = 98, + [119] = 119, + [120] = 96, + [121] = 111, + [122] = 109, + [123] = 97, + [124] = 108, + [125] = 101, + [126] = 126, + [127] = 94, + [128] = 128, + [129] = 119, + [130] = 107, + [131] = 131, + [132] = 132, + [133] = 133, + [134] = 106, + [135] = 131, + [136] = 133, + [137] = 87, + [138] = 132, + [139] = 105, + [140] = 128, + [141] = 104, + [142] = 126, + [143] = 143, + [144] = 143, + [145] = 103, + [146] = 23, + [147] = 33, + [148] = 57, + [149] = 31, + [150] = 38, + [151] = 32, + [152] = 34, + [153] = 37, + [154] = 56, + [155] = 50, + [156] = 49, + [157] = 48, + [158] = 33, + [159] = 80, + [160] = 26, + [161] = 25, + [162] = 26, + [163] = 87, + [164] = 97, + [165] = 143, + [166] = 87, + [167] = 131, + [168] = 109, + [169] = 103, + [170] = 128, + [171] = 96, + [172] = 107, + [173] = 126, + [174] = 101, + [175] = 108, + [176] = 176, + [177] = 176, + [178] = 176, + [179] = 179, + [180] = 180, + [181] = 181, + [182] = 180, + [183] = 183, + [184] = 180, + [185] = 185, + [186] = 181, + [187] = 181, + [188] = 183, + [189] = 189, + [190] = 190, + [191] = 191, + [192] = 189, + [193] = 193, + [194] = 190, + [195] = 195, + [196] = 196, + [197] = 197, + [198] = 189, + [199] = 197, + [200] = 191, + [201] = 201, + [202] = 190, + [203] = 203, + [204] = 204, + [205] = 196, + [206] = 204, + [207] = 201, + [208] = 203, + [209] = 196, + [210] = 204, + [211] = 211, + [212] = 211, + [213] = 213, + [214] = 214, + [215] = 215, + [216] = 216, + [217] = 217, + [218] = 218, + [219] = 216, + [220] = 215, + [221] = 217, + [222] = 214, + [223] = 223, + [224] = 224, + [225] = 225, + [226] = 226, + [227] = 227, + [228] = 228, + [229] = 224, + [230] = 230, + [231] = 231, + [232] = 230, + [233] = 233, + [234] = 234, + [235] = 235, + [236] = 236, + [237] = 223, + [238] = 238, + [239] = 233, + [240] = 240, + [241] = 241, + [242] = 234, + [243] = 235, + [244] = 244, + [245] = 238, + [246] = 227, + [247] = 247, + [248] = 225, + [249] = 249, + [250] = 231, + [251] = 226, + [252] = 249, + [253] = 247, + [254] = 236, + [255] = 240, }; -static inline bool aux_sym_literal_token1_character_set_1(int32_t c) { - return (c < '?' - ? (c < '"' - ? (c < 0 - ? c == 0 - : c <= ' ') - : (c <= '$' || (c < '.' - ? (c >= '(' && c <= '+') - : c <= '.'))) - : (c <= '?' || (c < '{' - ? (c < '^' - ? (c >= '[' && c <= '\\') - : c <= '^') - : (c <= '|' || c == 127)))); -} - static inline bool aux_sym_backslash_token2_character_set_1(int32_t c) { - return (c < '.' - ? (c < 14 - ? (c < 11 - ? (c >= 0 && c <= 8) - : c <= '\f') - : (c <= ' ' || (c < '(' - ? (c >= '"' && c <= '$') - : c <= '+'))) - : (c <= '.' || (c < '^' - ? (c < '[' - ? c == '?' - : c <= '[') - : (c <= '^' || (c < 127 - ? (c >= '{' && c <= '|') - : c <= 127))))); + return (c < 'R' + ? (c < 'K' + ? (c < 'G' + ? (c >= 'A' && c <= 'D') + : c <= 'H') + : (c <= 'K' || (c >= 'N' && c <= 'O'))) + : (c <= 'S' || (c < 'n' + ? (c < 'a' + ? (c >= 'W' && c <= 'Z') + : c <= 'h') + : (c <= 'n' || (c >= 'r' && c <= 'z'))))); } static inline bool aux_sym_backslash_token2_character_set_2(int32_t c) { - return (c < '&' - ? (c < 14 - ? (c < 11 - ? (c >= 0 && c <= 8) - : c <= '\f') - : (c <= 31 || c == '"')) - : (c <= '&' || (c < '[' - ? (c < ':' - ? c == '-' - : c <= ':') - : (c <= ']' || c == 127)))); + return (c < 'W' + ? (c < 'K' + ? (c < 'G' + ? (c >= 'A' && c <= 'D') + : c <= 'H') + : (c <= 'K' || (c < 'R' + ? (c >= 'N' && c <= 'O') + : c <= 'S'))) + : (c <= 'Z' || (c < 'n' + ? (c < 'h' + ? (c >= 'a' && c <= 'f') + : c <= 'h') + : (c <= 'n' || (c >= 'r' && c <= 'z'))))); } static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -247,551 +842,7702 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(4); - if (lookahead == '(') ADVANCE(14); - if (lookahead == ')') ADVANCE(15); - if (lookahead == '[') ADVANCE(16); - if (lookahead == '\\') ADVANCE(1); - if (lookahead == ']') ADVANCE(18); + if (eof) ADVANCE(50); + if (lookahead == '\n') ADVANCE(51); + if (lookahead == '\'') ADVANCE(103); + if (lookahead == '(') ADVANCE(69); + if (lookahead == ')') ADVANCE(72); + if (lookahead == '*') ADVANCE(66); + if (lookahead == '+') ADVANCE(65); + if (lookahead == '-') ADVANCE(51); + if (lookahead == '=') ADVANCE(100); + if (lookahead == '>') ADVANCE(101); + if (lookahead == '?') ADVANCE(63); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(115); + if (lookahead == ']') ADVANCE(74); + if (lookahead == '|') ADVANCE(68); + if (lookahead == '}') ADVANCE(81); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(51); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 1: - if (lookahead == '\\') ADVANCE(13); - if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n' && - lookahead != '\r') ADVANCE(12); + if (lookahead == '\'') ADVANCE(103); + if (lookahead == '0') ADVANCE(17); + if (lookahead == '=') ADVANCE(100); + if (lookahead == '>') ADVANCE(101); + if (lookahead == '\\') ADVANCE(35); + if (lookahead == '}') ADVANCE(81); + if (lookahead == '+' || + lookahead == '-') ADVANCE(97); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(96); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(98); END_STATE(); case 2: - if (lookahead == '\\') ADVANCE(7); - if (lookahead == ']') ADVANCE(18); - if (lookahead != 0 && - lookahead != '"') ADVANCE(8); + if (lookahead == '\'') ADVANCE(103); + if (lookahead == '>') ADVANCE(101); + if (lookahead == '}') ADVANCE(81); + if (lookahead == ' ' || + lookahead == '-' || + lookahead == '_') ADVANCE(91); + if (lookahead == '1' || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(90); END_STATE(); case 3: - if (eof) ADVANCE(4); - if (lookahead == '(') ADVANCE(14); - if (lookahead == ')') ADVANCE(15); - if (lookahead == '[') ADVANCE(17); - if (lookahead == '\\') ADVANCE(5); - if (lookahead != 0 && - lookahead != '"') ADVANCE(6); + if (lookahead == '\'') ADVANCE(103); + if (lookahead == '>') ADVANCE(101); + if (lookahead == '+' || + lookahead == '-') ADVANCE(21); + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(80); END_STATE(); case 4: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == '\'') ADVANCE(109); + if (lookahead == '<') ADVANCE(105); END_STATE(); case 5: - ACCEPT_TOKEN(aux_sym_literal_token1); - if (lookahead == '\\') ADVANCE(13); - if (aux_sym_backslash_token2_character_set_1(lookahead)) ADVANCE(12); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(6); + if (lookahead == '\'') ADVANCE(102); + if (lookahead == '<') ADVANCE(95); END_STATE(); case 6: - ACCEPT_TOKEN(aux_sym_literal_token1); - if (!aux_sym_literal_token1_character_set_1(lookahead)) ADVANCE(6); + if (lookahead == '\'') ADVANCE(104); + if (lookahead != 0 && + lookahead != '>') ADVANCE(108); END_STATE(); case 7: - ACCEPT_TOKEN(aux_sym_character_class_literal_token1); - if (lookahead == '\\') ADVANCE(13); - if (aux_sym_backslash_token2_character_set_2(lookahead)) ADVANCE(12); - if (lookahead != 0 && - (lookahead < '\t' || '\r' < lookahead)) ADVANCE(8); + if (lookahead == '(') ADVANCE(69); + if (lookahead == ')') ADVANCE(72); + if (lookahead == '*') ADVANCE(66); + if (lookahead == '+') ADVANCE(65); + if (lookahead == '?') ADVANCE(63); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '{') ADVANCE(52); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 8: - ACCEPT_TOKEN(aux_sym_character_class_literal_token1); - if (lookahead != 0 && - lookahead > 31 && - lookahead != '"' && - lookahead != '&' && - lookahead != '-' && - lookahead != ':' && - (lookahead < '[' || ']' < lookahead) && - lookahead != 127) ADVANCE(8); + if (lookahead == '(') ADVANCE(69); + if (lookahead == ')') ADVANCE(72); + if (lookahead == '*') ADVANCE(66); + if (lookahead == '+') ADVANCE(65); + if (lookahead == '?') ADVANCE(64); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '{') ADVANCE(52); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_BSLASH_BSLASH_BSLASH_BSLASH); + if (lookahead == '(') ADVANCE(69); + if (lookahead == ')') ADVANCE(72); + if (lookahead == '?') ADVANCE(53); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 10: - ACCEPT_TOKEN(aux_sym_backslash_token1); + if (lookahead == '(') ADVANCE(69); + if (lookahead == ')') ADVANCE(72); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 11: - ACCEPT_TOKEN(aux_sym_backslash_token1); - if (lookahead == '\\') ADVANCE(9); + if (lookahead == '*') ADVANCE(66); + if (lookahead == '+') ADVANCE(65); + if (lookahead == '?') ADVANCE(63); + if (lookahead == '\\') ADVANCE(32); + if (lookahead == ']') ADVANCE(74); + if (lookahead == '{') ADVANCE(52); + if (lookahead != 0) ADVANCE(51); END_STATE(); case 12: - ACCEPT_TOKEN(aux_sym_backslash_token2); + if (lookahead == ',') ADVANCE(39); + if (lookahead == '}') ADVANCE(67); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(12); END_STATE(); case 13: - ACCEPT_TOKEN(aux_sym_backslash_token2); - if (lookahead == '\\') ADVANCE(11); - if (lookahead != 0 && - lookahead != '"') ADVANCE(10); + if (lookahead == '-') ADVANCE(112); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_LPAREN); + if (lookahead == '-') ADVANCE(113); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_RPAREN); + if (lookahead == '0') ADVANCE(77); + if (lookahead == 'C') ADVANCE(13); + if (lookahead == 'M') ADVANCE(14); + if (lookahead == '\\') ADVANCE(31); + if (lookahead == 'c') ADVANCE(111); + if (lookahead == 'g') ADVANCE(4); + if (lookahead == 'k') ADVANCE(5); + if (lookahead == 'o') ADVANCE(60); + if (lookahead == 'u') ADVANCE(47); + if (lookahead == 'x') ADVANCE(83); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(38); + if (lookahead == '$' || + ('(' <= lookahead && lookahead <= '+') || + lookahead == '?' || + lookahead == '[' || + lookahead == '^' || + lookahead == '|') ADVANCE(58); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(94); + if (aux_sym_backslash_token2_character_set_1(lookahead)) ADVANCE(57); + if (lookahead == ' ' || + lookahead == '!' || + ('#' <= lookahead && lookahead <= '~')) ADVANCE(59); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_LBRACK); + if (lookahead == '0') ADVANCE(77); + if (lookahead == 'C') ADVANCE(13); + if (lookahead == 'M') ADVANCE(14); + if (lookahead == '\\') ADVANCE(31); + if (lookahead == 'c') ADVANCE(111); + if (lookahead == 'o') ADVANCE(60); + if (lookahead == 'u') ADVANCE(47); + if (lookahead == 'x') ADVANCE(83); + if (lookahead == 'P' || + lookahead == 'p') ADVANCE(38); + if (lookahead == '$' || + ('(' <= lookahead && lookahead <= '+') || + lookahead == '?' || + lookahead == '[' || + lookahead == '^' || + lookahead == '|') ADVANCE(58); + if (aux_sym_backslash_token2_character_set_2(lookahead)) ADVANCE(57); + if (lookahead == ' ' || + lookahead == '!' || + ('#' <= lookahead && lookahead <= '/') || + (':' <= lookahead && lookahead <= '`') || + lookahead == 'i' || + lookahead == 'j' || + ('l' <= lookahead && lookahead <= '~')) ADVANCE(59); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_LBRACK); - if (!aux_sym_literal_token1_character_set_1(lookahead)) ADVANCE(6); + if (lookahead == '0') ADVANCE(17); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(96); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_RBRACK); + if (lookahead == '0') ADVANCE(86); END_STATE(); - default: - return false; - } -} - -static const TSLexMode ts_lex_modes[STATE_COUNT] = { - [0] = {.lex_state = 0}, - [1] = {.lex_state = 3}, - [2] = {.lex_state = 3}, - [3] = {.lex_state = 3}, - [4] = {.lex_state = 3}, - [5] = {.lex_state = 3}, - [6] = {.lex_state = 3}, - [7] = {.lex_state = 3}, - [8] = {.lex_state = 2}, - [9] = {.lex_state = 2}, - [10] = {.lex_state = 2}, - [11] = {.lex_state = 2}, - [12] = {.lex_state = 2}, - [13] = {.lex_state = 3}, - [14] = {.lex_state = 3}, - [15] = {.lex_state = 3}, - [16] = {.lex_state = 3}, - [17] = {.lex_state = 3}, - [18] = {.lex_state = 3}, - [19] = {.lex_state = 3}, - [20] = {.lex_state = 3}, - [21] = {.lex_state = 3}, - [22] = {.lex_state = 3}, - [23] = {.lex_state = 3}, - [24] = {.lex_state = 3}, - [25] = {.lex_state = 2}, - [26] = {.lex_state = 2}, - [27] = {.lex_state = 0}, - [28] = {.lex_state = 0}, - [29] = {.lex_state = 0}, -}; - -static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { - [ts_builtin_sym_end] = ACTIONS(1), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(1), - [aux_sym_backslash_token1] = ACTIONS(1), - [aux_sym_backslash_token2] = ACTIONS(1), - [anon_sym_LPAREN] = ACTIONS(1), - [anon_sym_RPAREN] = ACTIONS(1), - [anon_sym_LBRACK] = ACTIONS(1), - [anon_sym_RBRACK] = ACTIONS(1), - }, - [1] = { - [sym_regex] = STATE(28), - [sym_literal] = STATE(5), - [sym_backslash] = STATE(5), - [sym_capture_group] = STATE(5), - [sym_character_class] = STATE(5), - [aux_sym_regex_repeat1] = STATE(5), - [aux_sym_literal_token1] = ACTIONS(3), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(5), - [aux_sym_backslash_token1] = ACTIONS(7), - [aux_sym_backslash_token2] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(9), - [anon_sym_LBRACK] = ACTIONS(11), - }, - [2] = { - [sym_regex] = STATE(27), - [sym_literal] = STATE(7), - [sym_backslash] = STATE(7), - [sym_capture_group] = STATE(7), - [sym_character_class] = STATE(7), - [aux_sym_regex_repeat1] = STATE(7), - [aux_sym_literal_token1] = ACTIONS(13), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(15), - [aux_sym_backslash_token1] = ACTIONS(17), - [aux_sym_backslash_token2] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_RPAREN] = ACTIONS(21), - [anon_sym_LBRACK] = ACTIONS(23), - }, - [3] = { - [sym_regex] = STATE(29), - [sym_literal] = STATE(7), - [sym_backslash] = STATE(7), - [sym_capture_group] = STATE(7), - [sym_character_class] = STATE(7), - [aux_sym_regex_repeat1] = STATE(7), - [aux_sym_literal_token1] = ACTIONS(13), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(15), - [aux_sym_backslash_token1] = ACTIONS(17), - [aux_sym_backslash_token2] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_RPAREN] = ACTIONS(25), - [anon_sym_LBRACK] = ACTIONS(23), - }, - [4] = { - [sym_literal] = STATE(4), - [sym_backslash] = STATE(4), - [sym_capture_group] = STATE(4), - [sym_character_class] = STATE(4), - [aux_sym_regex_repeat1] = STATE(4), - [ts_builtin_sym_end] = ACTIONS(27), - [aux_sym_literal_token1] = ACTIONS(29), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(32), - [aux_sym_backslash_token1] = ACTIONS(35), - [aux_sym_backslash_token2] = ACTIONS(35), - [anon_sym_LPAREN] = ACTIONS(38), - [anon_sym_LBRACK] = ACTIONS(41), - }, - [5] = { - [sym_literal] = STATE(4), - [sym_backslash] = STATE(4), - [sym_capture_group] = STATE(4), - [sym_character_class] = STATE(4), - [aux_sym_regex_repeat1] = STATE(4), - [ts_builtin_sym_end] = ACTIONS(44), - [aux_sym_literal_token1] = ACTIONS(3), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(5), - [aux_sym_backslash_token1] = ACTIONS(7), - [aux_sym_backslash_token2] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(9), - [anon_sym_LBRACK] = ACTIONS(11), - }, - [6] = { - [sym_literal] = STATE(6), - [sym_backslash] = STATE(6), - [sym_capture_group] = STATE(6), - [sym_character_class] = STATE(6), - [aux_sym_regex_repeat1] = STATE(6), - [aux_sym_literal_token1] = ACTIONS(46), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(49), - [aux_sym_backslash_token1] = ACTIONS(52), - [aux_sym_backslash_token2] = ACTIONS(52), - [anon_sym_LPAREN] = ACTIONS(55), - [anon_sym_RPAREN] = ACTIONS(27), - [anon_sym_LBRACK] = ACTIONS(58), - }, - [7] = { - [sym_literal] = STATE(6), - [sym_backslash] = STATE(6), - [sym_capture_group] = STATE(6), - [sym_character_class] = STATE(6), - [aux_sym_regex_repeat1] = STATE(6), - [aux_sym_literal_token1] = ACTIONS(13), - [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(15), - [aux_sym_backslash_token1] = ACTIONS(17), - [aux_sym_backslash_token2] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_RPAREN] = ACTIONS(44), - [anon_sym_LBRACK] = ACTIONS(23), - }, -}; - -static const uint16_t ts_small_parse_table[] = { - [0] = 5, - ACTIONS(61), 1, - aux_sym_character_class_literal_token1, - ACTIONS(63), 1, - anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - ACTIONS(67), 1, - anon_sym_RBRACK, - ACTIONS(65), 2, - aux_sym_backslash_token1, - aux_sym_backslash_token2, - STATE(11), 3, - sym_character_class_literal, - sym_backslash, - aux_sym_character_class_repeat1, - [19] = 5, - ACTIONS(61), 1, - aux_sym_character_class_literal_token1, - ACTIONS(63), 1, + case 19: + if (lookahead == '0') ADVANCE(25); + END_STATE(); + case 20: + if (lookahead == '0') ADVANCE(79); + END_STATE(); + case 21: + if (lookahead == '0') ADVANCE(21); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(99); + END_STATE(); + case 22: + if (lookahead == '0') ADVANCE(19); + END_STATE(); + case 23: + if (lookahead == '0') ADVANCE(26); + END_STATE(); + case 24: + if (lookahead == '0') ADVANCE(23); + END_STATE(); + case 25: + if (lookahead == '2') ADVANCE(18); + END_STATE(); + case 26: + if (lookahead == '2') ADVANCE(20); + END_STATE(); + case 27: + if (lookahead == '>') ADVANCE(101); + if (lookahead != 0) ADVANCE(108); + END_STATE(); + case 28: + if (lookahead == 'C') ADVANCE(13); + if (lookahead == 'M') ADVANCE(14); + if (lookahead == '\\') ADVANCE(37); + if (lookahead == 'c') ADVANCE(111); + if (lookahead == 'u') ADVANCE(47); + END_STATE(); + case 29: + if (lookahead == '\\') ADVANCE(115); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(114); + END_STATE(); + case 30: + if (lookahead == '\\') ADVANCE(15); + if (lookahead == 'u') ADVANCE(62); + if (lookahead == '"' || + lookahead == '/' || + lookahead == 'b' || + lookahead == 'f' || + lookahead == 'n' || + lookahead == 'r' || + lookahead == 't') ADVANCE(61); + END_STATE(); + case 31: + if (lookahead == '\\') ADVANCE(54); + if (lookahead == 'u') ADVANCE(56); + if (lookahead == '"' || + lookahead == '/' || + lookahead == 'b' || + lookahead == 'f' || + lookahead == 'n' || + lookahead == 'r' || + lookahead == 't') ADVANCE(55); + END_STATE(); + case 32: + if (lookahead == '\\') ADVANCE(16); + if (lookahead == 'u') ADVANCE(62); + if (lookahead == '"' || + lookahead == '/' || + lookahead == 'b' || + lookahead == 'f' || + lookahead == 'n' || + lookahead == 'r' || + lookahead == 't') ADVANCE(61); + END_STATE(); + case 33: + if (lookahead == '\\') ADVANCE(36); + if (lookahead == '}') ADVANCE(81); + if (lookahead == '+' || + lookahead == '-') ADVANCE(97); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(79); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(106); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107); + END_STATE(); + case 34: + if (lookahead == '\\') ADVANCE(32); + if (lookahead == ']') ADVANCE(74); + if (lookahead != 0) ADVANCE(51); + END_STATE(); + case 35: + if (lookahead == 'n') ADVANCE(86); + if (lookahead == 'u') ADVANCE(22); + END_STATE(); + case 36: + if (lookahead == 'n') ADVANCE(79); + if (lookahead == 'u') ADVANCE(24); + END_STATE(); + case 37: + if (lookahead == 'u') ADVANCE(47); + END_STATE(); + case 38: + if (lookahead == '{') ADVANCE(89); + END_STATE(); + case 39: + if (lookahead == '}') ADVANCE(67); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39); + END_STATE(); + case 40: + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(78); + END_STATE(); + case 41: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39); + END_STATE(); + case 42: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(110); + END_STATE(); + case 43: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + END_STATE(); + case 44: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + END_STATE(); + case 45: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(42); + END_STATE(); + case 46: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(45); + END_STATE(); + case 47: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(46); + END_STATE(); + case 48: + if (eof) ADVANCE(50); + if (lookahead == '(') ADVANCE(69); + if (lookahead == '*') ADVANCE(66); + if (lookahead == '+') ADVANCE(65); + if (lookahead == '?') ADVANCE(63); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '{') ADVANCE(52); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); + END_STATE(); + case 49: + if (eof) ADVANCE(50); + if (lookahead == '(') ADVANCE(69); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(30); + if (lookahead == '|') ADVANCE(68); + if (lookahead != 0) ADVANCE(51); + END_STATE(); + case 50: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 51: + ACCEPT_TOKEN(aux_sym_literal_token1); + END_STATE(); + case 52: + ACCEPT_TOKEN(aux_sym_literal_token1); + if (lookahead == ',') ADVANCE(41); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(12); + END_STATE(); + case 53: + ACCEPT_TOKEN(aux_sym_literal_token1); + if (lookahead == ':') ADVANCE(70); + if (lookahead == '>') ADVANCE(71); + END_STATE(); + case 54: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASH_BSLASH_BSLASH); + END_STATE(); + case 55: + ACCEPT_TOKEN(aux_sym_backslash_token1); + END_STATE(); + case 56: + ACCEPT_TOKEN(aux_sym_backslash_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(46); + END_STATE(); + case 57: + ACCEPT_TOKEN(aux_sym_backslash_token2); + END_STATE(); + case 58: + ACCEPT_TOKEN(aux_sym_backslash_token3); + END_STATE(); + case 59: + ACCEPT_TOKEN(aux_sym_backslash_token4); + END_STATE(); + case 60: + ACCEPT_TOKEN(aux_sym_backslash_token4); + if (lookahead == '{') ADVANCE(40); + END_STATE(); + case 61: + ACCEPT_TOKEN(aux_sym_backslash_token5); + END_STATE(); + case 62: + ACCEPT_TOKEN(aux_sym_backslash_token5); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(46); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_QMARK); + END_STATE(); + case 64: + ACCEPT_TOKEN(anon_sym_QMARK); + if (lookahead == ':') ADVANCE(70); + if (lookahead == '>') ADVANCE(71); + END_STATE(); + case 65: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 67: + ACCEPT_TOKEN(aux_sym_quantifier_token1); + END_STATE(); + case 68: + ACCEPT_TOKEN(sym_alteration); + END_STATE(); + case 69: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 70: + ACCEPT_TOKEN(anon_sym_QMARK_COLON); + END_STATE(); + case 71: + ACCEPT_TOKEN(anon_sym_QMARK_GT); + END_STATE(); + case 72: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 73: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 74: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 75: + ACCEPT_TOKEN(aux_sym_octal_token1); + END_STATE(); + case 76: + ACCEPT_TOKEN(aux_sym_octal_token1); + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(75); + END_STATE(); + case 77: + ACCEPT_TOKEN(aux_sym_octal_token1); + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(76); + END_STATE(); + case 78: + ACCEPT_TOKEN(aux_sym_octal_token2); + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(78); + END_STATE(); + case 79: + ACCEPT_TOKEN(aux_sym_octal_token3); + if (lookahead == '\\') ADVANCE(36); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(79); + END_STATE(); + case 80: + ACCEPT_TOKEN(aux_sym_octal_token4); + if (('0' <= lookahead && lookahead <= '7')) ADVANCE(80); + END_STATE(); + case 81: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 82: + ACCEPT_TOKEN(aux_sym_hexadecimal_token1); + END_STATE(); + case 83: + ACCEPT_TOKEN(aux_sym_hexadecimal_token1); + if (lookahead == '{') ADVANCE(43); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84); + END_STATE(); + case 84: + ACCEPT_TOKEN(aux_sym_hexadecimal_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(82); + END_STATE(); + case 85: + ACCEPT_TOKEN(aux_sym_hexadecimal_token2); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + END_STATE(); + case 86: + ACCEPT_TOKEN(aux_sym_hexadecimal_token3); + if (lookahead == '\\') ADVANCE(35); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(86); + END_STATE(); + case 87: + ACCEPT_TOKEN(aux_sym_hexadecimal_token4); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + END_STATE(); + case 88: + ACCEPT_TOKEN(aux_sym_property_token1); + END_STATE(); + case 89: + ACCEPT_TOKEN(aux_sym_property_token1); + if (lookahead == '^') ADVANCE(88); + END_STATE(); + case 90: + ACCEPT_TOKEN(aux_sym_property_token2); + if (lookahead == '1' || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(90); + END_STATE(); + case 91: + ACCEPT_TOKEN(aux_sym_property_token3); + if (lookahead == ' ' || + lookahead == '-' || + lookahead == '_') ADVANCE(91); + END_STATE(); + case 92: + ACCEPT_TOKEN(aux_sym_backreference_token1); + END_STATE(); + case 93: + ACCEPT_TOKEN(aux_sym_backreference_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + END_STATE(); + case 94: + ACCEPT_TOKEN(aux_sym_backreference_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + END_STATE(); + case 95: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHk_LT); + END_STATE(); + case 96: + ACCEPT_TOKEN(aux_sym_backreference_token2); + if (lookahead == '0') ADVANCE(17); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(96); + END_STATE(); + case 97: + ACCEPT_TOKEN(aux_sym_backreference_token3); + END_STATE(); + case 98: + ACCEPT_TOKEN(aux_sym_backreference_token4); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(98); + END_STATE(); + case 99: + ACCEPT_TOKEN(aux_sym_backreference_token5); + if (lookahead == '0') ADVANCE(21); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(99); + END_STATE(); + case 100: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 101: + ACCEPT_TOKEN(anon_sym_GT); + END_STATE(); + case 102: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHk_SQUOTE); + END_STATE(); + case 103: + ACCEPT_TOKEN(anon_sym_SQUOTE); + END_STATE(); + case 104: + ACCEPT_TOKEN(anon_sym_SQUOTE); + if (lookahead != 0 && + lookahead != '>') ADVANCE(108); + END_STATE(); + case 105: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHg_LT); + END_STATE(); + case 106: + ACCEPT_TOKEN(aux_sym_subroutine_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(106); + END_STATE(); + case 107: + ACCEPT_TOKEN(aux_sym_subroutine_token2); + END_STATE(); + case 108: + ACCEPT_TOKEN(aux_sym_subroutine_token3); + if (lookahead != 0 && + lookahead != '>') ADVANCE(108); + END_STATE(); + case 109: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHg_SQUOTE); + END_STATE(); + case 110: + ACCEPT_TOKEN(aux_sym_unicode_token1); + END_STATE(); + case 111: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHc); + END_STATE(); + case 112: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHC_DASH); + END_STATE(); + case 113: + ACCEPT_TOKEN(anon_sym_BSLASH_BSLASHM_DASH); + END_STATE(); + case 114: + ACCEPT_TOKEN(aux_sym_meta_control_char_token1); + END_STATE(); + case 115: + ACCEPT_TOKEN(aux_sym_meta_control_char_token1); + if (lookahead == '\\') ADVANCE(28); + if (lookahead == 'u') ADVANCE(47); + END_STATE(); + default: + return false; + } +} + +static const TSLexMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0}, + [1] = {.lex_state = 48}, + [2] = {.lex_state = 8}, + [3] = {.lex_state = 8}, + [4] = {.lex_state = 9}, + [5] = {.lex_state = 9}, + [6] = {.lex_state = 10}, + [7] = {.lex_state = 10}, + [8] = {.lex_state = 10}, + [9] = {.lex_state = 10}, + [10] = {.lex_state = 10}, + [11] = {.lex_state = 10}, + [12] = {.lex_state = 49}, + [13] = {.lex_state = 10}, + [14] = {.lex_state = 10}, + [15] = {.lex_state = 10}, + [16] = {.lex_state = 49}, + [17] = {.lex_state = 10}, + [18] = {.lex_state = 10}, + [19] = {.lex_state = 10}, + [20] = {.lex_state = 49}, + [21] = {.lex_state = 10}, + [22] = {.lex_state = 49}, + [23] = {.lex_state = 7}, + [24] = {.lex_state = 48}, + [25] = {.lex_state = 8}, + [26] = {.lex_state = 8}, + [27] = {.lex_state = 7}, + [28] = {.lex_state = 48}, + [29] = {.lex_state = 48}, + [30] = {.lex_state = 48}, + [31] = {.lex_state = 48}, + [32] = {.lex_state = 7}, + [33] = {.lex_state = 7}, + [34] = {.lex_state = 48}, + [35] = {.lex_state = 48}, + [36] = {.lex_state = 48}, + [37] = {.lex_state = 48}, + [38] = {.lex_state = 48}, + [39] = {.lex_state = 48}, + [40] = {.lex_state = 7}, + [41] = {.lex_state = 7}, + [42] = {.lex_state = 7}, + [43] = {.lex_state = 7}, + [44] = {.lex_state = 7}, + [45] = {.lex_state = 7}, + [46] = {.lex_state = 7}, + [47] = {.lex_state = 7}, + [48] = {.lex_state = 7}, + [49] = {.lex_state = 7}, + [50] = {.lex_state = 7}, + [51] = {.lex_state = 7}, + [52] = {.lex_state = 7}, + [53] = {.lex_state = 7}, + [54] = {.lex_state = 48}, + [55] = {.lex_state = 48}, + [56] = {.lex_state = 7}, + [57] = {.lex_state = 48}, + [58] = {.lex_state = 7}, + [59] = {.lex_state = 48}, + [60] = {.lex_state = 48}, + [61] = {.lex_state = 48}, + [62] = {.lex_state = 48}, + [63] = {.lex_state = 48}, + [64] = {.lex_state = 7}, + [65] = {.lex_state = 48}, + [66] = {.lex_state = 48}, + [67] = {.lex_state = 48}, + [68] = {.lex_state = 48}, + [69] = {.lex_state = 48}, + [70] = {.lex_state = 48}, + [71] = {.lex_state = 7}, + [72] = {.lex_state = 48}, + [73] = {.lex_state = 7}, + [74] = {.lex_state = 7}, + [75] = {.lex_state = 7}, + [76] = {.lex_state = 48}, + [77] = {.lex_state = 7}, + [78] = {.lex_state = 7}, + [79] = {.lex_state = 48}, + [80] = {.lex_state = 7}, + [81] = {.lex_state = 48}, + [82] = {.lex_state = 48}, + [83] = {.lex_state = 7}, + [84] = {.lex_state = 7}, + [85] = {.lex_state = 48}, + [86] = {.lex_state = 7}, + [87] = {.lex_state = 48}, + [88] = {.lex_state = 7}, + [89] = {.lex_state = 34}, + [90] = {.lex_state = 34}, + [91] = {.lex_state = 34}, + [92] = {.lex_state = 34}, + [93] = {.lex_state = 34}, + [94] = {.lex_state = 10}, + [95] = {.lex_state = 10}, + [96] = {.lex_state = 49}, + [97] = {.lex_state = 49}, + [98] = {.lex_state = 10}, + [99] = {.lex_state = 10}, + [100] = {.lex_state = 10}, + [101] = {.lex_state = 49}, + [102] = {.lex_state = 10}, + [103] = {.lex_state = 49}, + [104] = {.lex_state = 49}, + [105] = {.lex_state = 49}, + [106] = {.lex_state = 49}, + [107] = {.lex_state = 49}, + [108] = {.lex_state = 49}, + [109] = {.lex_state = 49}, + [110] = {.lex_state = 10}, + [111] = {.lex_state = 49}, + [112] = {.lex_state = 10}, + [113] = {.lex_state = 49}, + [114] = {.lex_state = 49}, + [115] = {.lex_state = 49}, + [116] = {.lex_state = 49}, + [117] = {.lex_state = 49}, + [118] = {.lex_state = 49}, + [119] = {.lex_state = 49}, + [120] = {.lex_state = 10}, + [121] = {.lex_state = 10}, + [122] = {.lex_state = 10}, + [123] = {.lex_state = 10}, + [124] = {.lex_state = 10}, + [125] = {.lex_state = 10}, + [126] = {.lex_state = 49}, + [127] = {.lex_state = 49}, + [128] = {.lex_state = 49}, + [129] = {.lex_state = 10}, + [130] = {.lex_state = 10}, + [131] = {.lex_state = 10}, + [132] = {.lex_state = 49}, + [133] = {.lex_state = 49}, + [134] = {.lex_state = 10}, + [135] = {.lex_state = 49}, + [136] = {.lex_state = 10}, + [137] = {.lex_state = 49}, + [138] = {.lex_state = 10}, + [139] = {.lex_state = 10}, + [140] = {.lex_state = 10}, + [141] = {.lex_state = 10}, + [142] = {.lex_state = 10}, + [143] = {.lex_state = 49}, + [144] = {.lex_state = 10}, + [145] = {.lex_state = 10}, + [146] = {.lex_state = 11}, + [147] = {.lex_state = 11}, + [148] = {.lex_state = 11}, + [149] = {.lex_state = 11}, + [150] = {.lex_state = 11}, + [151] = {.lex_state = 11}, + [152] = {.lex_state = 11}, + [153] = {.lex_state = 11}, + [154] = {.lex_state = 11}, + [155] = {.lex_state = 11}, + [156] = {.lex_state = 11}, + [157] = {.lex_state = 11}, + [158] = {.lex_state = 11}, + [159] = {.lex_state = 11}, + [160] = {.lex_state = 11}, + [161] = {.lex_state = 11}, + [162] = {.lex_state = 11}, + [163] = {.lex_state = 11}, + [164] = {.lex_state = 34}, + [165] = {.lex_state = 34}, + [166] = {.lex_state = 34}, + [167] = {.lex_state = 34}, + [168] = {.lex_state = 34}, + [169] = {.lex_state = 34}, + [170] = {.lex_state = 34}, + [171] = {.lex_state = 34}, + [172] = {.lex_state = 34}, + [173] = {.lex_state = 34}, + [174] = {.lex_state = 34}, + [175] = {.lex_state = 34}, + [176] = {.lex_state = 29}, + [177] = {.lex_state = 29}, + [178] = {.lex_state = 29}, + [179] = {.lex_state = 29}, + [180] = {.lex_state = 2}, + [181] = {.lex_state = 2}, + [182] = {.lex_state = 2}, + [183] = {.lex_state = 1}, + [184] = {.lex_state = 2}, + [185] = {.lex_state = 2}, + [186] = {.lex_state = 2}, + [187] = {.lex_state = 2}, + [188] = {.lex_state = 1}, + [189] = {.lex_state = 1}, + [190] = {.lex_state = 33}, + [191] = {.lex_state = 1}, + [192] = {.lex_state = 1}, + [193] = {.lex_state = 33}, + [194] = {.lex_state = 33}, + [195] = {.lex_state = 1}, + [196] = {.lex_state = 33}, + [197] = {.lex_state = 33}, + [198] = {.lex_state = 1}, + [199] = {.lex_state = 33}, + [200] = {.lex_state = 1}, + [201] = {.lex_state = 33}, + [202] = {.lex_state = 33}, + [203] = {.lex_state = 1}, + [204] = {.lex_state = 1}, + [205] = {.lex_state = 33}, + [206] = {.lex_state = 1}, + [207] = {.lex_state = 33}, + [208] = {.lex_state = 1}, + [209] = {.lex_state = 33}, + [210] = {.lex_state = 1}, + [211] = {.lex_state = 1}, + [212] = {.lex_state = 1}, + [213] = {.lex_state = 33}, + [214] = {.lex_state = 27}, + [215] = {.lex_state = 6}, + [216] = {.lex_state = 3}, + [217] = {.lex_state = 3}, + [218] = {.lex_state = 1}, + [219] = {.lex_state = 3}, + [220] = {.lex_state = 6}, + [221] = {.lex_state = 3}, + [222] = {.lex_state = 27}, + [223] = {.lex_state = 2}, + [224] = {.lex_state = 2}, + [225] = {.lex_state = 2}, + [226] = {.lex_state = 1}, + [227] = {.lex_state = 2}, + [228] = {.lex_state = 0}, + [229] = {.lex_state = 2}, + [230] = {.lex_state = 2}, + [231] = {.lex_state = 1}, + [232] = {.lex_state = 2}, + [233] = {.lex_state = 2}, + [234] = {.lex_state = 2}, + [235] = {.lex_state = 2}, + [236] = {.lex_state = 1}, + [237] = {.lex_state = 2}, + [238] = {.lex_state = 2}, + [239] = {.lex_state = 2}, + [240] = {.lex_state = 1}, + [241] = {.lex_state = 3}, + [242] = {.lex_state = 2}, + [243] = {.lex_state = 2}, + [244] = {.lex_state = 44}, + [245] = {.lex_state = 2}, + [246] = {.lex_state = 2}, + [247] = {.lex_state = 33}, + [248] = {.lex_state = 2}, + [249] = {.lex_state = 33}, + [250] = {.lex_state = 1}, + [251] = {.lex_state = 1}, + [252] = {.lex_state = 33}, + [253] = {.lex_state = 33}, + [254] = {.lex_state = 1}, + [255] = {.lex_state = 1}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [aux_sym_literal_token1] = ACTIONS(1), + [anon_sym_QMARK] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [sym_alteration] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [aux_sym_backreference_token3] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), + [aux_sym_subroutine_token2] = ACTIONS(1), + [aux_sym_unicode_token1] = ACTIONS(1), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(1), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(1), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(1), + [aux_sym_meta_control_char_token1] = ACTIONS(1), + }, + [1] = { + [sym_regex] = STATE(228), + [aux_sym__expression] = STATE(16), + [sym_literal] = STATE(16), + [sym_backslash] = STATE(16), + [sym_quantifier] = STATE(22), + [sym_capture_group] = STATE(16), + [sym_character_class] = STATE(16), + [sym_octal] = STATE(16), + [sym_hexadecimal] = STATE(16), + [sym_property] = STATE(16), + [sym_backreference] = STATE(16), + [sym_subroutine] = STATE(16), + [sym_unicode] = STATE(16), + [sym_meta_control_char] = STATE(16), + [aux_sym_literal_repeat1] = STATE(24), + [aux_sym_quantifier_repeat1] = STATE(79), + [aux_sym_meta_control_char_repeat1] = STATE(177), + [ts_builtin_sym_end] = ACTIONS(3), + [aux_sym_literal_token1] = ACTIONS(5), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(7), + [aux_sym_backslash_token1] = ACTIONS(9), + [aux_sym_backslash_token2] = ACTIONS(7), + [aux_sym_backslash_token3] = ACTIONS(7), + [aux_sym_backslash_token4] = ACTIONS(9), + [aux_sym_backslash_token5] = ACTIONS(9), + [anon_sym_QMARK] = ACTIONS(11), + [anon_sym_PLUS] = ACTIONS(11), + [anon_sym_STAR] = ACTIONS(11), + [aux_sym_quantifier_token1] = ACTIONS(11), + [sym_alteration] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACK] = ACTIONS(17), + [aux_sym_octal_token1] = ACTIONS(19), + [aux_sym_octal_token2] = ACTIONS(21), + [aux_sym_hexadecimal_token1] = ACTIONS(23), + [aux_sym_hexadecimal_token2] = ACTIONS(25), + [aux_sym_property_token1] = ACTIONS(27), + [aux_sym_backreference_token1] = ACTIONS(29), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(31), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(33), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(35), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(37), + [aux_sym_unicode_token1] = ACTIONS(39), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(41), + }, + [2] = { + [aux_sym__expression] = STATE(21), + [sym_literal] = STATE(21), + [sym_backslash] = STATE(21), + [sym_quantifier] = STATE(5), + [sym_capture_group] = STATE(21), + [sym_character_class] = STATE(21), + [sym_octal] = STATE(21), + [sym_hexadecimal] = STATE(21), + [sym_property] = STATE(21), + [sym_backreference] = STATE(21), + [sym_subroutine] = STATE(21), + [sym_unicode] = STATE(21), + [sym_meta_control_char] = STATE(21), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_quantifier_repeat1] = STATE(26), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [anon_sym_QMARK] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(51), + [anon_sym_STAR] = ACTIONS(51), + [aux_sym_quantifier_token1] = ACTIONS(51), + [sym_alteration] = ACTIONS(53), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_QMARK_COLON] = ACTIONS(57), + [anon_sym_QMARK_GT] = ACTIONS(57), + [anon_sym_RPAREN] = ACTIONS(59), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [3] = { + [aux_sym__expression] = STATE(13), + [sym_literal] = STATE(13), + [sym_backslash] = STATE(13), + [sym_quantifier] = STATE(4), + [sym_capture_group] = STATE(13), + [sym_character_class] = STATE(13), + [sym_octal] = STATE(13), + [sym_hexadecimal] = STATE(13), + [sym_property] = STATE(13), + [sym_backreference] = STATE(13), + [sym_subroutine] = STATE(13), + [sym_unicode] = STATE(13), + [sym_meta_control_char] = STATE(13), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_quantifier_repeat1] = STATE(26), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [anon_sym_QMARK] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(51), + [anon_sym_STAR] = ACTIONS(51), + [aux_sym_quantifier_token1] = ACTIONS(51), + [sym_alteration] = ACTIONS(87), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_QMARK_COLON] = ACTIONS(89), + [anon_sym_QMARK_GT] = ACTIONS(89), + [anon_sym_RPAREN] = ACTIONS(91), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [4] = { + [aux_sym__expression] = STATE(8), + [sym_literal] = STATE(8), + [sym_backslash] = STATE(8), + [sym_capture_group] = STATE(8), + [sym_character_class] = STATE(8), + [sym_octal] = STATE(8), + [sym_hexadecimal] = STATE(8), + [sym_property] = STATE(8), + [sym_backreference] = STATE(8), + [sym_subroutine] = STATE(8), + [sym_unicode] = STATE(8), + [sym_meta_control_char] = STATE(8), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(93), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_QMARK_COLON] = ACTIONS(95), + [anon_sym_QMARK_GT] = ACTIONS(95), + [anon_sym_RPAREN] = ACTIONS(97), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [5] = { + [aux_sym__expression] = STATE(6), + [sym_literal] = STATE(6), + [sym_backslash] = STATE(6), + [sym_capture_group] = STATE(6), + [sym_character_class] = STATE(6), + [sym_octal] = STATE(6), + [sym_hexadecimal] = STATE(6), + [sym_property] = STATE(6), + [sym_backreference] = STATE(6), + [sym_subroutine] = STATE(6), + [sym_unicode] = STATE(6), + [sym_meta_control_char] = STATE(6), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(99), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_QMARK_COLON] = ACTIONS(101), + [anon_sym_QMARK_GT] = ACTIONS(101), + [anon_sym_RPAREN] = ACTIONS(103), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [6] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(107), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [7] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(109), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [8] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(111), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [9] = { + [aux_sym__expression] = STATE(7), + [sym_literal] = STATE(7), + [sym_backslash] = STATE(7), + [sym_capture_group] = STATE(7), + [sym_character_class] = STATE(7), + [sym_octal] = STATE(7), + [sym_hexadecimal] = STATE(7), + [sym_property] = STATE(7), + [sym_backreference] = STATE(7), + [sym_subroutine] = STATE(7), + [sym_unicode] = STATE(7), + [sym_meta_control_char] = STATE(7), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(113), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(111), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [10] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(115), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(118), + [aux_sym_backslash_token1] = ACTIONS(121), + [aux_sym_backslash_token2] = ACTIONS(118), + [aux_sym_backslash_token3] = ACTIONS(118), + [aux_sym_backslash_token4] = ACTIONS(121), + [aux_sym_backslash_token5] = ACTIONS(121), + [sym_alteration] = ACTIONS(124), + [anon_sym_LPAREN] = ACTIONS(127), + [anon_sym_RPAREN] = ACTIONS(130), + [anon_sym_LBRACK] = ACTIONS(132), + [aux_sym_octal_token1] = ACTIONS(135), + [aux_sym_octal_token2] = ACTIONS(138), + [aux_sym_hexadecimal_token1] = ACTIONS(141), + [aux_sym_hexadecimal_token2] = ACTIONS(144), + [aux_sym_property_token1] = ACTIONS(147), + [aux_sym_backreference_token1] = ACTIONS(150), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(153), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(156), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(159), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(162), + [aux_sym_unicode_token1] = ACTIONS(165), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(168), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(168), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(168), + }, + [11] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(171), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [12] = { + [aux_sym__expression] = STATE(12), + [sym_literal] = STATE(12), + [sym_backslash] = STATE(12), + [sym_capture_group] = STATE(12), + [sym_character_class] = STATE(12), + [sym_octal] = STATE(12), + [sym_hexadecimal] = STATE(12), + [sym_property] = STATE(12), + [sym_backreference] = STATE(12), + [sym_subroutine] = STATE(12), + [sym_unicode] = STATE(12), + [sym_meta_control_char] = STATE(12), + [aux_sym_literal_repeat1] = STATE(24), + [aux_sym_meta_control_char_repeat1] = STATE(177), + [ts_builtin_sym_end] = ACTIONS(130), + [aux_sym_literal_token1] = ACTIONS(173), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(176), + [aux_sym_backslash_token1] = ACTIONS(179), + [aux_sym_backslash_token2] = ACTIONS(176), + [aux_sym_backslash_token3] = ACTIONS(176), + [aux_sym_backslash_token4] = ACTIONS(179), + [aux_sym_backslash_token5] = ACTIONS(179), + [sym_alteration] = ACTIONS(182), + [anon_sym_LPAREN] = ACTIONS(185), + [anon_sym_LBRACK] = ACTIONS(188), + [aux_sym_octal_token1] = ACTIONS(191), + [aux_sym_octal_token2] = ACTIONS(194), + [aux_sym_hexadecimal_token1] = ACTIONS(197), + [aux_sym_hexadecimal_token2] = ACTIONS(200), + [aux_sym_property_token1] = ACTIONS(203), + [aux_sym_backreference_token1] = ACTIONS(206), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(209), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(212), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(215), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(218), + [aux_sym_unicode_token1] = ACTIONS(221), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(224), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(224), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(224), + }, + [13] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(227), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [14] = { + [aux_sym__expression] = STATE(18), + [sym_literal] = STATE(18), + [sym_backslash] = STATE(18), + [sym_capture_group] = STATE(18), + [sym_character_class] = STATE(18), + [sym_octal] = STATE(18), + [sym_hexadecimal] = STATE(18), + [sym_property] = STATE(18), + [sym_backreference] = STATE(18), + [sym_subroutine] = STATE(18), + [sym_unicode] = STATE(18), + [sym_meta_control_char] = STATE(18), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(229), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(107), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [15] = { + [aux_sym__expression] = STATE(11), + [sym_literal] = STATE(11), + [sym_backslash] = STATE(11), + [sym_capture_group] = STATE(11), + [sym_character_class] = STATE(11), + [sym_octal] = STATE(11), + [sym_hexadecimal] = STATE(11), + [sym_property] = STATE(11), + [sym_backreference] = STATE(11), + [sym_subroutine] = STATE(11), + [sym_unicode] = STATE(11), + [sym_meta_control_char] = STATE(11), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(231), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(227), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [16] = { + [aux_sym__expression] = STATE(12), + [sym_literal] = STATE(12), + [sym_backslash] = STATE(12), + [sym_capture_group] = STATE(12), + [sym_character_class] = STATE(12), + [sym_octal] = STATE(12), + [sym_hexadecimal] = STATE(12), + [sym_property] = STATE(12), + [sym_backreference] = STATE(12), + [sym_subroutine] = STATE(12), + [sym_unicode] = STATE(12), + [sym_meta_control_char] = STATE(12), + [aux_sym_literal_repeat1] = STATE(24), + [aux_sym_meta_control_char_repeat1] = STATE(177), + [ts_builtin_sym_end] = ACTIONS(233), + [aux_sym_literal_token1] = ACTIONS(5), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(7), + [aux_sym_backslash_token1] = ACTIONS(9), + [aux_sym_backslash_token2] = ACTIONS(7), + [aux_sym_backslash_token3] = ACTIONS(7), + [aux_sym_backslash_token4] = ACTIONS(9), + [aux_sym_backslash_token5] = ACTIONS(9), + [sym_alteration] = ACTIONS(235), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACK] = ACTIONS(17), + [aux_sym_octal_token1] = ACTIONS(19), + [aux_sym_octal_token2] = ACTIONS(21), + [aux_sym_hexadecimal_token1] = ACTIONS(23), + [aux_sym_hexadecimal_token2] = ACTIONS(25), + [aux_sym_property_token1] = ACTIONS(27), + [aux_sym_backreference_token1] = ACTIONS(29), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(31), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(33), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(35), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(37), + [aux_sym_unicode_token1] = ACTIONS(39), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(41), + }, + [17] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(237), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [18] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(239), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [19] = { + [aux_sym__expression] = STATE(17), + [sym_literal] = STATE(17), + [sym_backslash] = STATE(17), + [sym_capture_group] = STATE(17), + [sym_character_class] = STATE(17), + [sym_octal] = STATE(17), + [sym_hexadecimal] = STATE(17), + [sym_property] = STATE(17), + [sym_backreference] = STATE(17), + [sym_subroutine] = STATE(17), + [sym_unicode] = STATE(17), + [sym_meta_control_char] = STATE(17), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(241), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(243), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [20] = { + [aux_sym__expression] = STATE(12), + [sym_literal] = STATE(12), + [sym_backslash] = STATE(12), + [sym_capture_group] = STATE(12), + [sym_character_class] = STATE(12), + [sym_octal] = STATE(12), + [sym_hexadecimal] = STATE(12), + [sym_property] = STATE(12), + [sym_backreference] = STATE(12), + [sym_subroutine] = STATE(12), + [sym_unicode] = STATE(12), + [sym_meta_control_char] = STATE(12), + [aux_sym_literal_repeat1] = STATE(24), + [aux_sym_meta_control_char_repeat1] = STATE(177), + [ts_builtin_sym_end] = ACTIONS(245), + [aux_sym_literal_token1] = ACTIONS(5), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(7), + [aux_sym_backslash_token1] = ACTIONS(9), + [aux_sym_backslash_token2] = ACTIONS(7), + [aux_sym_backslash_token3] = ACTIONS(7), + [aux_sym_backslash_token4] = ACTIONS(9), + [aux_sym_backslash_token5] = ACTIONS(9), + [sym_alteration] = ACTIONS(235), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACK] = ACTIONS(17), + [aux_sym_octal_token1] = ACTIONS(19), + [aux_sym_octal_token2] = ACTIONS(21), + [aux_sym_hexadecimal_token1] = ACTIONS(23), + [aux_sym_hexadecimal_token2] = ACTIONS(25), + [aux_sym_property_token1] = ACTIONS(27), + [aux_sym_backreference_token1] = ACTIONS(29), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(31), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(33), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(35), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(37), + [aux_sym_unicode_token1] = ACTIONS(39), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(41), + }, + [21] = { + [aux_sym__expression] = STATE(10), + [sym_literal] = STATE(10), + [sym_backslash] = STATE(10), + [sym_capture_group] = STATE(10), + [sym_character_class] = STATE(10), + [sym_octal] = STATE(10), + [sym_hexadecimal] = STATE(10), + [sym_property] = STATE(10), + [sym_backreference] = STATE(10), + [sym_subroutine] = STATE(10), + [sym_unicode] = STATE(10), + [sym_meta_control_char] = STATE(10), + [aux_sym_literal_repeat1] = STATE(23), + [aux_sym_meta_control_char_repeat1] = STATE(178), + [aux_sym_literal_token1] = ACTIONS(43), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(45), + [aux_sym_backslash_token1] = ACTIONS(47), + [aux_sym_backslash_token2] = ACTIONS(45), + [aux_sym_backslash_token3] = ACTIONS(45), + [aux_sym_backslash_token4] = ACTIONS(47), + [aux_sym_backslash_token5] = ACTIONS(47), + [sym_alteration] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(55), + [anon_sym_RPAREN] = ACTIONS(243), + [anon_sym_LBRACK] = ACTIONS(61), + [aux_sym_octal_token1] = ACTIONS(63), + [aux_sym_octal_token2] = ACTIONS(65), + [aux_sym_hexadecimal_token1] = ACTIONS(67), + [aux_sym_hexadecimal_token2] = ACTIONS(69), + [aux_sym_property_token1] = ACTIONS(71), + [aux_sym_backreference_token1] = ACTIONS(73), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(75), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(77), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(79), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(81), + [aux_sym_unicode_token1] = ACTIONS(83), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(85), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(85), + }, + [22] = { + [aux_sym__expression] = STATE(20), + [sym_literal] = STATE(20), + [sym_backslash] = STATE(20), + [sym_capture_group] = STATE(20), + [sym_character_class] = STATE(20), + [sym_octal] = STATE(20), + [sym_hexadecimal] = STATE(20), + [sym_property] = STATE(20), + [sym_backreference] = STATE(20), + [sym_subroutine] = STATE(20), + [sym_unicode] = STATE(20), + [sym_meta_control_char] = STATE(20), + [aux_sym_literal_repeat1] = STATE(24), + [aux_sym_meta_control_char_repeat1] = STATE(177), + [aux_sym_literal_token1] = ACTIONS(5), + [anon_sym_BSLASH_BSLASH_BSLASH_BSLASH] = ACTIONS(7), + [aux_sym_backslash_token1] = ACTIONS(9), + [aux_sym_backslash_token2] = ACTIONS(7), + [aux_sym_backslash_token3] = ACTIONS(7), + [aux_sym_backslash_token4] = ACTIONS(9), + [aux_sym_backslash_token5] = ACTIONS(9), + [sym_alteration] = ACTIONS(247), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACK] = ACTIONS(17), + [aux_sym_octal_token1] = ACTIONS(19), + [aux_sym_octal_token2] = ACTIONS(21), + [aux_sym_hexadecimal_token1] = ACTIONS(23), + [aux_sym_hexadecimal_token2] = ACTIONS(25), + [aux_sym_property_token1] = ACTIONS(27), + [aux_sym_backreference_token1] = ACTIONS(29), + [anon_sym_BSLASH_BSLASHk_LT] = ACTIONS(31), + [anon_sym_BSLASH_BSLASHk_SQUOTE] = ACTIONS(33), + [anon_sym_BSLASH_BSLASHg_LT] = ACTIONS(35), + [anon_sym_BSLASH_BSLASHg_SQUOTE] = ACTIONS(37), + [aux_sym_unicode_token1] = ACTIONS(39), + [anon_sym_BSLASH_BSLASHc] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHC_DASH] = ACTIONS(41), + [anon_sym_BSLASH_BSLASHM_DASH] = ACTIONS(41), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 7, + ACTIONS(249), 1, + aux_sym_literal_token1, + STATE(80), 1, + aux_sym_literal_repeat1, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(131), 1, + sym_quantifier, + ACTIONS(253), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(251), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [47] = 7, + ACTIONS(257), 1, + aux_sym_literal_token1, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(82), 1, + aux_sym_literal_repeat1, + STATE(135), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(253), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(251), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [94] = 5, + ACTIONS(263), 1, + anon_sym_QMARK, + STATE(25), 1, + aux_sym_quantifier_repeat1, + ACTIONS(266), 3, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(259), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(261), 22, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_QMARK_COLON, + anon_sym_QMARK_GT, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [137] = 5, + ACTIONS(273), 1, + anon_sym_QMARK, + STATE(25), 1, + aux_sym_quantifier_repeat1, + ACTIONS(275), 3, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 22, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_QMARK_COLON, + anon_sym_QMARK_GT, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [180] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(112), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(277), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(279), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [222] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(133), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(283), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(281), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [264] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(115), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(287), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(285), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [306] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(114), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(291), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(289), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [348] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(128), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(295), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [390] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(120), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(297), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(299), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [432] = 5, + STATE(86), 1, + aux_sym_quantifier_repeat1, + STATE(88), 1, + sym_quantifier, + ACTIONS(305), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [474] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(126), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(310), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [516] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(117), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(314), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(312), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [558] = 5, + STATE(85), 1, + aux_sym_quantifier_repeat1, + STATE(87), 1, + sym_quantifier, + ACTIONS(316), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [600] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(143), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(321), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(319), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [642] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(97), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(325), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(323), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [684] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(113), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(277), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(279), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [726] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(129), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(327), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(329), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [768] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(98), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(331), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(333), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [810] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(99), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(314), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(312), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [852] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(100), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(335), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(337), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [894] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(102), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(287), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(285), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [936] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(110), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(291), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(289), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [978] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(123), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(325), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(323), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1020] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(121), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(339), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(341), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1062] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(122), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(343), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1104] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(124), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1146] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(130), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1188] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(134), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(355), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(357), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1230] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(139), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(359), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(361), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1272] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(141), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(363), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(365), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1314] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(96), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(297), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(299), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1356] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(132), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(369), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(367), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1398] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(145), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(371), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(373), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1440] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(101), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(377), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(375), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1482] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(95), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1524] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(103), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(371), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(373), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1566] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(116), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(335), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(337), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1608] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(104), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(363), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(365), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1650] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(111), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(339), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(341), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1692] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(119), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(327), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(329), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1734] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(94), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(379), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(381), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1776] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(105), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(359), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(361), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1818] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(137), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1860] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(118), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(331), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(333), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1902] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(106), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(355), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(357), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1944] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(109), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(343), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [1986] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(127), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(379), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(381), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2028] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(144), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(321), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(319), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2070] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(107), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2112] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(142), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(310), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2154] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(140), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(295), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2196] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(138), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(369), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(367), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2238] = 5, + STATE(79), 1, + aux_sym_quantifier_repeat1, + STATE(108), 1, + sym_quantifier, + ACTIONS(11), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2280] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(136), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(283), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(281), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2322] = 5, + STATE(83), 1, + aux_sym_quantifier_repeat1, + STATE(125), 1, + sym_quantifier, + ACTIONS(255), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(377), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(375), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2364] = 4, + STATE(81), 1, + aux_sym_quantifier_repeat1, + ACTIONS(383), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2403] = 4, + ACTIONS(385), 1, + aux_sym_literal_token1, + STATE(80), 1, + aux_sym_literal_repeat1, + ACTIONS(390), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(388), 24, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2442] = 4, + STATE(81), 1, + aux_sym_quantifier_repeat1, + ACTIONS(392), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(259), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(261), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2481] = 4, + ACTIONS(395), 1, + aux_sym_literal_token1, + STATE(82), 1, + aux_sym_literal_repeat1, + ACTIONS(390), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(388), 24, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2520] = 4, + STATE(84), 1, + aux_sym_quantifier_repeat1, + ACTIONS(398), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2559] = 4, + STATE(84), 1, + aux_sym_quantifier_repeat1, + ACTIONS(400), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(259), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(261), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2598] = 4, + STATE(81), 1, + aux_sym_quantifier_repeat1, + ACTIONS(403), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2637] = 4, + STATE(84), 1, + aux_sym_quantifier_repeat1, + ACTIONS(406), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2676] = 2, + ACTIONS(411), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 24, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2710] = 2, + ACTIONS(411), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 24, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [2744] = 14, + ACTIONS(413), 1, + aux_sym_literal_token1, + ACTIONS(422), 1, + anon_sym_RBRACK, + ACTIONS(424), 1, + aux_sym_octal_token1, + ACTIONS(427), 1, + aux_sym_octal_token2, + ACTIONS(430), 1, + aux_sym_hexadecimal_token1, + ACTIONS(433), 1, + aux_sym_hexadecimal_token2, + ACTIONS(436), 1, + aux_sym_property_token1, + ACTIONS(439), 1, + aux_sym_unicode_token1, + STATE(146), 1, + aux_sym_literal_repeat1, + STATE(176), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(416), 3, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + ACTIONS(419), 3, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + ACTIONS(442), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + STATE(89), 8, + sym_literal, + sym_backslash, + sym_octal, + sym_hexadecimal, + sym_property, + sym_unicode, + sym_meta_control_char, + aux_sym_character_class_repeat1, + [2800] = 14, + ACTIONS(445), 1, + aux_sym_literal_token1, + ACTIONS(451), 1, + anon_sym_RBRACK, + ACTIONS(453), 1, + aux_sym_octal_token1, + ACTIONS(455), 1, + aux_sym_octal_token2, + ACTIONS(457), 1, + aux_sym_hexadecimal_token1, + ACTIONS(459), 1, + aux_sym_hexadecimal_token2, + ACTIONS(461), 1, + aux_sym_property_token1, + ACTIONS(463), 1, + aux_sym_unicode_token1, + STATE(146), 1, + aux_sym_literal_repeat1, + STATE(176), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(447), 3, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + ACTIONS(449), 3, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + ACTIONS(465), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + STATE(89), 8, + sym_literal, + sym_backslash, + sym_octal, + sym_hexadecimal, + sym_property, + sym_unicode, + sym_meta_control_char, + aux_sym_character_class_repeat1, + [2856] = 14, + ACTIONS(445), 1, + aux_sym_literal_token1, + ACTIONS(453), 1, + aux_sym_octal_token1, + ACTIONS(455), 1, + aux_sym_octal_token2, + ACTIONS(457), 1, + aux_sym_hexadecimal_token1, + ACTIONS(459), 1, + aux_sym_hexadecimal_token2, + ACTIONS(461), 1, + aux_sym_property_token1, + ACTIONS(463), 1, + aux_sym_unicode_token1, + ACTIONS(467), 1, + anon_sym_RBRACK, + STATE(146), 1, + aux_sym_literal_repeat1, + STATE(176), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(447), 3, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - ACTIONS(69), 1, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + ACTIONS(449), 3, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + ACTIONS(465), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + STATE(90), 8, + sym_literal, + sym_backslash, + sym_octal, + sym_hexadecimal, + sym_property, + sym_unicode, + sym_meta_control_char, + aux_sym_character_class_repeat1, + [2912] = 14, + ACTIONS(445), 1, + aux_sym_literal_token1, + ACTIONS(453), 1, + aux_sym_octal_token1, + ACTIONS(455), 1, + aux_sym_octal_token2, + ACTIONS(457), 1, + aux_sym_hexadecimal_token1, + ACTIONS(459), 1, + aux_sym_hexadecimal_token2, + ACTIONS(461), 1, + aux_sym_property_token1, + ACTIONS(463), 1, + aux_sym_unicode_token1, + ACTIONS(469), 1, anon_sym_RBRACK, - ACTIONS(65), 2, + STATE(146), 1, + aux_sym_literal_repeat1, + STATE(176), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(447), 3, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + ACTIONS(449), 3, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + ACTIONS(465), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + STATE(89), 8, + sym_literal, + sym_backslash, + sym_octal, + sym_hexadecimal, + sym_property, + sym_unicode, + sym_meta_control_char, + aux_sym_character_class_repeat1, + [2968] = 14, + ACTIONS(445), 1, + aux_sym_literal_token1, + ACTIONS(453), 1, + aux_sym_octal_token1, + ACTIONS(455), 1, + aux_sym_octal_token2, + ACTIONS(457), 1, + aux_sym_hexadecimal_token1, + ACTIONS(459), 1, + aux_sym_hexadecimal_token2, + ACTIONS(461), 1, + aux_sym_property_token1, + ACTIONS(463), 1, + aux_sym_unicode_token1, + ACTIONS(471), 1, + anon_sym_RBRACK, + STATE(146), 1, + aux_sym_literal_repeat1, + STATE(176), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(447), 3, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - STATE(8), 3, - sym_character_class_literal, + aux_sym_backslash_token3, + ACTIONS(449), 3, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + ACTIONS(465), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + STATE(92), 8, + sym_literal, sym_backslash, + sym_octal, + sym_hexadecimal, + sym_property, + sym_unicode, + sym_meta_control_char, aux_sym_character_class_repeat1, - [38] = 5, - ACTIONS(61), 1, - aux_sym_character_class_literal_token1, - ACTIONS(63), 1, + [3024] = 2, + ACTIONS(473), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(475), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3054] = 2, + ACTIONS(411), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3084] = 2, + ACTIONS(479), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(477), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3114] = 2, + ACTIONS(295), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3144] = 2, + ACTIONS(481), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(483), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3174] = 2, + ACTIONS(485), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(487), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3204] = 2, + ACTIONS(327), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(329), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3234] = 2, + ACTIONS(310), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3264] = 2, + ACTIONS(331), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(333), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3294] = 2, + ACTIONS(491), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(489), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3324] = 2, + ACTIONS(291), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(289), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3354] = 2, + ACTIONS(287), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(285), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3384] = 2, + ACTIONS(495), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(493), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3414] = 2, + ACTIONS(499), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(497), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3444] = 2, + ACTIONS(503), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(501), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3474] = 2, + ACTIONS(507), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(505), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3504] = 2, + ACTIONS(509), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(511), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3534] = 2, + ACTIONS(335), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(337), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3564] = 2, + ACTIONS(314), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(312), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3594] = 2, + ACTIONS(314), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(312), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3624] = 2, + ACTIONS(509), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(511), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3654] = 2, + ACTIONS(331), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(333), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3684] = 2, + ACTIONS(327), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(329), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3714] = 2, + ACTIONS(485), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(487), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3744] = 2, + ACTIONS(481), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(483), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3774] = 2, + ACTIONS(515), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(513), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3804] = 2, + ACTIONS(479), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(477), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - ACTIONS(71), 1, - anon_sym_RBRACK, - ACTIONS(65), 2, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3834] = 2, + ACTIONS(335), 5, + aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(337), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - STATE(12), 3, - sym_character_class_literal, - sym_backslash, - aux_sym_character_class_repeat1, - [57] = 5, - ACTIONS(73), 1, - aux_sym_character_class_literal_token1, - ACTIONS(76), 1, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3864] = 2, + ACTIONS(507), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(505), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - ACTIONS(82), 1, - anon_sym_RBRACK, - ACTIONS(79), 2, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3894] = 2, + ACTIONS(295), 5, + aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - STATE(11), 3, - sym_character_class_literal, - sym_backslash, - aux_sym_character_class_repeat1, - [76] = 5, - ACTIONS(61), 1, - aux_sym_character_class_literal_token1, - ACTIONS(63), 1, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3924] = 2, + ACTIONS(503), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(501), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - ACTIONS(84), 1, - anon_sym_RBRACK, - ACTIONS(65), 2, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3954] = 2, + ACTIONS(310), 5, + aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - STATE(11), 3, - sym_character_class_literal, - sym_backslash, - aux_sym_character_class_repeat1, - [95] = 2, - ACTIONS(86), 3, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [3984] = 2, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 20, ts_builtin_sym_end, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, - ACTIONS(88), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4014] = 2, + ACTIONS(473), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(475), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, anon_sym_LBRACK, - [107] = 2, - ACTIONS(90), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4044] = 2, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 20, ts_builtin_sym_end, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, - ACTIONS(92), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4074] = 2, + ACTIONS(515), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(513), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACK, - [119] = 2, - ACTIONS(94), 3, - ts_builtin_sym_end, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4104] = 2, + ACTIONS(499), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(497), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, - ACTIONS(96), 4, + anon_sym_RPAREN, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4134] = 2, + ACTIONS(517), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(519), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACK, - [131] = 2, - ACTIONS(98), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4164] = 2, + ACTIONS(355), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(357), 20, ts_builtin_sym_end, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, - ACTIONS(100), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4194] = 2, + ACTIONS(363), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(365), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, anon_sym_LBRACK, - [143] = 2, - ACTIONS(98), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4224] = 2, + ACTIONS(495), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(493), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(100), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4254] = 2, + ACTIONS(517), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(519), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, anon_sym_LBRACK, - [155] = 2, - ACTIONS(104), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4284] = 2, + ACTIONS(363), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(365), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(102), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4314] = 2, + ACTIONS(411), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, anon_sym_LBRACK, - [167] = 2, - ACTIONS(108), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4344] = 2, + ACTIONS(355), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(357), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(106), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4374] = 2, + ACTIONS(287), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(285), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACK, - [179] = 2, - ACTIONS(90), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4404] = 2, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(92), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4434] = 2, + ACTIONS(291), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(289), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACK, - [191] = 2, - ACTIONS(86), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4464] = 2, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(88), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4494] = 2, + ACTIONS(343), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 20, + ts_builtin_sym_end, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, anon_sym_LBRACK, - [203] = 2, - ACTIONS(94), 3, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4524] = 2, + ACTIONS(343), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 20, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, anon_sym_LPAREN, anon_sym_RPAREN, - ACTIONS(96), 4, + anon_sym_LBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4554] = 2, + ACTIONS(491), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(489), 20, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, + aux_sym_backslash_token3, + sym_alteration, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACK, - [215] = 2, - ACTIONS(108), 3, - ts_builtin_sym_end, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_backreference_token1, + anon_sym_BSLASH_BSLASHk_LT, + anon_sym_BSLASH_BSLASHk_SQUOTE, + anon_sym_BSLASH_BSLASHg_LT, + anon_sym_BSLASH_BSLASHg_SQUOTE, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4584] = 7, + ACTIONS(521), 1, + aux_sym_literal_token1, + STATE(159), 1, + aux_sym_literal_repeat1, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(167), 1, + sym_quantifier, + ACTIONS(253), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(251), 12, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - anon_sym_LPAREN, - ACTIONS(106), 4, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4623] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(166), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - anon_sym_LBRACK, - [227] = 2, - ACTIONS(104), 3, - ts_builtin_sym_end, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4657] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(174), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(377), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(375), 12, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, - anon_sym_LPAREN, - ACTIONS(102), 4, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4691] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(170), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(295), 5, aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - anon_sym_LBRACK, - [239] = 2, - ACTIONS(112), 2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4725] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(164), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(325), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(323), 12, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, anon_sym_RBRACK, - ACTIONS(110), 3, - aux_sym_character_class_literal_token1, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4759] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(171), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(297), 5, + aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(299), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - [249] = 2, - ACTIONS(104), 2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4793] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(173), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(310), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 12, anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, anon_sym_RBRACK, - ACTIONS(102), 3, - aux_sym_character_class_literal_token1, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4827] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(165), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(321), 5, + aux_sym_literal_token1, aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(319), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, aux_sym_backslash_token2, - [259] = 1, - ACTIONS(114), 1, - anon_sym_RPAREN, - [263] = 1, - ACTIONS(116), 1, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4861] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(169), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(371), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(373), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4895] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(172), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4929] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(175), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4963] = 5, + STATE(160), 1, + aux_sym_quantifier_repeat1, + STATE(168), 1, + sym_quantifier, + ACTIONS(523), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(343), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [4997] = 5, + STATE(162), 1, + aux_sym_quantifier_repeat1, + STATE(163), 1, + sym_quantifier, + ACTIONS(525), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(301), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(303), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5031] = 4, + ACTIONS(528), 1, + aux_sym_literal_token1, + STATE(159), 1, + aux_sym_literal_repeat1, + ACTIONS(390), 4, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(388), 16, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5062] = 4, + STATE(161), 1, + aux_sym_quantifier_repeat1, + ACTIONS(531), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5093] = 4, + STATE(161), 1, + aux_sym_quantifier_repeat1, + ACTIONS(533), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(259), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(261), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5124] = 4, + STATE(161), 1, + aux_sym_quantifier_repeat1, + ACTIONS(536), 4, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + ACTIONS(269), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(271), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5155] = 2, + ACTIONS(411), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 16, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_QMARK, + anon_sym_PLUS, + anon_sym_STAR, + aux_sym_quantifier_token1, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5181] = 2, + ACTIONS(295), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(293), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5203] = 2, + ACTIONS(343), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(345), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5225] = 2, + ACTIONS(411), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(409), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5247] = 2, + ACTIONS(517), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(519), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5269] = 2, + ACTIONS(507), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(505), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5291] = 2, + ACTIONS(491), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(489), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5313] = 2, + ACTIONS(351), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(353), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5335] = 2, + ACTIONS(479), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(477), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5357] = 2, + ACTIONS(499), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(497), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5379] = 2, + ACTIONS(347), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(349), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5401] = 2, + ACTIONS(310), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(308), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5423] = 2, + ACTIONS(503), 5, + aux_sym_literal_token1, + aux_sym_backslash_token1, + aux_sym_backslash_token4, + aux_sym_backslash_token5, + aux_sym_hexadecimal_token1, + ACTIONS(501), 12, + anon_sym_BSLASH_BSLASH_BSLASH_BSLASH, + aux_sym_backslash_token2, + aux_sym_backslash_token3, + anon_sym_RBRACK, + aux_sym_octal_token1, + aux_sym_octal_token2, + aux_sym_hexadecimal_token2, + aux_sym_property_token1, + aux_sym_unicode_token1, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5445] = 5, + ACTIONS(539), 1, + aux_sym_unicode_token1, + ACTIONS(543), 1, + aux_sym_meta_control_char_token1, + STATE(154), 1, + sym_unicode, + STATE(179), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(541), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5463] = 5, + ACTIONS(545), 1, + aux_sym_unicode_token1, + ACTIONS(547), 1, + aux_sym_meta_control_char_token1, + STATE(59), 1, + sym_unicode, + STATE(179), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(541), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5481] = 5, + ACTIONS(549), 1, + aux_sym_unicode_token1, + ACTIONS(551), 1, + aux_sym_meta_control_char_token1, + STATE(56), 1, + sym_unicode, + STATE(179), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(541), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5499] = 4, + ACTIONS(553), 1, + aux_sym_unicode_token1, + ACTIONS(558), 1, + aux_sym_meta_control_char_token1, + STATE(179), 1, + aux_sym_meta_control_char_repeat1, + ACTIONS(555), 3, + anon_sym_BSLASH_BSLASHc, + anon_sym_BSLASH_BSLASHC_DASH, + anon_sym_BSLASH_BSLASHM_DASH, + [5514] = 3, + ACTIONS(560), 1, + anon_sym_RBRACE, + STATE(187), 1, + aux_sym_property_repeat1, + ACTIONS(562), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5525] = 3, + ACTIONS(564), 1, + anon_sym_RBRACE, + STATE(185), 1, + aux_sym_property_repeat1, + ACTIONS(566), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5536] = 3, + ACTIONS(568), 1, + anon_sym_RBRACE, + STATE(186), 1, + aux_sym_property_repeat1, + ACTIONS(570), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5547] = 4, + ACTIONS(572), 1, + aux_sym_backreference_token2, + ACTIONS(574), 1, + aux_sym_backreference_token3, + ACTIONS(576), 1, + aux_sym_backreference_token4, + ACTIONS(578), 1, + anon_sym_EQ, + [5560] = 3, + ACTIONS(580), 1, + anon_sym_RBRACE, + STATE(181), 1, + aux_sym_property_repeat1, + ACTIONS(582), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5571] = 3, + ACTIONS(584), 1, + anon_sym_RBRACE, + STATE(185), 1, + aux_sym_property_repeat1, + ACTIONS(586), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5582] = 3, + ACTIONS(589), 1, + anon_sym_RBRACE, + STATE(185), 1, + aux_sym_property_repeat1, + ACTIONS(566), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5593] = 3, + ACTIONS(591), 1, + anon_sym_RBRACE, + STATE(185), 1, + aux_sym_property_repeat1, + ACTIONS(566), 2, + aux_sym_property_token2, + aux_sym_property_token3, + [5604] = 4, + ACTIONS(593), 1, + aux_sym_backreference_token2, + ACTIONS(595), 1, + aux_sym_backreference_token3, + ACTIONS(597), 1, + aux_sym_backreference_token4, + ACTIONS(599), 1, + anon_sym_EQ, + [5617] = 3, + ACTIONS(601), 1, + anon_sym_RBRACE, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + STATE(195), 1, + aux_sym_hexadecimal_repeat1, + [5627] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(607), 1, + anon_sym_RBRACE, + STATE(193), 1, + aux_sym_octal_repeat1, + [5637] = 3, + ACTIONS(609), 1, + aux_sym_backreference_token2, + ACTIONS(611), 1, + aux_sym_backreference_token3, + ACTIONS(613), 1, + anon_sym_GT, + [5647] = 3, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + ACTIONS(615), 1, + anon_sym_RBRACE, + STATE(195), 1, + aux_sym_hexadecimal_repeat1, + [5657] = 3, + ACTIONS(617), 1, + aux_sym_octal_token3, + ACTIONS(620), 1, + anon_sym_RBRACE, + STATE(193), 1, + aux_sym_octal_repeat1, + [5667] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(622), 1, + anon_sym_RBRACE, + STATE(193), 1, + aux_sym_octal_repeat1, + [5677] = 3, + ACTIONS(624), 1, + anon_sym_RBRACE, + ACTIONS(626), 1, + aux_sym_hexadecimal_token3, + STATE(195), 1, + aux_sym_hexadecimal_repeat1, + [5687] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(629), 1, + anon_sym_RBRACE, + STATE(202), 1, + aux_sym_octal_repeat1, + [5697] = 3, + ACTIONS(631), 1, + aux_sym_backreference_token3, + ACTIONS(633), 1, + aux_sym_subroutine_token1, + ACTIONS(635), 1, + aux_sym_subroutine_token2, + [5707] = 3, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + ACTIONS(637), 1, + anon_sym_RBRACE, + STATE(195), 1, + aux_sym_hexadecimal_repeat1, + [5717] = 3, + ACTIONS(639), 1, + aux_sym_backreference_token3, + ACTIONS(641), 1, + aux_sym_subroutine_token1, + ACTIONS(643), 1, + aux_sym_subroutine_token2, + [5727] = 3, + ACTIONS(645), 1, + aux_sym_backreference_token2, + ACTIONS(647), 1, + aux_sym_backreference_token3, + ACTIONS(649), 1, + anon_sym_GT, + [5737] = 3, + ACTIONS(651), 1, + aux_sym_backreference_token3, + ACTIONS(653), 1, + aux_sym_subroutine_token1, + ACTIONS(655), 1, + aux_sym_subroutine_token2, + [5747] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(657), 1, + anon_sym_RBRACE, + STATE(193), 1, + aux_sym_octal_repeat1, + [5757] = 3, + ACTIONS(659), 1, + aux_sym_backreference_token2, + ACTIONS(661), 1, + aux_sym_backreference_token3, + ACTIONS(663), 1, + aux_sym_backreference_token4, + [5767] = 3, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + ACTIONS(665), 1, + anon_sym_RBRACE, + STATE(189), 1, + aux_sym_hexadecimal_repeat1, + [5777] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(667), 1, + anon_sym_RBRACE, + STATE(190), 1, + aux_sym_octal_repeat1, + [5787] = 3, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + ACTIONS(669), 1, + anon_sym_RBRACE, + STATE(198), 1, + aux_sym_hexadecimal_repeat1, + [5797] = 3, + ACTIONS(671), 1, + aux_sym_backreference_token3, + ACTIONS(673), 1, + aux_sym_subroutine_token1, + ACTIONS(675), 1, + aux_sym_subroutine_token2, + [5807] = 3, + ACTIONS(677), 1, + aux_sym_backreference_token2, + ACTIONS(679), 1, + aux_sym_backreference_token3, + ACTIONS(681), 1, + aux_sym_backreference_token4, + [5817] = 3, + ACTIONS(605), 1, + aux_sym_octal_token3, + ACTIONS(683), 1, + anon_sym_RBRACE, + STATE(194), 1, + aux_sym_octal_repeat1, + [5827] = 3, + ACTIONS(603), 1, + aux_sym_hexadecimal_token3, + ACTIONS(685), 1, + anon_sym_RBRACE, + STATE(192), 1, + aux_sym_hexadecimal_repeat1, + [5837] = 3, + ACTIONS(613), 1, + anon_sym_SQUOTE, + ACTIONS(687), 1, + aux_sym_backreference_token2, + ACTIONS(689), 1, + aux_sym_backreference_token3, + [5847] = 3, + ACTIONS(649), 1, + anon_sym_SQUOTE, + ACTIONS(691), 1, + aux_sym_backreference_token2, + ACTIONS(693), 1, + aux_sym_backreference_token3, + [5857] = 1, + ACTIONS(620), 2, + aux_sym_octal_token3, + anon_sym_RBRACE, + [5862] = 2, + ACTIONS(695), 1, + anon_sym_GT, + ACTIONS(697), 1, + aux_sym_subroutine_token3, + [5869] = 2, + ACTIONS(699), 1, + anon_sym_SQUOTE, + ACTIONS(701), 1, + aux_sym_subroutine_token3, + [5876] = 2, + ACTIONS(649), 1, + anon_sym_SQUOTE, + ACTIONS(691), 1, + aux_sym_backreference_token5, + [5883] = 2, + ACTIONS(645), 1, + aux_sym_backreference_token5, + ACTIONS(649), 1, + anon_sym_GT, + [5890] = 1, + ACTIONS(624), 2, + anon_sym_RBRACE, + aux_sym_hexadecimal_token3, + [5895] = 2, + ACTIONS(613), 1, + anon_sym_SQUOTE, + ACTIONS(687), 1, + aux_sym_backreference_token5, + [5902] = 2, + ACTIONS(703), 1, + anon_sym_SQUOTE, + ACTIONS(705), 1, + aux_sym_subroutine_token3, + [5909] = 2, + ACTIONS(609), 1, + aux_sym_backreference_token5, + ACTIONS(613), 1, + anon_sym_GT, + [5916] = 2, + ACTIONS(707), 1, + anon_sym_GT, + ACTIONS(709), 1, + aux_sym_subroutine_token3, + [5923] = 1, + ACTIONS(711), 1, + anon_sym_GT, + [5927] = 1, + ACTIONS(613), 1, + anon_sym_GT, + [5931] = 1, + ACTIONS(695), 1, + anon_sym_GT, + [5935] = 1, + ACTIONS(691), 1, + aux_sym_backreference_token2, + [5939] = 1, + ACTIONS(695), 1, + anon_sym_SQUOTE, + [5943] = 1, + ACTIONS(713), 1, ts_builtin_sym_end, - [267] = 1, - ACTIONS(118), 1, - anon_sym_RPAREN, + [5947] = 1, + ACTIONS(649), 1, + anon_sym_GT, + [5951] = 1, + ACTIONS(715), 1, + anon_sym_GT, + [5955] = 1, + ACTIONS(645), 1, + aux_sym_backreference_token2, + [5959] = 1, + ACTIONS(717), 1, + anon_sym_GT, + [5963] = 1, + ACTIONS(717), 1, + anon_sym_SQUOTE, + [5967] = 1, + ACTIONS(719), 1, + anon_sym_GT, + [5971] = 1, + ACTIONS(719), 1, + anon_sym_SQUOTE, + [5975] = 1, + ACTIONS(721), 1, + aux_sym_backreference_token2, + [5979] = 1, + ACTIONS(723), 1, + anon_sym_GT, + [5983] = 1, + ACTIONS(723), 1, + anon_sym_SQUOTE, + [5987] = 1, + ACTIONS(715), 1, + anon_sym_SQUOTE, + [5991] = 1, + ACTIONS(725), 1, + aux_sym_backreference_token2, + [5995] = 1, + ACTIONS(727), 1, + aux_sym_octal_token4, + [5999] = 1, + ACTIONS(729), 1, + anon_sym_GT, + [6003] = 1, + ACTIONS(729), 1, + anon_sym_SQUOTE, + [6007] = 1, + ACTIONS(731), 1, + aux_sym_hexadecimal_token4, + [6011] = 1, + ACTIONS(711), 1, + anon_sym_SQUOTE, + [6015] = 1, + ACTIONS(707), 1, + anon_sym_SQUOTE, + [6019] = 1, + ACTIONS(733), 1, + aux_sym_subroutine_token1, + [6023] = 1, + ACTIONS(707), 1, + anon_sym_GT, + [6027] = 1, + ACTIONS(709), 1, + aux_sym_subroutine_token1, + [6031] = 1, + ACTIONS(609), 1, + aux_sym_backreference_token2, + [6035] = 1, + ACTIONS(687), 1, + aux_sym_backreference_token2, + [6039] = 1, + ACTIONS(697), 1, + aux_sym_subroutine_token1, + [6043] = 1, + ACTIONS(735), 1, + aux_sym_subroutine_token1, + [6047] = 1, + ACTIONS(737), 1, + aux_sym_backreference_token2, + [6051] = 1, + ACTIONS(739), 1, + aux_sym_backreference_token2, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(8)] = 0, - [SMALL_STATE(9)] = 19, - [SMALL_STATE(10)] = 38, - [SMALL_STATE(11)] = 57, - [SMALL_STATE(12)] = 76, - [SMALL_STATE(13)] = 95, - [SMALL_STATE(14)] = 107, - [SMALL_STATE(15)] = 119, - [SMALL_STATE(16)] = 131, - [SMALL_STATE(17)] = 143, - [SMALL_STATE(18)] = 155, - [SMALL_STATE(19)] = 167, - [SMALL_STATE(20)] = 179, - [SMALL_STATE(21)] = 191, - [SMALL_STATE(22)] = 203, - [SMALL_STATE(23)] = 215, - [SMALL_STATE(24)] = 227, - [SMALL_STATE(25)] = 239, - [SMALL_STATE(26)] = 249, - [SMALL_STATE(27)] = 259, - [SMALL_STATE(28)] = 263, - [SMALL_STATE(29)] = 267, + [SMALL_STATE(23)] = 0, + [SMALL_STATE(24)] = 47, + [SMALL_STATE(25)] = 94, + [SMALL_STATE(26)] = 137, + [SMALL_STATE(27)] = 180, + [SMALL_STATE(28)] = 222, + [SMALL_STATE(29)] = 264, + [SMALL_STATE(30)] = 306, + [SMALL_STATE(31)] = 348, + [SMALL_STATE(32)] = 390, + [SMALL_STATE(33)] = 432, + [SMALL_STATE(34)] = 474, + [SMALL_STATE(35)] = 516, + [SMALL_STATE(36)] = 558, + [SMALL_STATE(37)] = 600, + [SMALL_STATE(38)] = 642, + [SMALL_STATE(39)] = 684, + [SMALL_STATE(40)] = 726, + [SMALL_STATE(41)] = 768, + [SMALL_STATE(42)] = 810, + [SMALL_STATE(43)] = 852, + [SMALL_STATE(44)] = 894, + [SMALL_STATE(45)] = 936, + [SMALL_STATE(46)] = 978, + [SMALL_STATE(47)] = 1020, + [SMALL_STATE(48)] = 1062, + [SMALL_STATE(49)] = 1104, + [SMALL_STATE(50)] = 1146, + [SMALL_STATE(51)] = 1188, + [SMALL_STATE(52)] = 1230, + [SMALL_STATE(53)] = 1272, + [SMALL_STATE(54)] = 1314, + [SMALL_STATE(55)] = 1356, + [SMALL_STATE(56)] = 1398, + [SMALL_STATE(57)] = 1440, + [SMALL_STATE(58)] = 1482, + [SMALL_STATE(59)] = 1524, + [SMALL_STATE(60)] = 1566, + [SMALL_STATE(61)] = 1608, + [SMALL_STATE(62)] = 1650, + [SMALL_STATE(63)] = 1692, + [SMALL_STATE(64)] = 1734, + [SMALL_STATE(65)] = 1776, + [SMALL_STATE(66)] = 1818, + [SMALL_STATE(67)] = 1860, + [SMALL_STATE(68)] = 1902, + [SMALL_STATE(69)] = 1944, + [SMALL_STATE(70)] = 1986, + [SMALL_STATE(71)] = 2028, + [SMALL_STATE(72)] = 2070, + [SMALL_STATE(73)] = 2112, + [SMALL_STATE(74)] = 2154, + [SMALL_STATE(75)] = 2196, + [SMALL_STATE(76)] = 2238, + [SMALL_STATE(77)] = 2280, + [SMALL_STATE(78)] = 2322, + [SMALL_STATE(79)] = 2364, + [SMALL_STATE(80)] = 2403, + [SMALL_STATE(81)] = 2442, + [SMALL_STATE(82)] = 2481, + [SMALL_STATE(83)] = 2520, + [SMALL_STATE(84)] = 2559, + [SMALL_STATE(85)] = 2598, + [SMALL_STATE(86)] = 2637, + [SMALL_STATE(87)] = 2676, + [SMALL_STATE(88)] = 2710, + [SMALL_STATE(89)] = 2744, + [SMALL_STATE(90)] = 2800, + [SMALL_STATE(91)] = 2856, + [SMALL_STATE(92)] = 2912, + [SMALL_STATE(93)] = 2968, + [SMALL_STATE(94)] = 3024, + [SMALL_STATE(95)] = 3054, + [SMALL_STATE(96)] = 3084, + [SMALL_STATE(97)] = 3114, + [SMALL_STATE(98)] = 3144, + [SMALL_STATE(99)] = 3174, + [SMALL_STATE(100)] = 3204, + [SMALL_STATE(101)] = 3234, + [SMALL_STATE(102)] = 3264, + [SMALL_STATE(103)] = 3294, + [SMALL_STATE(104)] = 3324, + [SMALL_STATE(105)] = 3354, + [SMALL_STATE(106)] = 3384, + [SMALL_STATE(107)] = 3414, + [SMALL_STATE(108)] = 3444, + [SMALL_STATE(109)] = 3474, + [SMALL_STATE(110)] = 3504, + [SMALL_STATE(111)] = 3534, + [SMALL_STATE(112)] = 3564, + [SMALL_STATE(113)] = 3594, + [SMALL_STATE(114)] = 3624, + [SMALL_STATE(115)] = 3654, + [SMALL_STATE(116)] = 3684, + [SMALL_STATE(117)] = 3714, + [SMALL_STATE(118)] = 3744, + [SMALL_STATE(119)] = 3774, + [SMALL_STATE(120)] = 3804, + [SMALL_STATE(121)] = 3834, + [SMALL_STATE(122)] = 3864, + [SMALL_STATE(123)] = 3894, + [SMALL_STATE(124)] = 3924, + [SMALL_STATE(125)] = 3954, + [SMALL_STATE(126)] = 3984, + [SMALL_STATE(127)] = 4014, + [SMALL_STATE(128)] = 4044, + [SMALL_STATE(129)] = 4074, + [SMALL_STATE(130)] = 4104, + [SMALL_STATE(131)] = 4134, + [SMALL_STATE(132)] = 4164, + [SMALL_STATE(133)] = 4194, + [SMALL_STATE(134)] = 4224, + [SMALL_STATE(135)] = 4254, + [SMALL_STATE(136)] = 4284, + [SMALL_STATE(137)] = 4314, + [SMALL_STATE(138)] = 4344, + [SMALL_STATE(139)] = 4374, + [SMALL_STATE(140)] = 4404, + [SMALL_STATE(141)] = 4434, + [SMALL_STATE(142)] = 4464, + [SMALL_STATE(143)] = 4494, + [SMALL_STATE(144)] = 4524, + [SMALL_STATE(145)] = 4554, + [SMALL_STATE(146)] = 4584, + [SMALL_STATE(147)] = 4623, + [SMALL_STATE(148)] = 4657, + [SMALL_STATE(149)] = 4691, + [SMALL_STATE(150)] = 4725, + [SMALL_STATE(151)] = 4759, + [SMALL_STATE(152)] = 4793, + [SMALL_STATE(153)] = 4827, + [SMALL_STATE(154)] = 4861, + [SMALL_STATE(155)] = 4895, + [SMALL_STATE(156)] = 4929, + [SMALL_STATE(157)] = 4963, + [SMALL_STATE(158)] = 4997, + [SMALL_STATE(159)] = 5031, + [SMALL_STATE(160)] = 5062, + [SMALL_STATE(161)] = 5093, + [SMALL_STATE(162)] = 5124, + [SMALL_STATE(163)] = 5155, + [SMALL_STATE(164)] = 5181, + [SMALL_STATE(165)] = 5203, + [SMALL_STATE(166)] = 5225, + [SMALL_STATE(167)] = 5247, + [SMALL_STATE(168)] = 5269, + [SMALL_STATE(169)] = 5291, + [SMALL_STATE(170)] = 5313, + [SMALL_STATE(171)] = 5335, + [SMALL_STATE(172)] = 5357, + [SMALL_STATE(173)] = 5379, + [SMALL_STATE(174)] = 5401, + [SMALL_STATE(175)] = 5423, + [SMALL_STATE(176)] = 5445, + [SMALL_STATE(177)] = 5463, + [SMALL_STATE(178)] = 5481, + [SMALL_STATE(179)] = 5499, + [SMALL_STATE(180)] = 5514, + [SMALL_STATE(181)] = 5525, + [SMALL_STATE(182)] = 5536, + [SMALL_STATE(183)] = 5547, + [SMALL_STATE(184)] = 5560, + [SMALL_STATE(185)] = 5571, + [SMALL_STATE(186)] = 5582, + [SMALL_STATE(187)] = 5593, + [SMALL_STATE(188)] = 5604, + [SMALL_STATE(189)] = 5617, + [SMALL_STATE(190)] = 5627, + [SMALL_STATE(191)] = 5637, + [SMALL_STATE(192)] = 5647, + [SMALL_STATE(193)] = 5657, + [SMALL_STATE(194)] = 5667, + [SMALL_STATE(195)] = 5677, + [SMALL_STATE(196)] = 5687, + [SMALL_STATE(197)] = 5697, + [SMALL_STATE(198)] = 5707, + [SMALL_STATE(199)] = 5717, + [SMALL_STATE(200)] = 5727, + [SMALL_STATE(201)] = 5737, + [SMALL_STATE(202)] = 5747, + [SMALL_STATE(203)] = 5757, + [SMALL_STATE(204)] = 5767, + [SMALL_STATE(205)] = 5777, + [SMALL_STATE(206)] = 5787, + [SMALL_STATE(207)] = 5797, + [SMALL_STATE(208)] = 5807, + [SMALL_STATE(209)] = 5817, + [SMALL_STATE(210)] = 5827, + [SMALL_STATE(211)] = 5837, + [SMALL_STATE(212)] = 5847, + [SMALL_STATE(213)] = 5857, + [SMALL_STATE(214)] = 5862, + [SMALL_STATE(215)] = 5869, + [SMALL_STATE(216)] = 5876, + [SMALL_STATE(217)] = 5883, + [SMALL_STATE(218)] = 5890, + [SMALL_STATE(219)] = 5895, + [SMALL_STATE(220)] = 5902, + [SMALL_STATE(221)] = 5909, + [SMALL_STATE(222)] = 5916, + [SMALL_STATE(223)] = 5923, + [SMALL_STATE(224)] = 5927, + [SMALL_STATE(225)] = 5931, + [SMALL_STATE(226)] = 5935, + [SMALL_STATE(227)] = 5939, + [SMALL_STATE(228)] = 5943, + [SMALL_STATE(229)] = 5947, + [SMALL_STATE(230)] = 5951, + [SMALL_STATE(231)] = 5955, + [SMALL_STATE(232)] = 5959, + [SMALL_STATE(233)] = 5963, + [SMALL_STATE(234)] = 5967, + [SMALL_STATE(235)] = 5971, + [SMALL_STATE(236)] = 5975, + [SMALL_STATE(237)] = 5979, + [SMALL_STATE(238)] = 5983, + [SMALL_STATE(239)] = 5987, + [SMALL_STATE(240)] = 5991, + [SMALL_STATE(241)] = 5995, + [SMALL_STATE(242)] = 5999, + [SMALL_STATE(243)] = 6003, + [SMALL_STATE(244)] = 6007, + [SMALL_STATE(245)] = 6011, + [SMALL_STATE(246)] = 6015, + [SMALL_STATE(247)] = 6019, + [SMALL_STATE(248)] = 6023, + [SMALL_STATE(249)] = 6027, + [SMALL_STATE(250)] = 6031, + [SMALL_STATE(251)] = 6035, + [SMALL_STATE(252)] = 6039, + [SMALL_STATE(253)] = 6043, + [SMALL_STATE(254)] = 6047, + [SMALL_STATE(255)] = 6051, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_regex_repeat1, 2), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(16), - [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(24), - [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(24), - [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(2), - [41] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(10), - [44] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regex, 1), - [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(17), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(18), - [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(18), - [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(3), - [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_regex_repeat1, 2), SHIFT_REPEAT(9), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(25), - [76] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(26), - [79] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(26), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 3), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 3), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class, 2), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class, 2), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class, 3), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class, 3), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backslash, 1), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backslash, 1), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 2), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 2), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class_literal, 1), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class_literal, 1), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [116] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regex, 0), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(23), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(32), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(32), + [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(10), + [127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(3), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression, 2), + [132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(91), + [135] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(46), + [138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(209), + [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(78), + [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(210), + [147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(182), + [150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(64), + [153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(188), + [156] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(203), + [159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(207), + [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(199), + [165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(58), + [168] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(178), + [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(24), + [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(54), + [179] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(54), + [182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(12), + [185] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(2), + [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(93), + [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(38), + [194] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(196), + [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(57), + [200] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(206), + [203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(180), + [206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(70), + [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(183), + [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(208), + [215] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(201), + [218] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(197), + [221] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(66), + [224] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression, 2), SHIFT_REPEAT(177), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regex, 1), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_regex, 2, .production_id = 1), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [249] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1), + [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_quantifier_repeat1, 2), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_quantifier_repeat1, 2), + [263] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_quantifier_repeat1, 2), SHIFT_REPEAT(25), + [266] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quantifier_repeat1, 2), SHIFT_REPEAT(25), + [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quantifier, 1), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantifier, 1), + [273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subroutine, 3), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subroutine, 3), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 2), + [283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 2), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 4, .production_id = 2), + [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 4, .production_id = 2), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 4), + [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 4), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_octal, 2), + [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_octal, 2), + [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backslash, 1), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backslash, 1), + [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unicode, 1), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unicode, 1), + [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_unicode, 1), SHIFT(86), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hexadecimal, 2), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hexadecimal, 2), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subroutine, 4), + [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subroutine, 4), + [316] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_unicode, 1), SHIFT(85), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property, 2), + [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property, 2), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_octal, 1), + [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_octal, 1), + [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 5), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 5), + [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 5, .production_id = 2), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 5, .production_id = 2), + [335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 4), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 4), + [339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 3), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 3), + [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property, 3), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property, 3), + [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hexadecimal, 3), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hexadecimal, 3), + [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_octal, 3), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_octal, 3), + [355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class, 3), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class, 3), + [359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 3, .production_id = 2), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 3, .production_id = 2), + [363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 3), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 3), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class, 2), + [369] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class, 2), + [371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_control_char, 2), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_control_char, 2), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hexadecimal, 1), + [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hexadecimal, 1), + [379] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 1), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 1), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [385] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_literal_repeat1, 2), SHIFT_REPEAT(80), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_literal_repeat1, 2), + [390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_literal_repeat1, 2), + [392] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quantifier_repeat1, 2), SHIFT_REPEAT(81), + [395] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_literal_repeat1, 2), SHIFT_REPEAT(82), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quantifier_repeat1, 2), SHIFT_REPEAT(84), + [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_quantifier, 1), SHIFT(81), + [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_quantifier, 1), SHIFT(84), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unicode, 2), + [411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unicode, 2), + [413] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(146), + [416] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(151), + [419] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(151), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), + [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(150), + [427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(205), + [430] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(148), + [433] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(204), + [436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(184), + [439] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(147), + [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_character_class_repeat1, 2), SHIFT_REPEAT(176), + [445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 2), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 2), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backslash, 2), + [479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backslash, 2), + [481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 6, .production_id = 2), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 6, .production_id = 2), + [485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subroutine, 5), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subroutine, 5), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_control_char, 3), + [491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_control_char, 3), + [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_class, 4), + [495] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_character_class, 4), + [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_octal, 4), + [499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_octal, 4), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hexadecimal, 4), + [503] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hexadecimal, 4), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property, 4), + [507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property, 4), + [509] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture_group, 5), + [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture_group, 5), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_backreference, 6), + [515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_backreference, 6), + [517] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 2), + [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 2), + [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [525] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_unicode, 1), SHIFT(162), + [528] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_literal_repeat1, 2), SHIFT_REPEAT(159), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [533] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quantifier_repeat1, 2), SHIFT_REPEAT(161), + [536] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_quantifier, 1), SHIFT(161), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [547] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [551] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_control_char_repeat1, 2), + [555] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_control_char_repeat1, 2), SHIFT_REPEAT(179), + [558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_meta_control_char_repeat1, 2), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_property_repeat1, 2), + [586] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_property_repeat1, 2), SHIFT_REPEAT(185), + [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [617] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_octal_repeat1, 2), SHIFT_REPEAT(241), + [620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_octal_repeat1, 2), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_hexadecimal_repeat1, 2), + [626] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_hexadecimal_repeat1, 2), SHIFT_REPEAT(244), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [699] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [701] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), + [703] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), + [705] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [713] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), }; #ifdef __cplusplus diff --git a/syntaxes/regex.tmLanguage.json b/syntaxes/regex.tmLanguage.json index b08ea0e..dedfe7c 100644 --- a/syntaxes/regex.tmLanguage.json +++ b/syntaxes/regex.tmLanguage.json @@ -1550,9 +1550,11 @@ "comment": "Basic visual test", "//": "https://github.com/kkos/oniguruma/blob/master/doc/RE", "patterns": [ - { "match": "(*FAIL) !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ " }, + { "match": "(*FAIL) !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ " }, { "match": "(*FAIL) \"\/\b\f\n\r\t\u0000 " }, { "match": "(*FAIL) \\ \\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\.\\/\\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\:\\;\\<\\=\\>\\\\\\?\\@\\A\\B\\C-]\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M-a\\N\\O\\P{^L}\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z\\[\\\\\\]\\^\\_\\`\\a\\b\\c]\\d\\e\\f\\g<0>\\h\\i\\j\\k'1'\\l\\m\\n\\o\\p{l}\\q\\r\\s\\t\\u0000\\v\\w\\x\\y\\z\\{\\|\\}\\~ " }, + { "match": "(*FAIL) \\\"\\\/\\\b\\\f\\\n\\\r\\\t\\\u0000 " }, + { "match": "(*FAIL) \\\\ " }, { "match": "(*FAIL) (?x){2,3}{2,3}({2,3}(?:{2,3})){2,3}{,3}{2,}{2} {000} *{0} {0}* *{0}* {0}{0}{0} {0}{2,3} {2,3}{0}{2,3} {2,3\\} " }, { "match": "(*FAIL) () (?<= (?= (?> (?=)? ) )? ) (?= (?= )? ) " }, { "match": "(*FAIL) \\x \\x00 \\xFF \\x{} \\x{k} \\x\\{123} \\x{00000000 0013FFFF} [\\x{42 001FFFFF 48}-\\x{FFFFFFFF \n 45}] " },