| 63 | See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Le.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function sE(t){let e=ct(t,n=>n.PATTERN.test(""));return I(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Le.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}var aE=/[^\\[][\^]|^\^/;function oE(t){class e extends xr{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}let r=ct(t,i=>{let s=i.PATTERN;try{let a=Gi(s),o=new e;return o.visit(a),o.found}catch(a){return aE.test(s.source)}});return I(r,i=>({message:`Unexpected RegExp Anchor Error: |
| 64 | Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' |
| 65 | See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Le.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function cE(t){let e=ct(t,n=>{let i=n[Qn];return i instanceof RegExp&&(i.multiline||i.global)});return I(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Le.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function lE(t){let e=[],r=I(t,s=>Ue(t,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!Pe(e,o)&&o.PATTERN!==He.NA&&(e.push(o),a.push(o)),a),[]));r=Or(r);let n=ct(r,s=>s.length>1);return I(n,s=>{let a=I(s,c=>c.name);return{message:`The same RegExp pattern ->${pt(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:Le.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function uE(t){let e=ct(t,n=>{if(!q(n,"GROUP"))return!1;let i=n.GROUP;return i!==He.SKIPPED&&i!==He.NA&&!mt(i)});return I(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Le.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function fE(t,e){let r=ct(t,i=>i.PUSH_MODE!==void 0&&!Pe(e,i.PUSH_MODE));return I(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Le.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function dE(t){let e=[],r=Ue(t,(n,i,s)=>{let a=i.PATTERN;return a===He.NA||(mt(a)?n.push({str:a,idx:s,tokenType:i}):tr(a)&&hE(a)&&n.push({str:a.source,idx:s,tokenType:i})),n},[]);return D(t,(n,i)=>{D(r,({str:s,idx:a,tokenType:o})=>{if(i<a&&pE(s,n.PATTERN)){let c=`Token: ->${o.name}<- can never be matched. |
| 66 | Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. |
| 67 | See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:Le.UNREACHABLE_PATTERN,tokenTypes:[n,o]})}})}),e}function pE(t,e){if(tr(e)){if(mE(e))return!1;let r=e.exec(t);return r!==null&&r.index===0}else{if(mr(e))return e(t,0,[],{});if(q(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function hE(t){return Lr([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function mE(t){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\?<!)/.test(t.source)}function dm(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function mm(t,e,r){let n=[];return q(t,qi)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+qi+`> property in its definition |
| 68 | `,type:Le.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),q(t,Tc)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Tc+`> property in its definition |