OLD | NEW |
(Empty) | |
| 1 (function (Prism) { |
| 2 Prism.languages.pure = { |
| 3 'inline-lang': { |
| 4 pattern: /%<[\s\S]+?%>/, |
| 5 inside: { |
| 6 'lang': { |
| 7 pattern: /(^%< *)-\*-.+?-\*-/, |
| 8 lookbehind: true, |
| 9 alias: 'comment' |
| 10 }, |
| 11 'delimiter': { |
| 12 pattern: /^%<.*|%>$/, |
| 13 alias: 'punctuation' |
| 14 } |
| 15 } |
| 16 }, |
| 17 'comment': [ |
| 18 { |
| 19 pattern: /(^|[^\\])\/\*[\w\W]*?\*\//, |
| 20 lookbehind: true |
| 21 }, |
| 22 { |
| 23 pattern: /(^|[^\\:])\/\/.*/, |
| 24 lookbehind: true |
| 25 }, |
| 26 /#!.+/ |
| 27 ], |
| 28 'string': /"(?:\\.|[^"\\\r\n])*"/, |
| 29 'number': { |
| 30 // The look-behind prevents wrong highlighting of the ..
operator |
| 31 pattern: /((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:
\b(?:0b)?\d+(?:\.\d)?|\B\.\d)\d*(?:e[+-]?\d+)?L?)/i, |
| 32 lookbehind: true |
| 33 }, |
| 34 'keyword': /\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|
dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|na
mespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|p
wd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with
)\b/, |
| 35 'function': /\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)
(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p
)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|c
eil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|c
olcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|point
er)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vect
or))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|de
lete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowit
h3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_p
ointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|
double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag
|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|i
nexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|po
inter)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lc
d|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|n
args|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|
pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|
rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reve
rse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|sc
an[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strc
at|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq
2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|tr
unc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|
vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/, |
| 36 'special': { |
| 37 pattern: /\b__[a-z]+__\b/i, |
| 38 alias: 'builtin' |
| 39 }, |
| 40 // Any combination of operator chars can be an operator |
| 41 'operator': /(?=\b_|[^_])[!"#$%&'*+,\-.\/:<=>?@\\^_`|~\u00a1-\u0
0bf\u00d7-\u00f7\u20d0-\u2bff]+|\b(?:and|div|mod|not|or)\b/, |
| 42 // FIXME: How can we prevent | and , to be highlighted as operat
or when they are used alone? |
| 43 'punctuation': /[(){}\[\];,|]/ |
| 44 }; |
| 45 |
| 46 var inlineLanguages = [ |
| 47 'c', |
| 48 { lang: 'c++', alias: 'cpp' }, |
| 49 'fortran', |
| 50 'ats', |
| 51 'dsp' |
| 52 ]; |
| 53 var inlineLanguageRe = '%< *-\\*- *{lang}\\d* *-\\*-[\\s\\S]+?%>'; |
| 54 |
| 55 inlineLanguages.forEach(function (lang) { |
| 56 var alias = lang; |
| 57 if (typeof lang !== 'string') { |
| 58 alias = lang.alias; |
| 59 lang = lang.lang; |
| 60 } |
| 61 if (Prism.languages[alias]) { |
| 62 var o = {}; |
| 63 o['inline-lang-' + alias] = { |
| 64 pattern: RegExp(inlineLanguageRe.replace('{lang}
', lang.replace(/([.+*?\/\\(){}\[\]])/g,'\\$1')), 'i'), |
| 65 inside: Prism.util.clone(Prism.languages.pure['i
nline-lang'].inside) |
| 66 }; |
| 67 o['inline-lang-' + alias].inside.rest = Prism.util.clone
(Prism.languages[alias]); |
| 68 Prism.languages.insertBefore('pure', 'inline-lang', o); |
| 69 } |
| 70 }); |
| 71 |
| 72 // C is the default inline language |
| 73 if (Prism.languages.c) { |
| 74 Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clo
ne(Prism.languages.c); |
| 75 } |
| 76 |
| 77 }(Prism)); |
OLD | NEW |