"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var a,p;function I(){if(p)return a;p=1;function T(n){const t=n.regex,e=/[a-zA-Z]\w*/,s=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],c=["true","false","null"],o=["this","super"],S=["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"],r=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],i={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,e,/(?=\s*[({])/),className:"title.function"},_={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,e),t.either(...r)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:e}]}]}},R={variants:[{match:[/class\s+/,e,/\s+is\s+/,e]},{match:[/class\s+/,e]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:s},l={relevance:0,match:t.either(...r),className:"operator"},h={className:"string",begin:/"""/,end:/"""/},A={className:"property",begin:t.concat(/\./,t.lookahead(e)),end:e,excludeBegin:!0,relevance:0},E={relevance:0,match:t.concat(/\b_/,e),scope:"variable"},u={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:S}},b=n.C_NUMBER_MODE,g={match:[e,/\s*/,/=/,/\s*/,/\(/,e,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},O=n.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),m={scope:"subst",begin:/%\(/,end:/\)/,contains:[b,u,i,E,l]},N={scope:"string",begin:/"/,end:/"/,contains:[m,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};m.contains.push(N);const d=[...s,...o,...c],v={relevance:0,match:t.concat("\\b(?!",d.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:s,"variable.language":o,literal:c},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:c},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},b,N,h,O,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,u,R,g,_,i,l,E,A,v]}}return a=T,a}exports.__require=I;
