Loading
function(e){function t(e){return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){return e?"string"==typeof e?e:e.source:null}function i(e){return r("(?=",e,")")}function r(...e){return e.map(e=>n(e)).join("")}function s(...e){let t;return"("+(("object"==typeof(t=e[e.length-1])&&t.constructor===Object?(e.splice(e.length-1,1),t):{}).capture?"":"?:")+e.map(e=>n(e)).join("|")+")"}e.exports=function(e){let n={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},a=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],o={keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},l={variants:[e.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),e.C_LINE_COMMENT_MODE]},u={scope:"variable",begin:/``/,end:/``/},c=/\B('|\^)/,d={scope:"symbol",variants:[{match:r(c,/``.*?``/)},{match:r(c,e.UNDERSCORE_IDENT_RE)}],relevance:0},_=function({includeEqual:e}){let n=r("[",...Array.from(e?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?").map(t),"]"),a=s(n,/\./),o=r(a,i(a)),l=s(r(o,a,"*"),r(n,"+"));return{scope:"operator",match:s(l,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},h=_({includeEqual:!0}),f=_({includeEqual:!1}),p=function(t,n){return{begin:r(t,i(r(/\s*/,s(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:n,end:i(s(/\n/,/=/)),relevance:0,keywords:e.inherit(o,{type:a}),contains:[l,d,e.inherit(u,{scope:null}),f]}},E=p(/:/,"operator"),m=p(/\bof\b/,"keyword"),g={begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword",4:"title.class"},end:i(/\(|=|$/),keywords:o,contains:[l,e.inherit(u,{scope:null}),d,{scope:"operator",match:/<|>/},E]},A={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},I={begin:[/^\s*/,r(/#/,s("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/],beginScope:{2:"meta"},end:i(/\s|$/)},T={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},S={scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},y={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},e.BACKSLASH_ESCAPE]},C={scope:"string",begin:/"""/,end:/"""/,relevance:2},N={scope:"subst",begin:/\{/,end:/\}/,keywords:o},v={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},e.BACKSLASH_ESCAPE,N]},R={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,N]},O={scope:"string",match:r(/'/,s(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return N.contains=[R,v,y,S,O,n,l,u,E,A,I,T,d,h],{name:"F#",aliases:["fs","f#"],keywords:o,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[n,{variants:[{scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},N],relevance:2},R,v,C,y,S,O]},l,u,g,{scope:"meta",begin:/\[</,end:/>\]/,relevance:2,contains:[u,C,y,S,O,T]},m,E,A,I,T,d,h]}}}