highlight-languages
Version:
highlight.js language independent builds
2 lines (1 loc) • 3.42 kB
JavaScript
!function(){"use strict";var e=function(e){function n(e,n){var i=[{begin:e,end:n}];return i[0].contains=i,i}var i="(_[uif](8|16|32|64))?",a="[a-zA-Z_]\\w*[!?=]?",s="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",r="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",t={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},c={className:"subst",begin:"#{",end:"}",keywords:t},b={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:t},g={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:n("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:n("\\[","\\]")},{begin:"%w?{",end:"}",contains:n("{","}")},{begin:"%w?<",end:">",contains:n("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},o={begin:"("+s+")\\s*",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:n("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:n("\\[","\\]")},{begin:"%r{",end:"}",contains:n("{","}")},{begin:"%r<",end:">",contains:n("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},d={className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:"%r\\(",end:"\\)",contains:n("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:n("\\[","\\]")},{begin:"%r{",end:"}",contains:n("{","}")},{begin:"%r<",end:">",contains:n("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},l={className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"})]},_=[b,g,o,d,l,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:r,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:r,endsParent:!0})],relevance:5},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[g,{begin:r}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+i},{begin:"\\b0o([0-7_]*[0-7])"+i},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+i},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+i}],relevance:0}];return c.contains=_,b.contains=_.slice(1),{aliases:["cr"],lexemes:a,keywords:t,contains:_}};hljs.registerLanguage("crystal",e)}();