%%
%% D definition (c) 2007 Jari-Matti Mäkelä
%%
\lst@definelanguage{D}%
  {morekeywords={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,import,in,inout,%
      int,interface,invariant,ireal,is,lazy,long,macro,mixin,module,new,%
      null,out,override,package,pragma,private,protected,public,real,ref,%
      return,scope,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},%
   sensitive,%
   morecomment=[s]{/*}{*/},%
   morecomment=[n]{/+}{+/},%
   morecomment=[l]//,%
   morestring=[b]",%
   morestring=[b]`%
  }[keywords,comments,strings]%