<glimmer-definition>
   <settings>
      <language>Objective Caml</language>
      <compiler></compiler>
      <debugger></debugger>
      <execution></execution>
      <auto-indent>1</auto-indent>
      <use-spaces>0</use-spaces>
      <tab-stop>4</tab-stop>
   </settings>

   <mime-types>
      <extension>ml</extension>
      <extension>mli</extension>
   </mime-types>

   <syntax-items>
      <syntax-item>
         <name>ocaml-string</name>
         <start-regex>&quot;</start-regex>
         <end-regex>\(&quot;\|\n\)</end-regex>
         <style>string</style>
      </syntax-item>
      <syntax-item>
         <name>ocaml comment</name>
         <start-regex>(\*</start-regex>
         <end-regex>\*)</end-regex>
         <style>comment</style>
      </syntax-item>
   </syntax-items>

   <pattern-items>
      <pattern-item>
         <name>ocaml chars</name>
         <regex>&apos;\\?[a-zA-Z0-9_\\()#!$%^&amp;@*-=+&quot;{}&lt;)]&apos;</regex>
         <style>char_string</style>
      </pattern-item>
      <pattern-item>
         <name>ocaml types</name>
         <regex>\b\(int\|float\|array\|bool\|char\|exn\|format\|option\|list\|string\|unit\)\b</regex>
         <style>data_type</style>
      </pattern-item>
      <pattern-item>
         <name>ocaml special types</name>
         <regex>`[a-z]+?\b</regex>
         <style>data_type</style>
      </pattern-item>
      <pattern-item>
         <name>keywords</name>
         <regex>\b\(failwith\|let\|begin\|for\|to\|downto\|do\|done\|if\|then\|else\|object\|struct\|sig\|module\|include\|open\|and\|as\|assert\|class\|constraint\|exception\|external\|fun\|function\|in\|inherit\|initializer\|land\|lazy\|match\|method\|mutable\|new\|of\|parser\|private\|raise\|rec\|try\|type\|val\|virtual\|when\|while\|with\|end\|true\|false\|asr\|lor\|lsl\|lsr\|lxor\|mod\|not\|or\)\b</regex>
         <style>keyword</style>
      </pattern-item>
      <pattern-item>
         <name>macros</name>
         <regex>\b[A-Z_][A-Z0-9_\-]+\b</regex>
         <style>macro</style>
      </pattern-item>
      <pattern-item>
         <name>numbers</name>
         <regex>\b[0-9]+\.?\b</regex>
         <style>decimal</style>
      </pattern-item>
      <pattern-item>
         <name>operators</name>
         <regex>\(\*\|\*\.\|+\|+\.\|-\|-\.\|/\|/\.\|-&gt;\|&lt;-\|:\||\|||\|&lt;\|&gt;\|&gt;\=\|&lt;\=\|&lt;\.\|&gt;\.\|&lt;=\.\|&gt;=\.\|=\|,\|;\|&amp;&amp;\|&amp;\|@\|__\|_\|\]\|#\|\[\|&apos;\|!\|?\|\^\)</regex>
         <style>operator</style>
      </pattern-item>
      <pattern-item>
         <name>ocaml functions</name>
         <regex>\(int_of_string\|string_of_int\|int_of_float\|float_of_int\|string_of_float\|float_of_string\|fst\|snd\|map\|char_of_int\|int_of_char\|ref\|print_newline()\|print_string\|printf\|print_int\|create_string\|string_lenght\|sub_string\)</regex>
         <style>function</style>
      </pattern-item>
      <pattern-item>
         <name>ocaml graph functions</name>
         <regex>\(clear_graph\|moveto\|lineto\|set_color\|open_graph\)</regex>
         <style>function</style>
      </pattern-item>
   </pattern-items>
</glimmer-definition>
