const i=e=>{const n=/[a-zA-Z][a-zA-Z_<>0-9]*/,r=["abstract","allocated","as","assert","assume","break","by","calc","case","class","codatatype","colemma","const","constructor","copredicate","datatype","decreases","else","ensures","exists","export","extends","forall","fresh","function","for","ghost","if","import","include","inductive","invariant","is","iterator","label","lemma","match","method","modifies","modify","module","nameonly","new","newtype","old","opened","predicate","print","provides","reads","real","refines","requires","return","returns","reveal","reveals","static","string","then","this","trait","twostate","type","unchanged","var","while","witness","yield","yields"],s=["bool","char","imap","iset","int","map","multiset","nat","object","object?","ORDINAL","seq","set","array","bc"],t={keyword:r,type:s,literal:["false","null","true"]},a={begin:[new RegExp("(?<!:):"),/[\s\n]*/,n],scope:{1:"operator",3:"type"},relevance:0},o={begin:`${new RegExp("(?<!\\w)").source}(${["&&","\\|\\|","<==>","==>","<==","==","!=","!",">","<",">=","<=","\\+","-","\\*","/","%",">>","<<","&","\\|","\\^","!!","in","!in",":=",":\\|","::","="].join("|")})${/(?!\w)/.source}`,scope:"operator",relevance:0};return{case_insensitive:!1,keywords:t,contains:[e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.NUMBER_MODE,e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",begin:"@\\w+",relevance:0}]}),a,o,{begin:`\\b(${s.join("|")})\\b${n.source}`,scope:"type"},{begin:[/\b(class|module|trait)\b/,/\s*/,e.IDENT_RE],scope:{1:"keyword",3:"title.class"},relevance:0},{begin:[`(?:${e.IDENT_RE}\\s+)`,e.IDENT_RE,/\s*(?=\(|<)/],scope:{2:"title.function"},keywords:t,contains:[{begin:/</,end:/>/,scope:"type",relevance:0},{scope:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.QUOTE_STRING_MODE,e.C_BLOCK_COMMENT_MODE,a,o,e.NUMBER_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}};export{i as default};
