<?xml version="1.0" encoding="windows-1251"?>
<!--
    Language: M4 macro processor
    Maintainer: Artem Zankovich (z_artem@yahoo.com)
    Credits: Claudio Fleiner (vim's syntax)

$Log: m4.hrc,v $
Revision 1.1  2003/06/11 06:44:58  Administrator
by Artem Zankovich
by Artem Zankovich

Revision 2.0  2003/06/10 13:52:54  Artem
Colorer.take5

Revision 1.0  2002/10/08 16:07:16  Artem
Initial revision

-->
<!DOCTYPE hrc
  PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN" "../hrc.dtd">
<hrc xmlns="http://colorer.sf.net/2003/hrc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="take5">
   <type name="m4" access="public">
      <import type="def"/>

      <region name="m4Var" parent="VarStrong"/>
      <region name="m4String" parent="String"/>
      <region name="m4Word" parent="Keyword"/>
      <region name="m4Const" parent="Constant"/>
      <region name="m4Symb" parent="Symbol"/>
      <region name="m4Comment" parent="Comment"/>
      <region name="m4Word2" parent="Keyword"/>


      <scheme name="m4_base">
         <regexp match="/(dnl\B.*$)/" region="m4Comment"/>
         <regexp match="/\$\d+/" region="m4Var"/>
         <regexp match="/\$[@*#]/" region="m4Var"/>
         <block start="/(\[)/" end="/(\])/" scheme="m4_base" region01="PairStart" region11="PairEnd"/>
         <block start="/(\`)/" end="/(\')/" scheme="m4_base" region00="m4Symb" region01="PairStart" region10="m4Symb" region11="PairEnd"/>
         <block start="/(\()/" end="/(\))/" scheme="m4_base" region00="m4Symb" region01="PairStart" region10="m4Symb" region11="PairEnd"/>
         <regexp match="/\b(?{m4Word}(m4_)?(define|defn|pushdef))\M\(/"/>
         <regexp match="/\b(?{m4Word}(m4_)?(include|sinclude))\M\(/"/>
         <regexp match="/\b(?{m4Word}(m4_)?(syscmd|esyscmd|ifdef|ifelse|indir|builtin|shift|errprint|m4exit|changecom|changequote|changeword|m4wrap|debugfile|divert|undivert))\M\(/"/>
         <regexp match="/\b(?{m4Word}(m4_)?(len|index|regexp|substr|translit|patsubst|format|incr|decr|eval|maketemp))\M\(/"/>
         <regexp match="/\b(?{m4Word}(m4_)?(undefine|popdef))\M\(/"/>
         <regexp match="/(?{m4Const}(m4_)?(__file__|__line__))/"/>
         <regexp match="/\b(?{m4Word2}[_A-Z][_A-Z0-9]*)\M\(/"/>
         <keywords ignorecase="yes" region="m4Word">
            <word name="divert"/>
            <word name="undivert"/>
         </keywords>
         <keywords ignorecase="yes" region="m4Const">
            <word name="divnum"/>
            <word name="sysval"/>
            <word name="m4_divnum"/>
            <word name="m4_sysval"/>
         </keywords>
      </scheme>

      <scheme name="m4_one_level">
         <block start="/(\[)/" end="/(\])/" scheme="m4_base" region01="PairStart" region11="PairEnd"/>
         <block start="/(\`)/" end="/(\')/" scheme="m4_base" region00="m4Symb" region01="PairStart" region10="m4Symb" region11="PairEnd"/>
         <block start="/(\()/" end="/(\))/" scheme="m4_base" region00="m4Symb" region01="PairStart" region10="m4Symb" region11="PairEnd"/>
         <inherit scheme="m4_base"/>
      </scheme>

      <scheme name="m4">
         <block start="/#/" end="/$/" scheme="empty" region="m4Comment"/>
         <block start="/(\()/" end="/(\))/" scheme="m4_one_level" region00="m4Symb" region01="PairStart" region10="m4Symb" region11="PairEnd"/>
         <inherit scheme="m4_base"/>
      </scheme>
   </type>
</hrc>
