OLD | NEW |
(Empty) | |
| 1 Prism.languages.d = Prism.languages.extend('clike', { |
| 2 'string': [ |
| 3 // r"", x"" |
| 4 /\b[rx]"(\\.|[^\\"])*"[cwd]?/, |
| 5 // q"[]", q"()", q"<>", q"{}" |
| 6 /\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/, |
| 7 // q"IDENT |
| 8 // ... |
| 9 // IDENT" |
| 10 /\bq"([_a-zA-Z][_a-zA-Z\d]*)(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\1"/
, |
| 11 // q"//", q"||", etc. |
| 12 /\bq"(.)[\s\S]*?\1"/, |
| 13 // Characters |
| 14 /'(?:\\'|\\?[^']+)'/, |
| 15 |
| 16 /(["`])(\\.|(?!\1)[^\\])*\1[cwd]?/ |
| 17 ], |
| 18 |
| 19 'number': [ |
| 20 // The lookbehind and the negative look-ahead try to prevent bad
highlighting of the .. operator |
| 21 // Hexadecimal numbers must be handled separately to avoid probl
ems with exponent "e" |
| 22 /\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ul
fi]*/i, |
| 23 { |
| 24 pattern: /((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.
)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]*/i, |
| 25 lookbehind: true |
| 26 } |
| 27 ], |
| 28 |
| 29 // In order: $, keywords and special tokens, globally defined symbols |
| 30 'keyword': /\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break
|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|
debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false
|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat
|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|modu
le|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|re
al|ref|return|scope|shared|short|static|struct|super|switch|synchronized|templat
e|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittes
t|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTIO
N|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vecto
r|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/, |
| 31 'operator': /\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>
?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/ |
| 32 }); |
| 33 |
| 34 |
| 35 Prism.languages.d.comment = [ |
| 36 // Shebang |
| 37 /^\s*#!.+/, |
| 38 // /+ +/ |
| 39 { |
| 40 // Allow one level of nesting |
| 41 pattern: /(^|[^\\])\/\+(?:\/\+[\w\W]*?\+\/|[\w\W])*?\+\//, |
| 42 lookbehind: true |
| 43 } |
| 44 ].concat(Prism.languages.d.comment); |
| 45 |
| 46 Prism.languages.insertBefore('d', 'comment', { |
| 47 'token-string': { |
| 48 // Allow one level of nesting |
| 49 pattern: /\bq\{(?:|\{[^}]*\}|[^}])*\}/, |
| 50 alias: 'string' |
| 51 } |
| 52 }); |
| 53 |
| 54 Prism.languages.insertBefore('d', 'keyword', { |
| 55 'property': /\B@\w*/ |
| 56 }); |
| 57 |
| 58 Prism.languages.insertBefore('d', 'function', { |
| 59 'register': { |
| 60 // Iasm registers |
| 61 pattern: /\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|
CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[
89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/, |
| 62 alias: 'variable' |
| 63 } |
| 64 }); |
OLD | NEW |