/usr/share/highlight/langDefs/d.lang is in highlight-common 3.41-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | Description="D"
Digits=[[ (?:0x|0X)[0-9a-fA-F]+|\d*[\.\_]?\d+(?:[eE][\-\+]\d+)?[lLuUbfdm]* ]]
Keywords={
{ Id=1,
List={
"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","in","inout",
"int","interface","invariant","ireal","is","lazy","long","macro","mixin",
"module","new","nothrow","null","out","override","package","pragma","private",
"protected","public","pure","real","ref","return","scope","shared","short",
"static","struct","super","switch","synchronized","template","this","throw",
"true","try","typedef","typeid","typeof","ubyte","ucent","uint","ulong","union",
"unittest","ushort","version","void","volatile","wchar","while","with"
},
},
{ Id=2,
List={"aaa", "aad", "aam", "aas", "adc", "add", "addpd", "addps",
"addsd", "addss", "and", "andnpd", "andnps", "andpd", "andps", "arpl",
"bound", "bsf", "bsr", "bswap", "bt", "btc", "btr", "bts", "call",
"cbw", "cdq", "clc", "cld", "clflush", "cli", "clts", "cmc", "cmova",
"cmovae", "cmovb", "cmovbe", "cmovc", "cmove", "cmovg", "cmovge", "cmovl",
"cmovle", "cmovna", "cmovnae", "cmovnb", "cmovnbe", "cmovnc", "cmovne",
"cmovng", "cmovnge", "cmovnl", "cmovnle", "cmovno", "cmovnp", "cmovns",
"cmovnz", "cmovo", "cmovp", "cmovpe", "cmovpo", "cmovs", "cmovz", "cmp",
"cmppd", "cmpps", "cmps", "cmpsb", "cmpsd", "cmpss", "cmpsw",
"cmpxch8b", "cmpxchg", "comisd", "comiss", "cpuid", "cvtdq2pd", "cvtdq2ps",
"cvtpd2dq", "cvtpd2pi", "cvtpd2ps", "cvtpi2pd", "cvtpi2ps", "cvtps2dq",
"cvtps2pd", "cvtps2pi", "cvtsd2si", "cvtsd2ss", "cvtsi2sd", "cvtsi2ss",
"cvtss2sd", "cvtss2si", "cvttpd2dq", "cvttpd2pi", "cvttps2dq", "cvttps2pi",
"cvttsd2si", "cvttss2si", "cwd", "cwde", "da", "daa", "das", "db", "dd", "de", "dec", "df",
"di", "div", "divpd", "divps", "divsd", "divss", "dl", "dq", "ds", "dt",
"dw", "emms", "enter", "f2xm1", "fabs", "fadd", "faddp", "fbld",
"fbstp", "fchs", "fclex", "fcmovb", "fcmovbe", "fcmove", "fcmovnb",
"fcmovnbe", "fcmovne", "fcmovnu", "fcmovu", "fcom", "fcomi", "fcomip",
"fcomp", "fcompp", "fcos", "fdecstp", "fdisi", "fdiv", "fdivp", "fdivr",
"fdivrp", "feni", "ffree", "fiadd", "ficom", "ficomp", "fidiv", "fidivr",
"fild", "fimul", "fincstp", "finit", "fist", "fistp", "fisub", "fisubr",
"fld", "fld1", "fldcw", "fldenv", "fldl2e", "fldl2t", "fldlg2",
"fldln2", "fldpi", "fldz", "fmul", "fmulp", "fnclex", "fndisi", "fneni",
"fninit", "fnop", "fnsave", "fnstcw", "fnstenv", "fnstsw", "fpatan",
"fprem", "fprem1", "fptan", "frndint", "frstor", "fsave", "fscale", "fsetpm",
"fsin", "fsincos", "fsqrt", "fst", "fstcw", "fstenv", "fstp", "fstsw",
"fsub", "fsubp", "fsubr", "fsubrp", "ftst", "fucom", "fucomi", "fucomip", "fucomp", "fucompp",
"fwait", "fxam", "fxch", "fxrstor", "fxsave", "fxtract", "fyl2x", "fyl2xp1",
"hlt", "idiv", "imul", "in", "inc", "ins", "insb", "insd", "insw",
"int", "into", "invd", "invlpg", "iret", "iretd", "ja", "jae", "jb",
"jbe", "jc", "jcxz", "je", "jecxz", "jg", "jge", "jl", "jle", "jmp",
"jna", "jnae", "jnb", "jnbe", "jnc", "jne", "jng", "jnge", "jnl", "jnle",
"jno", "jnp", "jns", "jnz", "jo", "jp", "jpe", "jpo", "js", "jz",
"lahf", "lar", "ldmxcsr", "lds", "lea", "leave", "les", "lfence", "lfs",
"lgdt", "lgs", "lidt", "lldt", "lmsw", "lock", "lods", "lodsb", "lodsd",
"lodsw", "loop", "loope", "loopne", "loopnz", "loopz", "lsl", "lss", "ltr",
"maskmovdqu", "maskmovq", "maxpd", "maxps", "maxsd", "maxss", "mfence",
"minpd", "minps", "minsd", "minss", "mov", "movapd", "movaps", "movd",
"movdq2q", "movdqa", "movdqu", "movhlps", "movhpd", "movhps", "movlhps",
"movlpd", "movlps", "movmskpd", "movmskps", "movntdq", "movnti", "movntpd", "movntps",
"movntq", "movq", "movq2dq", "movs", "movsb", "movsd", "movss", "movsw",
"movsx", "movupd", "movups", "movzx", "mul", "mulpd", "mulps", "mulsd",
"mulss", "neg", "nop", "not", "or", "orpd", "orps", "out", "outs",
"outsb", "outsd", "outsw", "packssdw", "packsswb", "packuswb", "paddb",
"paddd", "paddq", "paddsb", "paddsw", "paddusb", "paddusw", "paddw", "pand",
"pandn", "pavgb", "pavgw", "pcmpeqb", "pcmpeqd", "pcmpeqw", "pcmpgtb",
"pcmpgtd", "pcmpgtw", "pextrw", "pinsrw", "pmaddwd", "pmaxsw", "pmaxub",
"pminsw", "pminub", "pmovmskb", "pmulhuw", "pmulhw", "pmullw",
"pmuludq", "pop", "popa", "popad", "popf", "popfd", "por", "prefetchnta",
"prefetcht0", "prefetcht1", "prefetcht2", "psadbw", "pshufd", "pshufhw",
"pshuflw", "pshufw", "pslld", "pslldq", "psllq", "psllw", "psrad",
"psraw", "psrld", "psrldq", "psrlq", "psrlw", "psubb", "psubd", "psubq",
"psubsb", "psubsw", "psubusb", "psubusw", "psubw", "punpckhbw", "punpckhdq",
"punpckhqdq", "punpckhwd", "punpcklbw", "punpckldq", "punpcklqdq",
"punpcklwd", "push", "pusha", "pushad", "pushf", "pushfd", "pxor", "rcl",
"rcpps", "rcpss", "rcr", "rdmsr", "rdpmc", "rdtsc", "rep", "repe",
"repne", "repnz", "repz", "ret", "retf", "rol", "ror", "rsm", "rsqrtps",
"rsqrtss", "sahf", "sal", "sar", "sbb", "scas", "scasb", "scasd", "scasw",
"seta", "setae", "setb", "setbe", "setc", "sete", "setg", "setge",
"setl", "setle", "setna", "setnae", "setnb", "setnbe", "setnc", "setne",
"setng", "setnge", "setnl", "setnle", "setno", "setnp", "setns", "setnz",
"seto", "setp", "setpe", "setpo", "sets", "setz", "sfence", "sgdt",
"shl", "shld", "shr", "shrd", "shufpd", "shufps", "sidt", "sldt",
"smsw", "sqrtpd", "sqrtps", "sqrtsd", "sqrtss", "stc", "sti", "stmxcsr",
"stos", "stosb", "stosd", "stosw", "str", "sub", "subpd", "subps",
"subsd", "subss", "sysenter", "sysexit", "test", "ucomisd", "ucomiss", "ud2", "unpckhpd", "unpckhps",
"unpcklpd", "unpcklps", "verr", "verw", "wait", "wbinvd", "wrmsr", "xadd",
"xchg", "xlat", "xlatb", "xor", "xorpd", "xorps", "addsubpd", "addsubps",
"fisttp", "haddpd", "haddps", "hsubpd", "hsubps", "lddqu", "monitor", "movddup",
"movshdup", "movsldup", "mwait", "pavgusb", "pf2id", "pfacc", "pfadd",
"pfcmpeq", "pfcmpge", "pfcmpgt", "pfmax", "pfmin", "pfmul", "pfnacc",
"pfpnacc", "pfrcp", "pfrcpit1", "pfrcpit2", "pfrsqit1", "pfrsqrt", "pfsub",
"pfsubr", "pi2fd", "pmulhrw", "pswapd"},
},
{ Id=3,
Regex=[[\@\w+]],
},
{ Id=4,
Regex=[[(\w+)\s*\(]],
},
}
Strings={
Delimiter=[["|'|`]],
RawPrefix="r",
Interpolation=[[ %\d?\$?s ]],
DelimiterPairs= {
{ Open=[[ q"[\[\(\<\{] ]], Close=[[ "[\]\)\>\}] ]], Raw=true }
}
}
IgnoreCase=false
Comments={
{ Block=false,
Delimiter= { [[//]] },
},
{ Block=true,
Nested=false,
Delimiter= { [[\/\*]],[[\*\/]],}
},
{ Block=true,
Nested=false,
Delimiter= { [[\/\+]],[[\+\/]],}
}
}
Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|\=|\/|\*|\%|\+|\-|\~|\$]]
|