@live-codes/browser-compilers 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ var t={config:{comments:{blockComment:["<!--","-->"]},brackets:[["---","---"],["<!--","-->"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"<!--",close:"-->",notIn:["comment","string"]},{open:"/**",close:" */",notIn:["string"]},{open:"<",close:">",notIn:["string"]}],autoCloseBefore:";:.,=}])>` \n ",surroundingPairs:[{open:"'",close:"'"},{open:'"',close:'"'},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:/^\\s*<!--\\s*#region\\b.*-->/,end:/^\\s*<!--\\s*#endregion\\b.*-->/}}},tokens:{defaultToken:"",tokenPostfix:".astro",ignoreCase:!1,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/<!DOCTYPE/,"metatag","@doctype"],[/<!--/,"comment","@comment"],[/^---/,"comment","@frontmatter"],[/{/,"","@expression"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/</,"delimiter"],[/[^<{]+/]],doctype:[[/[^>]+/,"metatag.content"],[/>/,"metatag","@pop"]],frontmatter:[[/^---/,{token:"comment",next:"@pop",nextEmbedded:"@pop"}],[/./,{token:"@rematch",next:"@frontmatterEmbedded",nextEmbedded:"text/javascript"}]],frontmatterEmbedded:[[/[^-]+|-[^-][^-]+/,{token:"@rematch",next:"@pop"}],[/^---/,{token:"comment",next:"@root",nextEmbedded:"@pop"}]],expression:[[/[^<{}]/,{token:"@rematch",next:"@expressionEmbedded",nextEmbedded:"text/javascript"}],[/</,{token:"@rematch",next:"@pop"}],[/}/,{token:"",next:"@pop"}]],expressionEmbedded:[[/{/,"@rematch","@push"],[/</,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/}/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}};export{t as default};
@@ -0,0 +1 @@
1
+ var t={tokens:{keywords:["import","export","from","as","fn","await","[await]","if","else","true","false","and","or","not","type","list"],typeKeywords:["Number","String","Function","Array"],operators:[">","<",":","=","<=",">=","!=","+","-","*","/","//","|","**","%"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/fn/,{token:"keyword",next:"@function"}],[/->/,{token:"operators",next:"@chain"}],[/[a-zA-Z_$][\w$]*/i,{cases:{"@typeKeywords":"keyword","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/"([^'\\]|\\.)*$/,"string.invalid"],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/--.*$/,"comment"]],function:[[/[a-zA-Z0-9_]+/,{token:"variable",next:"@pop"}]],chain:[[/\*/,"operators"],[/\[?await\]?/,"keyword"],[/[a-zA-Z]+/,{token:"variable",next:"@pop"}]]}}};export{t as default};
@@ -0,0 +1 @@
1
+ function y(e){let s;return e?(s=e.toIterable)?s.call(e):e:[]}var g=[/^/,{token:"@rematch",next:"@pop"}],$={token:"@rematch",next:"@pop"},k={token:"white.indent",next:"@>illegal_indent"};function x(e,s="#"){typeof e=="string"&&(e=e.split(" "));let o=e.slice().sort(function(i,a){return a.length-i.length});return o=o.map(function(i){let a=i.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&");return s.replace("#",a)}),new RegExp("(?:"+o.join("|")+")")}function r(e,s,o,i={}){var a;e==null?e=k:e==1?e={next:"@>"}:e==2?e={next:"@>_indent&-_indent"}:typeof e=="string"&&(e={next:e}),s==-1&&(s=$),o==-1?o=$:o==0&&(i.comment==null?i.comment=!0:i.comment,o={}),e=Object.assign({token:"white.tabs"},e||{}),o=Object.assign({token:"white.tabs"},o||{}),s=Object.assign({token:"@rematch",next:"@pop"},s||{});let t={"$1==$S2 ":e,"$1==$S2":{cases:{"$1==$S6":o,"@default":{token:"@rematch",switchTo:"@*$1"}}},"@default":s};a=0;for(let n of["next","switchTo"]){let c=a++;e[n]&&e[n].indexOf("*")==-1&&(e[n]+="*$1")}let l=[/^(\t*)(?=[^ \t\n])/,{cases:t}];if(i.comment){let n={};for(let c=0,p=Object.keys(t),b=p.length,f,h;c<b;c++){f=p[c],h=t[f];let d=Object.assign({},h);!d.next&&!d.switchTo&&(d.next="@>_comment"),n[f]=d}return[[/^(\t*)(?=#\s|#$)/,{cases:n}],l]}return l}var w={root:[[/^@comment/,"comment","@>_comment"],[/^(\t+)(?=[^\t\n])/,{cases:{"$1==$S2 ":{token:"white.indent",next:"@>_indent*$1"},"@default":"white.indent"}}],"block_"],_comment:[[/^([\t\s\n]*)$/,"comment"],[/^(\t*)([\S\s]*)/,{cases:{"$1~$S2 *":{token:"comment"},"@default":{token:"@rematch",next:"@pop"}}}],[/[\S\s]+/,"comment"]],illegal_indent:[r()],identifier_:[[/\$\w+\$/,"identifier.env"],[/\$\d+/,"identifier.special"],[/\#+@id/,"identifier.symbol"],[/\¶@id/,"ivar"],[/@id\!?/,{cases:{this:"this",self:"self","@keywords":"keyword.$#","$0~[A-Z].*":"identifier.uppercase.$F","@default":"identifier.$F"}}]],block_:[[/^(\t+)(?=[\r\n]|$)/,"white.tabs"],"class_","tagclass_","var_","func_","import_","export_","flow_","for_","try_","catch_","while_","css_","tag_","do_","block_comment_","expr_",[/[ ]+/,"white"],"common_"],indentable_:[[/^[ ]+/,"white"],r("@>_paren_indent&-_indent",null,null),[/^(\t+)(?=[\r\n]|$)/,"white.tabs"],"whitespace"],_indent:[r(2,-1,0),"block_"],_paren_indent:[r(2,-1,0),"block_",[/\)|\}|\]/,"@rematch","@pop"]],block:[r("@>",-1,0),"block_"],bool_:[[/(true|false|yes|no|undefined|null)(?![\:\-\w\.\_])/,"boolean"]],op_:[[/\s+\:\s+/,"operator.ternary"],[/(@unspaced_ops)/,{cases:{"@spread":"operator.spread","@access":"operator.access","@default":"operator"}}],[/\/(?!\/)/,"operator.math"],[/\&(?=[,\)])/,"operator.special.blockparam"],[/(\s*)(@symbols)(\s*)/,{cases:{"$2@assignments":"operator.assign","$2@math":"operator.math","$2@operators":"operator","$2@logic":"operator.logic","$2@access":"operator.access","@default":"delimiter"}}],[/\&\b/,"operator"]],keyword_:[[/new@B/,"keyword.new"],[/isa@B/,"keyword.isa"],[/is@B/,"keyword.is"],[/(switch|when|throw|continue|break|then|await|typeof|by)@B/,"keyword.$1"],[/delete@B/,"keyword.delete"],[/and@B|or@B/,"operator.flow"]],return_:[[/return@B/,"keyword.new"]],primitive_:["string_","number_","regexp_","bool_"],value_:["primitive_","keyword_","implicit_call_","parens_","key_","access_","identifier_","array_","object_"],expr_:["comment_","inline_var_","return_","value_","tag_","op_","type_","spread_"],attr_expr_:["primitive_","parens_","access_","identifier_","array_","object_","tag_","op_"],access_:[[/(\.\.?)(@propid\!?)/,{cases:{"$2~[A-Z].*":["operator.access","accessor.uppercase"],"$2~#.*":["operator.access","accessor.symbol"],"@default":["operator.access","accessor"]}}]],call_:[[/\(/,"(","@call_body"]],key_:[[/(\#+@id)(\:\s*)/,["key.symbol","operator.assign.key-value"]],[/(@propid)(\:\s*)/,{cases:{"@default":["key","operator.assign.key-value"]}}]],implicit_call_:[[/(\.\.?)(@propid)@implicitCall/,{cases:{"$2~[A-Z].*":["operator.access","accessor.uppercase","@implicit_call_body"],"@default":["operator.access","accessor","@implicit_call_body"]}}],[/(@propid)@implicitCall/,{cases:{"$2~[A-Z].*":["identifier.uppercase","@implicit_call_body"],"@default":["identifier","@implicit_call_body"]}}]],implicit_call_body:[g,[/\)|\}|\]|\>/,"@rematch","@pop"],"arglist_","whitespace"],arglist_:["do_","expr_",[/\s*\,\s*/,"delimiter.comma"]],params_:[[/\[/,"array.[","@array_var_body=decl-param"],[/\{/,"object.{","@object_body=decl-param"],[/(@variable)/,"identifier.decl-param"],"spread_","type_",[/\s*\=\s*/,"operator","@var_value="],[/\s*\,\s*/,"separator"]],object_:[[/\{/,"object.{","@object_body"]],parens_:[[/\(/,"parens.(","@parens_body"]],parens_body:[[/\)/,")","@pop"],"indentable_","arglist_"],array_:[[/\[/,"array.[","@array_body"]],array_body:[[/\]@implicitCall/,{token:"]",switchTo:"@implicit_call_body="}],[/\]/,"]","@pop"],[/\)|\}/,"invalid"],"indentable_","expr_",[",","delimiter"]],object_body:[[/\}/,"}","@pop"],[/(@id)(\s*:\s*)/,["key","operator.assign.key-value","@object_value"]],[/(@id)/,"identifier.$F"],[/\[/,"[","@object_dynamic_key="],[/\s*=\s*/,"operator.assign","@object_value="],[/:/,"operator.assign.key-value","@object_value="],[/\,/,"delimiter.comma"],"indentable_","expr_"],object_value:[g,[/,|\}|\]|\)/,"@rematch","@pop"],"expr_"],object_dynamic_key:[["]","]","@pop"],"expr_"],comment_:[[/#(\s.*)?(\n|$)/,"comment"]],block_comment_:[[/###/,"comment.start","@_block_comment"]],_block_comment:[[/###/,"comment.end","@pop"],[/[^#]+/,"comment"],[/#(?!##)/,"comment"]],try_:[[/try@B/,"keyword.try","@>_try&try"]],catch_:[[/(catch\s+)(?=@id(\s|$))/,"keyword.catch","@catch_start&catch"],[/catch@B/,"keyword.catch","@catch_start&catch"]],catch_start:[[/@id/,"identifier.decl-const",{switchTo:"@>_catch"}],[/.?/,"@rematch",{switchTo:"@>_catch"}]],_catch:[r("@>block",-1,0),"block_"],_try:[r("@>block",-1,0),"block_"],do_:[[/do(?=\()/,"keyword.do","@>do_start&do"],[/do(?=\s*\|)/,"keyword.do","@>do_piped&do"],[/do@B/,"keyword.do","@>_do&do"]],do_start:[r(null,-1,-1),[/\(/,"(",{switchTo:"@_do_params"}],[/./,"@rematch",{switchTo:"@_do"}]],do_piped:[r(null,-1,-1),[/\s*\|/,"args.open",{switchTo:"@_do_piped_params"}],[/./,"@rematch",{switchTo:"@_do"}]],_do_piped_params:[[/\|/,"args.close",{switchTo:"@_do"}],"params_"],_do_params:[[/\)/,")",{switchTo:"@_do"}],"params_"],_do:[r(2,-1,0),[/(\}|\)|\])/,"@rematch","@pop"],"block_"],class_:[[/(extend)(?=\s+class )/,"keyword.$1"],[/(global)(?=\s+class )/,"keyword.$1"],[/(class)(\s)(@id)/,["keyword.$1","white.$1name","entity.name.class.decl-const","@class_start="]],[/(class)(?=\n)/,"keyword.$1","@>_class&class="]],class_start:[[/(\s+\<\s+)(@id)/,["keyword.extends","identifier.superclass"]],[/@comment/,"comment"],[/^/,"@rematch",{switchTo:"@>_class&class="}]],tagclass_:[[/(extend)(?=\s+tag )/,"keyword.$1"],[/(global)(?=\s+tag )/,"keyword.$1"],[/(tag)(\s)(@constant)/,["keyword.tag","white.tagname","entity.name.component.local","@tagclass_start="]],[/(tag)(\s)(@id)/,["keyword.tag","white.tagname","entity.name.component.global","@tagclass_start="]]],tagclass_start:[[/(\s+\<\s+)(@id)/,["keyword.extends","identifier.superclass"]],[/@comment/,"comment"],[/^/,"@rematch",{switchTo:"@>_tagclass&component="}]],import_:[[/(import)(?=\s+['"])/,"keyword.import","@>import_source"],[/(import)(\s+type)(?=\s[\w\$\@\{])/,["keyword.import","keyword.type","@>import_body&-_imports=decl-import/part"]],[/(import)@B/,"keyword.import","@>import_body&-_imports=decl-import/part"]],import_body:[r(null,-1,0),[/(@esmIdentifier)( +from)/,["identifier.$F.default","keyword.from",{switchTo:"@import_source"}]],[/(\*)(\s+as\s+)(@esmIdentifier)(\s+from)/,["keyword.star","keyword.as","identifier.$F.ns","keyword.from",{switchTo:"@import_source"}]],[/(@esmIdentifier)(\s*,\s*)(\*)(\s+as\s+)(@esmIdentifier)(from)/,["identifier.$F.default","delimiter.comma","keyword.star","keyword.as","identifier.$F.ns","keyword.from",{switchTo:"@import_source"}]],[/\ *from/,"keyword.from",{switchTo:"@import_source"}],[/\{/,"specifiers.{","@esm_specifiers/part"],[/(@esmIdentifier)/,"identifier.$F",{switchTo:"@/delim"}],[/\s*\,\s*/,"delimiter.comma",{switchTo:"@/part"}],"comma_","common_"],import_source:[r(null,-1,0),[/["']/,"path.open","@_path=$#"],g],export_:[[/(export)( +)(default)@B/,["keyword.export","white","keyword.default"]],[/(export)(?= +(let|const|var|class|tag)@B)/,"keyword.export"],[/(export)( +)(global)@B/,["keyword.export","white","keyword.global"]],[/(export)(\s+\*\s+)(from)@B/,["keyword.export","operator.star","keyword.from","@>import_source"]],[/(export)@B/,"keyword.export","@>export_body"]],export_body:[r(null,-1,0),[/(\*)(\s+as\s+)(@esmIdentifier)/,["keyword.star","keyword.as","identifier.const.export"]],[/(@esmIdentifier)(\s+as\s+)(default)/,["alias","keyword.as","alias.default"]],[/(@esmIdentifier)(\s+as\s+)(@esmIdentifier)/,["alias","keyword.as","identifier.const.export"]],[/from/,"keyword.from",{switchTo:"@import_source"}],[/\{/,"{","@esm_specifiers=export/part"],[/(@esmIdentifier)/,"identifier.const.export"],[/\*/,"operator.star"],"comma_","common_"],esm_specifiers:[[/\}/,"}","@pop"],[/(@esmIdentifier)(\s+as\s+)(@esmIdentifier)/,["alias","keyword.as","identifier.const.$F",{switchTo:"@/delim"}]],[/@esmIdentifier/,{cases:{"$/==part":{token:"identifier.const.$S4",switchTo:"@/delim"},"@default":{token:"invalid"}}}],[/\s*\,\s*/,"delimiter.comma",{switchTo:"@/part"}],"whitespace"],_path:[[/[^"'\`\{\\]+/,"path"],[/@escapes/,"path.escape"],[/\./,"path.escape.invalid"],[/\{/,"invalid"],[/["'`]/,{cases:{"$#==$F":{token:"path.close",next:"@pop"},"@default":"path"}}]],member_:[[/(constructor)@B/,"entity.name.constructor","@>def_params&def/def"],[/(def|get|set)(\s)(@defid)/,["keyword.$1","white.entity","entity.name.$1","@>def_params&$1/$1"]],[/(def|get|set)(\s)(\[)/,["keyword.$1","white.entity","$$","@>def_dynamic_name/$1"]]],func_:[[/export(?=\s+(get|set|def|global) )/,"keyword.export"],[/global(?=\s+(get|set|def) )/,"keyword.global"],[/(def)(\s)(@id)(\.)(@defid)/,["keyword.$1","white.entity","identifier.target","operator","entity.name.def","@>def_params&$1/$1"]],[/(def)(\s)(@defid)/,["keyword.$1","white.entity","entity.name.function.decl-const-func","@>def_params&$1/$1"]]],flow_:[[/(if|else|elif|unless)(?=\s|$)/,["keyword.$1","@flow_start=$1"]]],flow_start:[r({switchTo:"@>_flow&$F"},-1,-1),[/[ \t]+/,"white"],"expr_"],for_:[[/for(?: own)?@B/,"keyword.$#","@for_start&forscope=decl-for"]],while_:[[/(while|until)@B/,"keyword.$#","@>while_body"]],while_body:[r(2,-1,0),"block_"],for_start:[r({switchTo:"@>for_body"},-1,-1),[/\[/,"array.[","@array_var_body"],[/\{/,"object.{","@object_body"],[/(@variable)/,"identifier.$F"],[/(\s*\,\s*)/,"separator","@=decl-for-index"],[/\s(in|of)@B/,"keyword.$1",{switchTo:"@>for_source="}],[/[ \t]+/,"white"],"type_"],for_source:[r({switchTo:"@>for_body"},-1,{switchTo:"@for_body"}),"expr_",[/[ \t]+/,"white"]],for_body:[r(2,-1,0),"block_"],decorator_:[[/(@decid)(\()/,["decorator","$2","@_decorator_params"]],[/(@decid)/,"decorator"]],_decorator_params:[[/\)/,")","@pop"],"params_"],field_:[[/((?:lazy )?)((?:static )?)(const|let|attr)(?=\s|$)/,["keyword.lazy","keyword.static","keyword.$1","@_vardecl=field-$3"]],[/(static\s+)(?=@fieldid)/,"keyword.static"],[/(@fieldid)(?=$)/,"entity.name.field"],[/(@fieldid)/,["entity.name.field","@_field_1"]]],_field_1:[r(null,-1,-1),"type_",[/(\s*=)(?!\=)/,["operator.assign","@>_field_value&field"]],[/(\s*(?:\@)set\s*)/,["keyword.spy","@>_def&spy"]]],_field_value:[r(2,-1,0),"block_",[/(\s*(?:\@)set\s*)/,["@rematch","@pop"]]],var_:[[/((?:export )?)(const|let)(?=\s[\[\{\$a-zA-Z]|\s*$)/,["keyword.export","keyword.$1","@_vardecl=decl-$2"]],[/((?:export )?)(const|let)(?=\s|$)/,["keyword.export","keyword.$1"]]],inline_var_:[[/(const|let)(?=\s[\[\{\$a-zA-Z]|\s*$)/,["keyword.$1","@inline_var_body=decl-$1"]]],string_:[[/"""/,"string",'@_herestring="""'],[/'''/,"string","@_herestring='''"],[/["'`]/,"string.open","@_string=$#"]],number_:[[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[b][01_]+/,"number.binary"],[/0[o][0-9_]+/,"number.octal"],[/(\d+)([a-z]+|\%)/,["number","unit"]],[/(\d*\.\d+(?:[eE][\-+]?\d+)?)([a-z]+|\%)/,["number.float","unit"]],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d[\d_]*\.\d[\d_]*([eE][\-+]?\d+)?/,"number.float"],[/\d[\d_]*/,"number.integer"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"]],_string:[[/[^"'\`\{\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\{/,{cases:{"$F=='":"string","@default":{token:"string.bracket.open",next:"@interpolation_body"}}}],[/["'`]/,{cases:{"$#==$F":{token:"string.close",next:"@pop"},"@default":"string"}}],[/#/,"string"]],_herestring:[[/("""|''')/,{cases:{"$1==$F":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"\{]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\{/,{cases:{'$F=="""':{token:"string",next:"@interpolation_body"},"@default":"string"}}],[/#/,"string"]],interpolation_body:[[/\}/,"string.bracket.close","@pop"],"expr_"],_class:[r(k,-1,0),"css_","member_","comment_","decorator_",[/(get|set|def|static|prop|attr)@B/,"keyword.$0"],"field_","common_"],_tagclass:["_class",[/(?=\<self)/,"entity.name.def.render","@_render&def"]],def_params:[[/\(/,"(","@def_parens"],[/^/,"@rematch",{switchTo:"@_def"}],[/do@B/,"keyword.do",{switchTo:"@_def"}],"params_",[/@comment/,"comment"]],def_parens:[[/\)/,")","@pop"],"params_"],def_dynamic_name:[["]",{token:"square.close",switchTo:"@def_params&$/"}],"expr_"],_render:[r(2,-1,-1),"block_"],_def:[r(2,-1,0),"block_"],_flow:[r(2,-1,0),"block_"],_varblock:[r(1,-1,-1),[/\[/,"array.[","@array_var_body"],[/\{/,"object.{","@object_body"],[/(@variable)/,"identifier.$F"],[/\s*\,\s*/,"separator"],[/(\s*\=\s*)(?=(for|while|until|if|unless|try)\s)/,"operator","@pop"],[/(\s*\=\s*)/,"operator","@var_value="],"type_",[/#(\s.*)?\n?$/,"comment"]],_vardecl:[r(null,-1,-1),[/\[/,"array.[","@array_var_body"],[/\{/,"object.{","@object_body"],[/(@variable)(?=\n|,|$)/,"identifier.$F","@pop"],[/(@variable)/,"identifier.$F"],[/(\s*\=\s*)/,"operator.declval",{switchTo:"@var_value&value="}],"type_"],array_var_body:[[/\]/,"]","@pop"],[/\{/,"object.{","@object_body"],[/\[/,"array.[","@array_var_body"],"spread_",[/(@variable)/,"identifier.$F"],[/(\s*\=\s*)/,"operator.assign","@array_var_body_value="],[",","delimiter"]],array_var_body_value:[[/(?=,|\)|]|})/,"delimiter","@pop"],"expr_"],inline_var_body:[[/\[/,"array.[","@array_var_body"],[/\{/,"object.{","@object_body"],[/(@variable)/,"identifier.$F"],[/(\s*\=\s*)/,"operator","@pop"],"type_"],var_value:[[/(?=,|\)|]|})/,"delimiter","@pop"],r({switchTo:"@>block"},-1,-1),"block_"],common_:[[/^(\t+)(?=\n|$)/,"white.tabs"],"whitespace"],comma_:[[/\s*,\s*/,"delimiter.comma"]],spread_:[[/\.\.\./,"operator.spread"]],type_:[[/\\/,"@rematch","@_type&-_type/0"]],_type:[r(-1,-1,-1),[/\\/,"delimiter.type.prefix"],[/\[/,"delimiter.type","@/]"],[/\(/,"delimiter.type","@/)"],[/\{/,"delimiter.type","@/}"],[/\</,"delimiter.type","@/>"],[/\|/,"delimiter.type.union"],[/\,|\s|\=|\./,{cases:{"$/==0":{token:"@rematch",next:"@pop"},"@default":"type"}}],[/[\]\}\)\>]/,{cases:{"$#==$/":{token:"delimiter.type",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],[/[\w\-\$]+/,"type"]],css_:[[/global(?=\s+css@B)/,"keyword.$#"],[/css(?:\s+)?/,"keyword.css","@>css_selector&rule-_sel"]],sel_:[[/(\%)((?:@id)?)/,["style.selector.mixin.prefix","style.selector.mixin"]],[/(\@)(\.{0,2}[\w\-\<\>\!]*\+?)/,"style.selector.modifier"],[/(\@)(\.{0,2}[\w\-\<\>\!]*)/,"style.selector.modifier"],[/\.([\w\-]+)/,"style.selector.class-name"],[/\#([\w\-]+)/,"style.selector.id"],[/([\w\-]+)/,"style.selector.element"],[/(>+|~|\+)/,"style.selector.operator"],[/(\*+)/,"style.selector.element.any"],[/(\$)((?:@id)?)/,["style.selector.reference.prefix","style.selector.reference"]],[/\&/,"style.selector.context"],[/\(/,"delimiter.selector.parens.open","@css_selector_parens"],[/\[/,"delimiter.selector.attr.open","@css_selector_attr"],[/\s+/,"white"],[/,/,"style.selector.delimiter"],[/#(\s.*)?\n?$/,"comment"]],css_props:[r(null,-1,0),[/(?=@cssPropertyKey2)/,"","@css_property&-_styleprop-_stylepropkey"],[/#(\s.*)?\n?$/,"comment"],[/(?=[\%\*\w\&\$\>\.\[\@\!]|\#[\w\-])/,"","@>css_selector&rule-_sel"],[/\s+/,"white"]],css_selector:[r({switchTo:"@css_props"},-1,{token:"@rematch",switchTo:"@css_props&_props"}),[/(\}|\)|\])/,"@rematch","@pop"],[/(?=\s*@cssPropertyKey2)/,"",{switchTo:"@css_props&_props"}],[/\s*#\s/,"@rematch",{switchTo:"@css_props&_props"}],"sel_"],css_inline:[[/\]/,"style.close","@pop"],[/(?=@cssPropertyKey2)/,"","@css_property&-_styleprop-_stylepropkey"],[/(?=@cssPropertyPath\])/,"","@css_property&-_styleprop-_stylepropkey"]],css_selector_parens:[[/\)/,"delimiter.selector.parens.close","@pop"],"sel_"],css_selector_attr:[[/\]/,"delimiter.selector.parens.close","@pop"],"sel_"],css_property:[r(null,-1,-1),[/\]/,"@rematch","@pop"],[/(\d+)(@id)/,["style.property.unit.number","style.property.unit.name"]],[/((--|\$)@id)/,"style.property.var"],[/(-*@id)/,"style.property.name"],[/@cssModifier/,"style.property.modifier"],[/(\@+|\.+)(@id\-?)/,["style.property.modifier.start","style.property.modifier"]],[/\+(@id)/,"style.property.scope"],[/\s*([\:]\s*)(?=@br|$)/,"style.property.operator",{switchTo:"@>css_multiline_value&_stylevalue"}],[/\s*([\:]\s*)/,"style.property.operator",{switchTo:"@>css_value&_stylevalue"}]],css_value_:[[/(x?xs|sm\-?|md\-?|lg\-?|xx*l|\dxl|hg|x+h)\b/,"style.value.size"],[/\#[0-9a-fA-F]+/,"style.value.color.hex"],[/((--|\$)@id)/,"style.value.var"],[/(@optid)(\@+|\.+)(@optid)/,["style.property.name","style.property.modifier.prefix","style.property.modifier"]],"op_","string_","number_","comment_",[/\s+/,"style.value.white"],[/\(/,"delimiter.style.parens.open","@css_expressions"],[/\{/,"delimiter.style.curly.open","@css_interpolation&-_styleinterpolation"],[/(@id)/,"style.value"]],css_value:[r({switchTo:"@>css_multiline_value"},-1,-1),[/@cssPropertyKey2/,"@rematch","@pop"],[/;/,"style.delimiter","@pop"],[/(\}|\)|\])/,"@rematch","@pop"],"css_value_"],css_multiline_value:[r(null,-1,0),[/@cssPropertyKey2/,"invalid"],"css_value_"],css_expressions:[[/\)/,"delimiter.style.parens.close","@pop"],[/\(/,"delimiter.style.parens.open","@css_expressions"],"css_value"],css_interpolation:[[/\}/,"delimiter.style.curly.close","@pop"],"expr_"],expressions:[[/\,/,"delimiter.comma"]],whitespace:[[/[\r\n]+/,"br"],[/[ \t\r\n]+/,"white"]],space:[[/[ \t]+/,"white"]],tag_:[[/(\s*)(<)(?=\.)/,["white","tag.open","@_tag/flag"]],[/(\s*)(<)(?=\w|\{|\[|\%|\#|>)/,["white","tag.open","@_tag/name"]]],tag_content:[r(2,-1,0),[/\)|\}|\]/,"@rematch","@pop"],"common_","flow_","var_","for_","css_","expr_","do_"],tag_children:[],_tag:[[/\/>/,"tag.close","@pop"],[/>/,"tag.close",{switchTo:"@>tag_content=&-_tagcontent"}],[/>/,"tag.close","@pop"],[/(\-?\d+)/,"tag.$S3"],[/(\%)(@id)/,["tag.mixin.prefix","tag.mixin"]],[/\#@id/,"tag.id"],[/\./,{cases:{"$/==event":{token:"tag.event-modifier.start",switchTo:"@/event-modifier"},"$/==event-modifier":{token:"tag.event-modifier.start",switchTo:"@/event-modifier"},"$/==modifier":{token:"tag.modifier.start",switchTo:"@/modifier"},"$/==rule":{token:"tag.rule-modifier.start",switchTo:"@/rule-modifier"},"$/==rule-modifier":{token:"tag.rule-modifier.start",switchTo:"@/rule-modifier"},"@default":{token:"tag.flag.start",switchTo:"@/flag"}}}],[/(\$@id)/,{cases:{"$/==name":"tag.reference","@default":"tag.$/"}}],[/\{/,"tag.$/.interpolation.open","@_tag_interpolation"],[/\[/,"style.open","@css_inline"],[/(\s*\=\s*)/,"operator.equals.tagop.tag-$/","@_tag_value&-value"],[/\:/,{token:"tag.event.start",switchTo:"@/event"}],"tag_event_",[/(\-?@tagIdentifier)(\:@id)?/,{cases:{"$/==attr":{token:"@rematch",next:"@_tag_attr&-_tagattr"},"@default":{token:"tag.$/"}}}],[/\(/,{token:"tag.$/.parens.open",next:"@_tag_parens/0"}],[/\s+/,{token:"tag.white",switchTo:"@/attr"}],"comment_"],tag_event_:[[/(?=\@@optid)/,"","@_tag_event&-_listener"]],_tag_part:[[/\)|\}|\]|\>/,"@rematch","@pop"]],_tag_event:["_tag_part",[/(\@)(@optid)/,["tag.event.start","tag.event.name"]],[/(\.)(@optid)/,["tag.event-modifier.start","tag.event-modifier.name"]],[/\(/,{token:"tag.$/.parens.open",next:"@_tag_parens/0"}],[/(\s*\=\s*)/,"operator.equals.tagop.tag-$/","@_tag_value&handler"],[/\s+/,"@rematch","@pop"]],tag_attr_:[[/(?=@tagIdentifier(\:@id)?)/,"","@_tag_attr&-_attribute"]],_tag_attr:["_tag_part",[/(\-?@tagIdentifier)(\:@id)?/,"tag.attr"],[/\.(@optid)/,"tag.event-modifierzz"],[/\(/,{token:"tag.parens.open.$/",next:"@_tag_parens/0"}],[/(\s*\=\s*)/,"operator.equals.tagop.tag-$/","@_tag_value&-tagattrvalue"],[/\s+/,"@rematch","@pop"]],_tag_interpolation:[[/\}/,"tag.$/.interpolation.close","@pop"],"expr_",[/\)|\]/,"invalid"]],_tag_parens:[[/\)/,"tag.$/.parens.close","@pop"],"arglist_",[/\]|\}/,"invalid"]],_tag_value:[[/(?=(\/?\>|\s))/,"","@pop"],"attr_expr_"],regexp_:[[/\/(?!\ )(?=([^\\\/]|\\.)+\/)/,{token:"regexp.slash.open",bracket:"@open",next:"@_regexp"}],[/\/\/\//,{token:"regexp.slash.open",bracket:"@open",next:"@_hereregexp"}],[/(\/)(\/)/,["regexp.slash.open","regexp.slash.close"]]],_regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@_regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\:/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)(\w+)/,[{token:"regexp.slash.close"},{token:"regexp.flags",next:"@pop"}]],["/",{token:"regexp.slash.close",next:"@pop"}],[/./,"regexp.invalid"]],_regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"regexp.escape.control","@pop"]],_hereregexp:[[/[^\\\/#]/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*","regexp","@pop"],[/\//,"regexp"],"comment_"]};function m(e){let s=["$S1","$S2","$S3","$S4","$S5","$S6"];if(e.match(/\@(pop|push|popall)/)||(e[0]=="@"&&(e=e.slice(1)),e.indexOf(".")>=0))return e;e=_(e),e[0]==">"&&(s[1]="$S6 ",e=e.slice(1));for(let o=0,i=y(e.split(/(?=[\/\&\=\*])/)),a=i.length;o<a;o++){let t=i[o];t[0]=="&"?t[1]=="-"||t[1]=="_"?s[2]="$S3"+t.slice(1):s[2]="$S3-"+t.slice(1):t[0]=="+"?s[3]="$S4-"+t.slice(1):t[0]=="="?s[3]=t.slice(1):t[0]=="/"?s[4]=t.slice(1):t[0]=="*"?s[5]=t.slice(1):s[0]=t}return s.join(".")}function _(e){let s=e;return e=e.replace("$/","$S5"),e=e.replace("$F","$S4"),e=e.replace("$&","$S3"),e=e.replace("$I","$S2"),e=e.replace("$T","$S2"),e}function u(e,s){if(typeof e=="string"&&(e={token:e}),e&&e.token!=null)e.token=_(e.token),typeof s=="string"?e.next=s:s&&Object.assign(e,s),e.next&&(e.next=m(e.next)),e.switchTo&&(e.switchTo=m(e.switchTo));else if(e&&e.cases){let o={};for(let i=e.cases,a=0,t=Object.keys(i),l=t.length,n,c;a<l;a++){n=t[a],c=i[n];let p=_(n);o[p]=u(c)}e.cases=o}else if(e instanceof Array){let o=[],i=null;for(let a=0,t=y(e),l=t.length;a<l;a++){let n=t[a];n[0]=="@"&&a==e.length-1&&i&&(n={next:n}),typeof n=="object"?n.token!=null||n.cases?o.push(i=Object.assign({},n)):Object.assign(i,n):typeof n=="string"&&o.push(i={token:_(n)})}e=o}if(e instanceof Array)for(let o=0,i=y(e),a=i.length;o<a;o++){let t=i[o];t.token&&t.token.indexOf("$$")>=0&&(t.token=t.token.replace("$$","$"+(o+1))),t.next&&(t.next=m(t.next)),t.switchTo&&(t.switchTo=m(t.switchTo))}return e}for(let e=0,s=Object.keys(w),o=s.length,i,a;e<o;e++){i=s[e],a=w[i];let t=0;for(;t<a.length;){let l=a[t];if(l[0]instanceof Array){a.splice(t,1,...l);continue}else typeof l=="string"?a[t]={include:l}:l[1]instanceof Array?l[1]=u(l[1]):l instanceof Array&&l.splice(1,2,u(l[1],l[2]));t++}}var v={defaultToken:"invalid",ignoreCase:!1,tokenPostfix:"",brackets:[{open:"{",close:"}",token:"bracket.curly"},{open:"[",close:"]",token:"bracket.square"},{open:"(",close:")",token:"bracket.parenthesis"}],keywords:["def","and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","self","as","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","elif","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when","tag","prop","attr","export","import","extend","var","let","const","require","isa","await"],boolean:["true","false","yes","no","undefined","null"],operators:["=","!","~","?",":","!!","??","&","|","^","%","<<","!&",">>",">>>","+=","-=","*=","/=","&=","|=","?=","??=","^=","%=","~=","<<=",">>=",">>>=","..","...","||=","&&=","**=","**","|=?","~=?","^=?","=?","and","or"],assignments:["=","|=?","~=?","^=?","=?","^=","%=","~=","<<=",">>=",">>>=","||=","&&=","?=","??=","+=","-=","*=","/=","&=","|=","**="],logic:[">","<","==","<=",">=","!=","&&","||","===","!=="],ranges:["..","..."],spread:["..."],dot:["."],access:[".",".."],math:["+","-","*","/","++","--"],unspaced_ops:x("... . .. + * ++ --"),comment:/#(\s.*)?(\n|$)/,symbols:/[=><!~?&%|+\-*\^,]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,postaccess:/(:(?=\w))?/,ivar:/\@[a-zA-Z_]\w*/,B:/(?=\s|$)/,br:/[\r\n]+/,constant:/[A-Z][\w\$]*(?:\-+[\w\$]+)*/,id:/[A-Za-z_\$][\w\$]*(?:\-+[\w\$]+)*\??/,plainid:/[A-Za-z_\$][\w\$]*(?:\-+[\w\$]+)*\??/,fieldid:/[\@\#]*@plainid/,propid:/[\@\#]*@plainid/,defid:/[\@\#]*@plainid/,decid:/\@@plainid/,symid:/\#+@plainid/,symref:/\#\#@plainid/,optid:/(?:@id)?/,esmIdentifier:/[A-Za-z_\$\@][\w\$]*(?:\-+[\w\$]+)*\??/,propertyPath:/(?:[A-Za-z_\$][A-Za-z\d\-\_\$]*\.)?(?:[A-Za-z_\$][A-Za-z\d\-\_\$]*)/,tagNameIdentifier:/(?:[\w\-]+\:)?\w+(?:\-\w+)*/,variable:/[\w\$]+(?:-[\w\$]*)*\??/,varKeyword:/var|let|const/,tagIdentifier:/-*[a-zA-Z][\w\-]*/,implicitCall:/(?!\s(?:and|or|is|isa)\s)(?=\s[\w\'\"\/\[\{])/,cssModifier:/(?:\@+[\<\>\!]?[\w\-]+\+?|\.+@id\-?)/,cssPropertyPath:/[\@\.]*[\w\-\$]+(?:[\@\.]+[\w\-\$]+)*/,cssPropertyKey:/[\@\.]*[\w\-\$]+(?:[\@\.]+[\w\-\$]+)*(?:\s*\:)/,cssVariable:/(?:--|\$)[\w\-\$]+/,cssPropertyName:/[\w\-\$]+/,cssPropertyKey2:/(?:@cssPropertyName(?:@cssModifier)*|@cssModifier+)(?:\s*\:)/,cssUpModifier:/\.\.[\w\-\$]+/,cssIsModifier:/\.[\w\-\$]+/,regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:w},j={tokens:v,config:{wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}","delimiter.curly"],["[","]","delimiter.square"],["(",")","delimiter.parenthesis"],["<",">","delimiter.angle"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment","operators"]}],onEnterRules:[{beforeText:/^\s*(?:def|get \w|set \w|class|for|if|elif|else|while|try|with|finally|except|async).*?$/,action:{indentAction:1}},{beforeText:/\s*(?:do)\s*(\|.*\|\s*)?$/,action:{indentAction:1}}]}};export{j as default};
@@ -0,0 +1 @@
1
+ var t={config:{brackets:[["(",")"],["if","end"],["loop","end"],["block","end"]],autoClosingPairs:[{open:"(",close:")"},{open:"if",close:"end"},{open:"loop",close:"end"},{open:"block",close:"end"}],surroundingPairs:[{open:"(",close:")"},{open:"if",close:"end"},{open:"loop",close:"end"},{open:"block",close:"end"}]},tokens:{keywords:["module","import","export","memory","data","table","elem","start","func","tag","type","param","result","global","local","mut","struct","array","field"],types:["i8","i16","i32","i64","f32","f64","v128","i31ref","eqref","anyref","dataref","externref","funcref","exnref","extern","null","any","eq"],instructions:["pop","nop","drop","data.drop","elem.drop","local.get","local.set","local.tee","global.get","global.set","tuple.make","tuple.extract","select","v128.const","v128.and","v128.or","v128.xor","v128.not","v128.andnot","v128.bitselect","v128.load","v128.load8x8_s","v128.load8x8_u","v128.load16x4_s","v128.load16x4_u","v128.load32x2_s","v128.load32x2_u","v128.load8_lane","v128.load16_lane","v128.load32_lane","v128.load64_lane","v128.load8_splat","v128.load16_splat","v128.load32_splat","v128.load64_splat","v128.load32_zero","v128.load64_zero","v128.store","v128.store8_lane","v128.store16_lane","v128.store32_lane","v128.store64_lane","v128.any_true","i8x16.shuffle","i8x16.swizzle","i8x16.bitmask","i8x16.splat","i8x16.popcnt","i8x16.replace_lane","i8x16.extract_lane_s","i8x16.extract_lane_u","i8x16.all_true","i8x16.abs","i8x16.add","i8x16.add_sat_s","i8x16.add_sat_u","i8x16.sub","i8x16.sub_sat_s","i8x16.sub_sat_u","i8x16.mul","i8x16.neg","i8x16.shl","i8x16.shr_s","i8x16.shr_u","i8x16.eq","i8x16.ne","i8x16.lt_s","i8x16.lt_u","i8x16.le_s","i8x16.le_u","i8x16.gt_s","i8x16.gt_u","i8x16.ge_s","i8x16.ge_u","i8x16.min_s","i8x16.min_u","i8x16.max_s","i8x16.max_u","i8x16.avgr_u","i8x16.narrow_i16x8_s","i8x16.narrow_i16x8_u","i16x8.bitmask","i16x8.splat","i16x8.load_8x8_s","i16x8.load_8x8_u","i16x8.replace_lane","i16x8.extract_lane_s","i16x8.extract_lane_u","i16x8.extend_low_i8x16_s","i16x8.extend_high_i8x16_s","i16x8.extend_low_i8x16_u","i16x8.extend_high_i8x16_u","i16x8.all_true","i16x8.abs","i16x8.add","i16x8.add_sat_s","i16x8.add_sat_u","i16x8.extadd_pairwise_i8x16_s","i16x8.extadd_pairwise_i8x16_u","i16x8.sub","i16x8.sub_sat_s","i16x8.sub_sat_u","i16x8.q15mulr_sat_s","i16x8.mul","i16x8.extmul_low_i8x16_s","i16x8.extmul_high_i8x16_s","i16x8.extmul_low_i8x16_u","i16x8.extmul_high_i8x16_u","i16x8.neg","i16x8.shl","i16x8.shr_s","i16x8.shr_u","i16x8.eq","i16x8.ne","i16x8.lt_s","i16x8.lt_u","i16x8.le_s","i16x8.le_u","i16x8.gt_s","i16x8.gt_u","i16x8.ge_s","i16x8.ge_u","i16x8.min_s","i16x8.min_u","i16x8.max_s","i16x8.max_u","i16x8.avgr_u","i16x8.narrow_i32x4_s","i16x8.narrow_i32x4_u","i32x4.bitmask","i32x4.splat","i32x4.load_16x4_s","i32x4.load_16x4_u","i32x4.replace_lane","i32x4.extract_lane","i32x4.extend_low_i16x8_s","i32x4.extend_high_i16x8_s","i32x4.extend_low_i16x8_u","i32x4.extend_high_i16x8_u","i32x4.all_true","i32x4.abs","i32x4.add","i32x4.extadd_pairwise_i16x8_s","i32x4.extadd_pairwise_i16x8_u","i32x4.sub","i32x4.mul","i32x4.extmul_low_i16x8_s","i32x4.extmul_high_i16x8_s","i32x4.extmul_low_i16x8_u","i32x4.extmul_high_i16x8_u","i32x4.neg","i32x4.shl","i32x4.shr_s","i32x4.shr_u","i32x4.eq","i32x4.ne","i32x4.lt_s","i32x4.lt_u","i32x4.le_s","i32x4.le_u","i32x4.gt_s","i32x4.gt_u","i32x4.ge_s","i32x4.ge_u","i32x4.min_s","i32x4.min_u","i32x4.max_s","i32x4.max_u","i32x4.trunc_sat_f32x4_s","i32x4.trunc_sat_f32x4_u","i32x4.trunc_sat_f64x2_s_zero","i32x4.trunc_sat_f64x2_u_zero","i32x4.dot_i16x8_s","i64x2.bitmask","i64x2.splat","i64x2.load32x2_s","i64x2.load32x2_u","i64x2.replace_lane","i64x2.extract_lane","i64x2.extend_low_i32x4_s","i64x2.extend_high_i32x4_s","i64x2.extend_low_i32x4_u","i64x2.extend_high_i32x4_u","i64x2.all_true","i64x2.abs","i64x2.add","i64x2.sub","i64x2.mul","i64x2.neg","i64x2.shl","i64x2.shr_s","i64x2.shr_u","f32x4.splat","f32x4.replace_lane","f32x4.extract_lane","f32x4.add","f32x4.sub","f32x4.mul","i64x2.extmul_low_i32x4_s","i64x2.extmul_high_i32x4_s","i64x2.extmul_low_i32x4_u","i64x2.extmul_high_i32x4_u","i64x2.eq","i64x2.ne","i64x2.lt_s","i64x2.le_s","i64x2.gt_s","i64x2.ge_s","f32x4.neg","f32x4.eq","f32x4.ne","f32x4.lt","f32x4.le","f32x4.gt","f32x4.ge","f32x4.abs","f32x4.min","f32x4.pmin","f32x4.max","f32x4.pmax","f32x4.div","f32x4.sqrt","f32x4.ceil","f32x4.floor","f32x4.trunc","f32x4.nearest","f32x4.demote_f64x2_zero","f32x4.convert_i32x4_s","f32x4.convert_i32x4_u","f64x2.splat","f64x2.replace_lane","f64x2.extract_lane","f64x2.add","f64x2.sub","f64x2.mul","f64x2.neg","f64x2.eq","f64x2.ne","f64x2.lt","f64x2.le","f64x2.gt","f64x2.ge","f64x2.abs","f64x2.min","f64x2.max","f64x2.pmin","f64x2.pmax","f64x2.div","f64x2.sqrt","f64x2.ceil","f64x2.floor","f64x2.trunc","f64x2.nearest","f64x2.promote_low_f32x4","f64x2.convert_low_i32x4_s","f64x2.convert_low_i32x4_u","i32.atomic.load","i32.atomic.load8_u","i32.atomic.load16_u","i32.atomic.store","i32.atomic.store8","i32.atomic.store16","i32.atomic.rmw.add","i32.atomic.rmw.sub","i32.atomic.rmw.and","i32.atomic.rmw.or","i32.atomic.rmw.xor","i32.atomic.rmw.xchg","i32.atomic.rmw.cmpxchg","i32.atomic.rmw8.add_u","i32.atomic.rmw8.sub_u","i32.atomic.rmw8.and_u","i32.atomic.rmw8.or_u","i32.atomic.rmw8.xor_u","i32.atomic.rmw8.xchg_u","i32.atomic.rmw8.cmpxchg_u","i32.atomic.rmw16.add_u","i32.atomic.rmw16.sub_u","i32.atomic.rmw16.and_u","i32.atomic.rmw16.or_u","i32.atomic.rmw16.xor_u","i32.atomic.rmw16.xchg_u","i32.atomic.rmw16.cmpxchg_u","i64.atomic.load","i64.atomic.load8_u","i64.atomic.load16_u","i64.atomic.load32_u","i64.atomic.store","i64.atomic.store8","i64.atomic.store16","i64.atomic.store32","i64.atomic.rmw.add","i64.atomic.rmw.sub","i64.atomic.rmw.and","i64.atomic.rmw.or","i64.atomic.rmw.xor","i64.atomic.rmw.xchg","i64.atomic.rmw.cmpxchg","i64.atomic.rmw8.add_u","i64.atomic.rmw8.sub_u","i64.atomic.rmw8.and_u","i64.atomic.rmw8.or_u","i64.atomic.rmw8.xor_u","i64.atomic.rmw8.xchg_u","i64.atomic.rmw8.cmpxchg_u","i64.atomic.rmw16.add_u","i64.atomic.rmw16.sub_u","i64.atomic.rmw16.and_u","i64.atomic.rmw16.or_u","i64.atomic.rmw16.xor_u","i64.atomic.rmw16.xchg_u","i64.atomic.rmw16.cmpxchg_u","i64.atomic.rmw32.add_u","i64.atomic.rmw32.sub_u","i64.atomic.rmw32.and_u","i64.atomic.rmw32.or_u","i64.atomic.rmw32.xor_u","i64.atomic.rmw32.xchg_u","i64.atomic.rmw32.cmpxchg_u","atomic.fence","func.bind","ref","ref.eq","ref.null","ref.is_null","ref.is_func","ref.is_data","ref.is_i31","ref.as_func","ref.as_non_null","ref.as_data","ref.as_i31","ref.func","ref.cast","ref.cast_static","ref.test","ref.test_static","table.get","table.set","table.size","table.grow","table.fill","table.init","table.copy","throw","rethrow","i32.load","i32.load8_s","i32.load8_u","i32.load16_s","i32.load16_u","i32.store","i32.store8","i32.store16","i32.const","i32.eqz","i32.eq","i32.ne","i32.lt_s","i32.lt_u","i32.le_s","i32.le_u","i32.gt_s","i32.gt_u","i32.ge_s","i32.ge_u","i32.clz","i32.ctz","i32.popcnt","i32.add","i32.sub","i32.mul","i32.div_s","i32.div_u","i32.rem_s","i32.rem_u","i32.and","i32.or","i32.xor","i32.shl","i32.shr_s","i32.shr_u","i32.rotl","i32.rotr","i32.wrap_i64","i32.trunc_f32_s","i32.trunc_f32_u","i32.trunc_f64_s","i32.trunc_f64_u","i32.reinterpret_f32","i64.load","i64.load8_s","i64.load8_u","i64.load16_s","i64.load16_u","i64.load32_s","i64.load32_u","i64.store","i64.store8","i64.store16","i64.store32","i64.const","i64.eqz","i64.eq","i64.ne","i64.lt_s","i64.lt_u","i64.le_s","i64.le_u","i64.gt_s","i64.gt_u","i64.ge_s","i64.ge_u","i64.clz","i64.ctz","i64.popcnt","i64.add","i64.sub","i64.mul","i64.div_s","i64.div_u","i64.rem_s","i64.rem_u","i64.and","i64.or","i64.xor","i64.shl","i64.shr_s","i64.shr_u","i64.rotl","i64.rotr","i64.extend_i32_s","i64.extend_i32_u","i64.trunc_f32_s","i64.trunc_f32_u","i64.trunc_f64_s","i64.trunc_f64_u","i64.reinterpret_f64","f32.load","f32.store","f32.const","f32.eq","f32.ne","f32.lt","f32.le","f32.gt","f32.ge","f32.abs","f32.neg","f32.ceil","f32.floor","f32.trunc","f32.nearest","f32.sqrt","f32.add","f32.sub","f32.mul","f32.div","f32.min","f32.max","f32.copysign","f32.convert_i32_s","f32.convert_i32_u","f32.convert_i64_s","f32.convert_i64_u","f32.demote_f64","f32.reinterpret_i32","f64.load","f64.store","f64.const","f64.eq","f64.ne","f64.lt","f64.le","f64.gt","f64.ge","f64.abs","f64.neg","f64.ceil","f64.floor","f64.trunc","f64.nearest","f64.sqrt","f64.add","f64.sub","f64.mul","f64.div","f64.min","f64.max","f64.copysign","f64.convert_i32_s","f64.convert_i32_u","f64.convert_i64_s","f64.convert_i64_u","f64.promote_f32","f64.reinterpret_i64","i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s","i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u","memory.size","memory.grow","memory.copy","memory.fill","memory.init","memory.atomic.notify","memory.atomic.wait32","memory.atomic.wait64","i31.new","i31.get_u","i31.get_s","array.new","array.new_default","array.init","array.init_static","array.get","array.get_s","array.get_u","array.set","array.len","array.copy","struct.new","struct.new_default","struct.new_with_rtt","struct.new_default_with_rtt","struct.get","struct.get_s","struct.get_u","struct.set","rtt.canon","rtt.sub","rtt.fresh_sub"],controlInstructions:["block","loop","if","else","then","end","do","let","br","br_if","br_table","br_on_exn","br_on_null","br_on_non_null","br_on_cast","br_on_cast_static","br_on_cast_fail","br_on_cast_static_fail","br_on_func","br_on_non_func","br_on_data","br_on_non_data","br_on_i31","br_on_non_i31","call","call_indirect","call_ref","return","return_call","return_call_indirect","return_call_ref","try","catch","catch_all","delegate","unreachable"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[{include:"@whitespace"},[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/\$[^\s\)]*/,{token:"identifier"}],[/[a-z0-9_]+(?:\.[a-z0-9_]+)*/,{cases:{"@types":{token:"type.$0"},"@keywords":{token:"keyword.$0"},"@controlInstructions":{token:"controlInstruction.$0"},"@instructions":{token:"instruction.$0"},"@default":"identifier"}}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/(;; )(ERROR |FAILURE )([^\n]*)/,["comment","error",""]],[/(;; )(WARNING )([^\n]*)/,["comment","warning",""]],[/(;; )(INFO )([^\n]*)/,["comment","info",""]],[/(;; )(PEDANTIC )([^\n]*)/,["comment","pedantic",""]],[/(;; +)(~+|\^)$/,["comment","underline"]],[/(;; )([^\n]*)/,["comment",""]],[/;;[^\n]*/,"comment"]]}}};export{t as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-codes/browser-compilers",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Compilers that run in the browser, for use in livecodes.io",
5
5
  "author": "Hatem Hosny",
6
6
  "license": "MIT",
@@ -59,6 +59,16 @@ entryFiles.forEach((entry) => {
59
59
  });
60
60
  });
61
61
 
62
+ // Monaco languages
63
+ esbuild.build({
64
+ ...baseOptions,
65
+ entryPoints: ['astro.ts', 'clio.ts', 'imba.ts', 'wat.ts'].map(
66
+ (entry) => 'vendor_modules/modules/monaco-languages/' + entry,
67
+ ),
68
+ format: 'esm',
69
+ outdir: './dist/monaco-editor/languages',
70
+ });
71
+
62
72
  // sass
63
73
  patch('node_modules/sass/sass.dart.js', {
64
74
  'var self = Object.create(dartNodePreambleSelf);': 'var self = window;',
@@ -0,0 +1,222 @@
1
+ export default {
2
+ config: {
3
+ comments: {
4
+ blockComment: ['<!--', '-->'],
5
+ },
6
+ brackets: [
7
+ ['---', '---'],
8
+ ['<!--', '-->'],
9
+ ['<', '>'],
10
+ ['{', '}'],
11
+ ['(', ')'],
12
+ ],
13
+ autoClosingPairs: [
14
+ { open: '{', close: '}' },
15
+ { open: '[', close: ']' },
16
+ { open: '(', close: ')' },
17
+ { open: "'", close: "'" },
18
+ { open: '"', close: '"' },
19
+ { open: '<!--', close: '-->', notIn: ['comment', 'string'] },
20
+ { open: '/**', close: ' */', notIn: ['string'] },
21
+ { open: '<', close: '>', notIn: ['string'] },
22
+ ],
23
+ autoCloseBefore: ';:.,=}])>` \n\t',
24
+ surroundingPairs: [
25
+ { open: "'", close: "'" },
26
+ { open: '"', close: '"' },
27
+ { open: '{', close: '}' },
28
+ { open: '[', close: ']' },
29
+ { open: '(', close: ')' },
30
+ { open: '<', close: '>' },
31
+ ],
32
+ folding: {
33
+ markers: {
34
+ start: /^\\s*<!--\\s*#region\\b.*-->/,
35
+ end: /^\\s*<!--\\s*#endregion\\b.*-->/,
36
+ },
37
+ },
38
+ },
39
+
40
+ tokens: {
41
+ defaultToken: '',
42
+ tokenPostfix: '.astro',
43
+ ignoreCase: false,
44
+
45
+ // non matched elements
46
+ empty: [
47
+ 'area',
48
+ 'base',
49
+ 'basefont',
50
+ 'br',
51
+ 'col',
52
+ 'frame',
53
+ 'hr',
54
+ 'img',
55
+ 'input',
56
+ 'isindex',
57
+ 'link',
58
+ 'meta',
59
+ 'param',
60
+ ],
61
+
62
+ // The main tokenizer for our languages
63
+ tokenizer: {
64
+ root: [
65
+ [/<!DOCTYPE/, 'metatag', '@doctype'],
66
+ [/<!--/, 'comment', '@comment'],
67
+ [/^---/, 'comment', '@frontmatter'],
68
+ [/{/, '', '@expression'],
69
+ [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ['delimiter', 'tag', '', 'delimiter']],
70
+ [/(<)(script)/, ['delimiter', { token: 'tag', next: '@script' }]],
71
+ [/(<)(style)/, ['delimiter', { token: 'tag', next: '@style' }]],
72
+ [/(<)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]],
73
+ [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ['delimiter', { token: 'tag', next: '@otherTag' }]],
74
+ [/</, 'delimiter'],
75
+ [/[^<{]+/], // text
76
+ ],
77
+
78
+ doctype: [
79
+ [/[^>]+/, 'metatag.content'],
80
+ [/>/, 'metatag', '@pop'],
81
+ ],
82
+
83
+ frontmatter: [
84
+ [/^---/, { token: 'comment', next: '@pop', nextEmbedded: '@pop' }],
85
+ [/./, { token: '@rematch', next: '@frontmatterEmbedded', nextEmbedded: 'text/javascript' }],
86
+ ],
87
+
88
+ frontmatterEmbedded: [
89
+ [/[^-]+|-[^-][^-]+/, { token: '@rematch', next: '@pop' }],
90
+ [/^---/, { token: 'comment', next: '@root', nextEmbedded: '@pop' }],
91
+ ],
92
+
93
+ expression: [
94
+ [
95
+ /[^<{}]/,
96
+ { token: '@rematch', next: '@expressionEmbedded', nextEmbedded: 'text/javascript' },
97
+ ],
98
+ [/</, { token: '@rematch', next: '@pop' }],
99
+ [/}/, { token: '', next: '@pop' }],
100
+ ],
101
+
102
+ expressionEmbedded: [
103
+ [/{/, '@rematch', '@push'],
104
+ [/</, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
105
+ [/}/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
106
+ ],
107
+
108
+ comment: [
109
+ [/-->/, 'comment', '@pop'],
110
+ [/[^-]+/, 'comment.content'],
111
+ [/./, 'comment.content'],
112
+ ],
113
+
114
+ otherTag: [
115
+ [/\/?>/, 'delimiter', '@pop'],
116
+ [/"([^"]*)"/, 'attribute.value'],
117
+ [/'([^']*)'/, 'attribute.value'],
118
+ [/[\w\-]+/, 'attribute.name'],
119
+ [/=/, 'delimiter'],
120
+ [/[ \t\r\n]+/], // whitespace
121
+ ],
122
+
123
+ // -- BEGIN <script> tags handling
124
+
125
+ // After <script
126
+ script: [
127
+ [/type/, 'attribute.name', '@scriptAfterType'],
128
+ [/"([^"]*)"/, 'attribute.value'],
129
+ [/'([^']*)'/, 'attribute.value'],
130
+ [/[\w\-]+/, 'attribute.name'],
131
+ [/=/, 'delimiter'],
132
+ [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }],
133
+ [/[ \t\r\n]+/], // whitespace
134
+ [/(<\/)(script\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]],
135
+ ],
136
+
137
+ // After <script ... type
138
+ scriptAfterType: [
139
+ [/=/, 'delimiter', '@scriptAfterTypeEquals'],
140
+ [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }], // cover invalid e.g. <script type>
141
+ [/[ \t\r\n]+/], // whitespace
142
+ [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
143
+ ],
144
+
145
+ // After <script ... type =
146
+ scriptAfterTypeEquals: [
147
+ [/"([^"]*)"/, { token: 'attribute.value', switchTo: '@scriptWithCustomType.$1' }],
148
+ [/'([^']*)'/, { token: 'attribute.value', switchTo: '@scriptWithCustomType.$1' }],
149
+ [/>/, { token: 'delimiter', next: '@scriptEmbedded', nextEmbedded: 'text/javascript' }], // cover invalid e.g. <script type=>
150
+ [/[ \t\r\n]+/], // whitespace
151
+ [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
152
+ ],
153
+
154
+ // After <script ... type = $S2
155
+ scriptWithCustomType: [
156
+ [/>/, { token: 'delimiter', next: '@scriptEmbedded.$S2', nextEmbedded: '$S2' }],
157
+ [/"([^"]*)"/, 'attribute.value'],
158
+ [/'([^']*)'/, 'attribute.value'],
159
+ [/[\w\-]+/, 'attribute.name'],
160
+ [/=/, 'delimiter'],
161
+ [/[ \t\r\n]+/], // whitespace
162
+ [/<\/script\s*>/, { token: '@rematch', next: '@pop' }],
163
+ ],
164
+
165
+ scriptEmbedded: [
166
+ [/<\/script/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
167
+ [/[^<]+/, ''],
168
+ ],
169
+
170
+ // -- END <script> tags handling
171
+
172
+ // -- BEGIN <style> tags handling
173
+
174
+ // After <style
175
+ style: [
176
+ [/type/, 'attribute.name', '@styleAfterType'],
177
+ [/"([^"]*)"/, 'attribute.value'],
178
+ [/'([^']*)'/, 'attribute.value'],
179
+ [/[\w\-]+/, 'attribute.name'],
180
+ [/=/, 'delimiter'],
181
+ [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }],
182
+ [/[ \t\r\n]+/], // whitespace
183
+ [/(<\/)(style\s*)(>)/, ['delimiter', 'tag', { token: 'delimiter', next: '@pop' }]],
184
+ ],
185
+
186
+ // After <style ... type
187
+ styleAfterType: [
188
+ [/=/, 'delimiter', '@styleAfterTypeEquals'],
189
+ [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }], // cover invalid e.g. <style type>
190
+ [/[ \t\r\n]+/], // whitespace
191
+ [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
192
+ ],
193
+
194
+ // After <style ... type =
195
+ styleAfterTypeEquals: [
196
+ [/"([^"]*)"/, { token: 'attribute.value', switchTo: '@styleWithCustomType.$1' }],
197
+ [/'([^']*)'/, { token: 'attribute.value', switchTo: '@styleWithCustomType.$1' }],
198
+ [/>/, { token: 'delimiter', next: '@styleEmbedded', nextEmbedded: 'text/css' }], // cover invalid e.g. <style type=>
199
+ [/[ \t\r\n]+/], // whitespace
200
+ [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
201
+ ],
202
+
203
+ // After <style ... type = $S2
204
+ styleWithCustomType: [
205
+ [/>/, { token: 'delimiter', next: '@styleEmbedded.$S2', nextEmbedded: '$S2' }],
206
+ [/"([^"]*)"/, 'attribute.value'],
207
+ [/'([^']*)'/, 'attribute.value'],
208
+ [/[\w\-]+/, 'attribute.name'],
209
+ [/=/, 'delimiter'],
210
+ [/[ \t\r\n]+/], // whitespace
211
+ [/<\/style\s*>/, { token: '@rematch', next: '@pop' }],
212
+ ],
213
+
214
+ styleEmbedded: [
215
+ [/<\/style/, { token: '@rematch', next: '@pop', nextEmbedded: '@pop' }],
216
+ [/[^<]+/, ''],
217
+ ],
218
+
219
+ // -- END <style> tags handling
220
+ },
221
+ },
222
+ };
@@ -0,0 +1,120 @@
1
+ export default {
2
+ tokens: {
3
+ // Set defaultToken to invalid to see what you do not tokenize yet
4
+ // defaultToken: 'invalid',
5
+
6
+ keywords: [
7
+ 'import',
8
+ 'export',
9
+ 'from',
10
+ 'as',
11
+ 'fn',
12
+ 'await',
13
+ '[await]',
14
+ 'if',
15
+ 'else',
16
+ 'true',
17
+ 'false',
18
+ 'and',
19
+ 'or',
20
+ 'not',
21
+ 'type',
22
+ 'list',
23
+ ],
24
+
25
+ typeKeywords: ['Number', 'String', 'Function', 'Array'],
26
+
27
+ operators: ['>', '<', ':', '=', '<=', '>=', '!=', '+', '-', '*', '/', '//', '|', '**', '%'],
28
+
29
+ // we include these common regular expressions
30
+ symbols: /[=><!~?:&|+\-*\/\^%]+/,
31
+
32
+ // C# style strings
33
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
34
+
35
+ // The main tokenizer for our languages
36
+ tokenizer: {
37
+ root: [
38
+ [/fn/, { token: 'keyword', next: '@function' }],
39
+ [/->/, { token: 'operators', next: '@chain' }],
40
+
41
+ // identifiers and keywords
42
+ [
43
+ /[a-zA-Z_$][\w$]*/i,
44
+ {
45
+ cases: {
46
+ '@typeKeywords': 'keyword',
47
+ '@keywords': 'keyword',
48
+ '@default': 'identifier',
49
+ },
50
+ },
51
+ ],
52
+
53
+ // whitespace
54
+ { include: '@whitespace' },
55
+
56
+ // delimiters and operators
57
+ [/[{}()\[\]]/, '@brackets'],
58
+ [/[<>](?!@symbols)/, '@brackets'],
59
+ [
60
+ /@symbols/,
61
+ {
62
+ cases: {
63
+ '@operators': 'operator',
64
+ '@default': '',
65
+ },
66
+ },
67
+ ],
68
+
69
+ // @ annotations.
70
+ // As an example, we emit a debugging log message on these tokens.
71
+ // Note: message are supressed during the first load -- change some lines to see them.
72
+ [/@\s*[a-zA-Z_\$][\w\$]*/, { token: 'annotation' }],
73
+
74
+ // numbers
75
+ [/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'],
76
+ [/0[xX][0-9a-fA-F]+/, 'number.hex'],
77
+ [/\d+/, 'number'],
78
+
79
+ // delimiter: after number because of .\d floats
80
+ [/[;,.]/, 'delimiter'],
81
+
82
+ // strings
83
+ [/"([^"\\]|\\.)*$/, 'string.invalid'], // non-teminated string
84
+ [/"/, { token: 'string.quote', bracket: '@open', next: '@string' }],
85
+
86
+ // single-quote strings
87
+ [/"([^'\\]|\\.)*$/, 'string.invalid'], // non-teminated string
88
+ [/'/, { token: 'string.quote', bracket: '@open', next: '@stringSingle' }],
89
+ ],
90
+
91
+ // eslint-disable-next-line id-blacklist
92
+ string: [
93
+ [/[^\\"]+/, 'string'],
94
+ [/@escapes/, 'string.escape'],
95
+ [/\\./, 'string.escape.invalid'],
96
+ [/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }],
97
+ ],
98
+
99
+ stringSingle: [
100
+ [/[^\\']+/, 'string'],
101
+ [/@escapes/, 'string.escape'],
102
+ [/\\./, 'string.escape.invalid'],
103
+ [/'/, { token: 'string.quote', bracket: '@close', next: '@pop' }],
104
+ ],
105
+
106
+ whitespace: [
107
+ [/[ \t\r\n]+/, 'white'],
108
+ [/--.*$/, 'comment'],
109
+ ],
110
+
111
+ function: [[/[a-zA-Z0-9_]+/, { token: 'variable', next: '@pop' }]],
112
+
113
+ chain: [
114
+ [/\*/, 'operators'],
115
+ [/\[?await\]?/, 'keyword'],
116
+ [/[a-zA-Z]+/, { token: 'variable', next: '@pop' }],
117
+ ],
118
+ },
119
+ },
120
+ };