<?xml version="1.0"?>
<!DOCTYPE hrc PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN"
  "http://colorer.sf.net/2003/hrc.dtd">
<hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd">
<!--
  Colorer sheme file for IDL (Inderface Description Language)
  by Dennis Trachuk (dennis.trachuk@nm.ru)
-->
   <type name="idl" access="public">

      <import type="def"/>

      <region name="idlWord" parent="Keyword"/>
      <region name="idlUuid" parent="KeywordStrong"/>
      <region name="idlMods" parent="Parameter"/>
      <region name="idlPrefId" parent="Directive"/>


      <scheme name="inIdlPaired">
         <keywords region="idlMods">
            <word name="in"/>
            <word name="out"/>
            <word name="retval"/>
            <word name="default"/>
            <word name="source"/>
         </keywords>
         
         <inherit scheme="cpp:Expression">
            <virtual scheme="cpp:Expression" subst-scheme="inIdlPaired"/>
         </inherit>

         <regexp match="/ (uuid) \s*? (\() \s*? ([\-0-9a-fA-F]{36}) \s*? (\)) /x" region1="idlWord" region2="Symbol" region3="idlUuid" region4="Symbol"/>
         <regexp match="/ (lcid) \s*? (\() \s*? ([\-0-9a-fA-F]{36}) \s*? (\)) /x" region1="idlWord" region2="Symbol" region3="idlUuid" region4="Symbol"/>
<!-- idl keywords -->
         <keywords region="idlWord">
            <word name="aggregatable"/>
            <word name="appobject"/>
            <word name="bindable"/>
            <word name="call_as"/>
            <word name="control"/>
            <word name="defaultbind"/>
            <word name="defaultcollelem"/>
            <word name="displaybind"/>
            <word name="dllname"/>
            <word name="dual"/>
            <word name="helpcontext"/>
            <word name="helpfile"/>
            <word name="helpstring"/>
            <word name="helpstringcontext"/>
            <word name="helpstringdll"/>
            <word name="hidden"/>
            <word name="id"/>
            <word name="immediatebind"/>
            <word name="module"/>
            <word name="licensed"/>
            <word name="local"/>
            <word name="nonbrowsable"/>
            <word name="noncreatable"/>
            <word name="nonextensible"/>
            <word name="object"/>
            <word name="odl"/>
            <word name="oleautomation"/>
            <word name="optional"/>
            <word name="pointer_default"/>
            <word name="propget"/>
            <word name="propput"/>
            <word name="replaceable"/>
            <word name="requestedit"/>
            <word name="restricted"/>
            <word name="source"/>
            <word name="uidefault"/>
            <word name="unique"/>
            <word name="v1_enum"/>
            <word name="version"/>
         </keywords>
         <keywords region="idlPrefId">
            <word name="DISPID_UNKNOWN"/>
            <word name="DISPID_VALUE"/>
            <word name="DISPID_PROPERTYPUT"/>
            <word name="DISPID_NEWENUM"/>
            <word name="DISPID_EVALUATE"/>
            <word name="DISPID_CONSTRUCTOR"/>
            <word name="DISPID_DESTRUCTOR"/>
            <word name="DISPID_COLLECT"/>
         </keywords>
      </scheme>

      <scheme name="idl">
         <block start="/(\[)/" end="/(\])/" scheme="inIdlPaired" region00="Symbol" region01="PairStart" region10="Symbol" region11="PairEnd"/>
         <inherit scheme="cpp:cpp">
            <virtual scheme="cpp:cpp" subst-scheme="idl"/>
         </inherit>
<!-- idl keywords -->
         <keywords region="idlWord">
             <word name="coclass"/>
             <word name="cpp_quote"/>
             <word name="dispinterface"/>
             <word name="importlib"/>
             <word name="interface"/>
             <word name="library"/>
             <word name="methods"/>
             <word name="properties"/>
         </keywords>
      </scheme>

   </type>
</hrc>
