Warning, /frameworks/syntax-highlighting/data/syntax/ocaml.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!-- Kate syntax highlighting for Objective Caml version 4.02 in the standard and revised syntaxes, with Ocamldoc comments. -->
0003
0004 <!DOCTYPE language
0005 [
0006 <!-- Regular expresion constants: -->
0007 <!ENTITY LOWER "a-z\300-\326\330-\337"> <!-- Lowercase Latin-1 letters. -->
0008 <!ENTITY UPPER "A-Z\340-\366\370-\377"> <!-- Uppercase Latin-1 letters. -->
0009 <!ENTITY LETTER "&LOWER;&UPPER;"> <!-- All Latin-1 letters. -->
0010 <!ENTITY LIDENT "[&LOWER;_][&LETTER;0-9_']*"> <!-- Lowercase OCaml identifiers. -->
0011 <!ENTITY UIDENT "`?[&UPPER;][&LETTER;0-9_']*"> <!-- Uppercase OCaml identifiers. -->
0012 <!ENTITY IDENT "`?[&LETTER;][&LETTER;0-9_']*"> <!-- All OCaml identifiers. -->
0013 <!ENTITY ESC "(\\[ntbr'"\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
0014 <!ENTITY DEC "[0-9][0-9_]*"> <!-- Decimal digits with underscores. -->
0015 ]>
0016 <language name="Objective Caml"
0017 extensions="*.ml;*.mli"
0018 mimetype="text/x-ocaml"
0019 section="Sources"
0020 version="10"
0021 priority="10"
0022 kateversion="5.79"
0023 author="Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)"
0024 license="LGPL" >
0025
0026 <highlighting>
0027 <list name="qtest keywords">
0028 <item>in</item>
0029 <item>as</item>
0030 <item>forall</item>
0031 </list>
0032 <list name="Keywords">
0033 <item>and</item>
0034 <item>as</item>
0035 <item>assert</item>
0036 <item>asr</item>
0037 <item>begin</item>
0038 <item>class</item>
0039 <item>closed</item>
0040 <item>constraint</item>
0041 <item>do</item>
0042 <item>done</item>
0043 <item>downto</item>
0044 <item>else</item>
0045 <item>end</item>
0046 <item>exception</item>
0047 <item>external</item>
0048 <item>false</item>
0049 <item>for</item>
0050 <item>fun</item>
0051 <item>function</item>
0052 <item>functor</item>
0053 <item>if</item>
0054 <item>in</item>
0055 <item>include</item>
0056 <item>inherit</item>
0057 <item>land</item>
0058 <item>lazy</item>
0059 <item>let</item>
0060 <item>lor</item>
0061 <item>lsl</item>
0062 <item>lsr</item>
0063 <item>lxor</item>
0064 <item>match</item>
0065 <item>method</item>
0066 <item>mod</item>
0067 <item>module</item>
0068 <item>mutable</item>
0069 <item>new</item>
0070 <item>nonrec</item>
0071 <item>object</item>
0072 <item>of</item>
0073 <item>open</item>
0074 <item>or</item>
0075 <item>parser</item>
0076 <item>private</item>
0077 <item>rec</item>
0078 <item>sig</item>
0079 <item>struct</item>
0080 <item>then</item>
0081 <item>to</item>
0082 <item>true</item>
0083 <item>try</item>
0084 <item>type</item>
0085 <item>val</item>
0086 <item>virtual</item>
0087 <item>when</item>
0088 <item>while</item>
0089 <item>with</item>
0090 </list>
0091
0092 <!-- Revised Syntax keywords are highlighted as identifiers by default. -->
0093 <!-- Change their highlighting colour to match the standard keywords -->
0094 <!-- if you intend to use the Camlp4 Revised Syntax. -->
0095 <list name="Revised Syntax Keywords">
0096 <item>declare</item>
0097 <item>value</item>
0098 <item>where</item>
0099 </list>
0100
0101 <list name="Pervasive Functions">
0102 <item>abs</item>
0103 <item>abs_float</item>
0104 <item>acos</item>
0105 <item>asin</item>
0106 <item>at_exit</item>
0107 <item>atan</item>
0108 <item>atan2</item>
0109 <item>bool_of_string</item>
0110 <item>ceil</item>
0111 <item>char_of_int</item>
0112 <item>classify_float</item>
0113 <item>close_in</item>
0114 <item>close_in_noerr</item>
0115 <item>close_out</item>
0116 <item>close_out_noerr</item>
0117 <item>compare</item>
0118 <item>copysign</item>
0119 <item>cos</item>
0120 <item>cosh</item>
0121 <item>decr</item>
0122 <item>do_at_exit</item>
0123 <item>epsilon_float</item>
0124 <item>exp</item>
0125 <item>expm1</item>
0126 <item>float</item>
0127 <item>float_of_int</item>
0128 <item>float_of_string</item>
0129 <item>floor</item>
0130 <item>flush</item>
0131 <item>flush_all</item>
0132 <item>format_of_string</item>
0133 <item>frexp</item>
0134 <item>fst</item>
0135 <item>hypot</item>
0136 <item>ignore</item>
0137 <item>in_channel_length</item>
0138 <item>incr</item>
0139 <item>infinity</item>
0140 <item>input</item>
0141 <item>input_binary_int</item>
0142 <item>input_byte</item>
0143 <item>input_char</item>
0144 <item>input_line</item>
0145 <item>input_value</item>
0146 <item>int_of_char</item>
0147 <item>int_of_float</item>
0148 <item>int_of_string</item>
0149 <item>ldexp</item>
0150 <item>lnot</item>
0151 <item>log</item>
0152 <item>log10</item>
0153 <item>log1p</item>
0154 <item>max</item>
0155 <item>max_float</item>
0156 <item>max_int</item>
0157 <item>min</item>
0158 <item>min_float</item>
0159 <item>min_int</item>
0160 <item>mod_float</item>
0161 <item>modf</item>
0162 <item>nan</item>
0163 <item>neg_infinity</item>
0164 <item>not</item>
0165 <item>open_in</item>
0166 <item>open_in_bin</item>
0167 <item>open_in_gen</item>
0168 <item>open_out</item>
0169 <item>open_out_bin</item>
0170 <item>open_out_gen</item>
0171 <item>out_channel_length</item>
0172 <item>output</item>
0173 <item>output_binary_int</item>
0174 <item>output_byte</item>
0175 <item>output_bytes</item>
0176 <item>output_char</item>
0177 <item>output_string</item>
0178 <item>output_substring</item>
0179 <item>output_value</item>
0180 <item>pos_in</item>
0181 <item>pos_out</item>
0182 <item>pred</item>
0183 <item>prerr_bytes</item>
0184 <item>prerr_char</item>
0185 <item>prerr_endline</item>
0186 <item>prerr_float</item>
0187 <item>prerr_int</item>
0188 <item>prerr_newline</item>
0189 <item>prerr_string</item>
0190 <item>print_bytes</item>
0191 <item>print_char</item>
0192 <item>print_endline</item>
0193 <item>print_float</item>
0194 <item>print_int</item>
0195 <item>print_newline</item>
0196 <item>print_string</item>
0197 <item>read_float</item>
0198 <item>read_int</item>
0199 <item>read_line</item>
0200 <item>really_input</item>
0201 <item>really_input_string</item>
0202 <item>ref</item>
0203 <item>seek_in</item>
0204 <item>seek_out</item>
0205 <item>set_binary_mode_in</item>
0206 <item>set_binary_mode_out</item>
0207 <item>sin</item>
0208 <item>sinh</item>
0209 <item>snd</item>
0210 <item>sqrt</item>
0211 <item>stderr</item>
0212 <item>stdin</item>
0213 <item>stdout</item>
0214 <item>string_of_bool</item>
0215 <item>string_of_float</item>
0216 <item>string_of_format</item>
0217 <item>string_of_int</item>
0218 <item>succ</item>
0219 <item>tan</item>
0220 <item>tanh</item>
0221 <item>truncate</item>
0222 <item>unsafe_really_input</item>
0223 <item>valid_float_lexem</item>
0224 </list>
0225
0226 <!-- These pervasive functions control program flow, -->
0227 <!-- so some people like to highlight them as keywords: -->
0228 <list name="Flow Control Functions">
0229 <item>exit</item>
0230 <item>failwith</item>
0231 <item>invalid_arg</item>
0232 <item>raise</item>
0233 <item>raise_notrace</item>
0234 </list>
0235
0236 <list name="Pervasive Types">
0237 <item>array</item>
0238 <item>bool</item>
0239 <item>bytes</item>
0240 <item>char</item>
0241 <item>exn</item>
0242 <item>float</item>
0243 <item>format4</item>
0244 <item>format6</item>
0245 <item>fpclass</item>
0246 <item>in_channel</item>
0247 <item>int</item>
0248 <item>int32</item>
0249 <item>int64</item>
0250 <item>lazy_t</item>
0251 <item>list</item>
0252 <item>nativeint</item>
0253 <item>open_flag</item>
0254 <item>option</item>
0255 <item>out_channel</item>
0256 <item>real</item>
0257 <item>ref</item>
0258 <item>string</item>
0259 <item>unit</item>
0260 </list>
0261
0262 <list name="Pervasive Variant Tags">
0263 <item>FP_infinite</item>
0264 <item>FP_nan</item>
0265 <item>FP_normal</item>
0266 <item>FP_subnormal</item>
0267 <item>FP_zero</item>
0268 <item>None</item>
0269 <item>Open_append</item>
0270 <item>Open_binary</item>
0271 <item>Open_creat</item>
0272 <item>Open_excl</item>
0273 <item>Open_nonblock</item>
0274 <item>Open_rdonly</item>
0275 <item>Open_text</item>
0276 <item>Open_trunc</item>
0277 <item>Open_wronly</item>
0278 <item>Some</item>
0279 </list>
0280
0281 <list name="Pervasive Exceptions">
0282 <item>Assert_failure</item>
0283 <item>Division_by_zero</item>
0284 <item>End_of_file</item>
0285 <item>Exit</item>
0286 <item>Failure</item>
0287 <item>Invalid_argument</item>
0288 <item>Match_failure</item>
0289 <item>Not_found</item>
0290 <item>Out_of_memory</item>
0291 <item>Stack_overflow</item>
0292 <item>Sys_blocked_io</item>
0293 <item>Sys_error</item>
0294 <item>Undefined_recursive_module</item>
0295 </list>
0296
0297 <list name="Standard Library Modules">
0298 <item>Arg</item>
0299 <item>Array</item>
0300 <item>ArrayLabels</item>
0301 <item>Buffer</item>
0302 <item>Bytes</item>
0303 <item>Callback</item>
0304 <item>Char</item>
0305 <item>Complex</item>
0306 <item>Digest</item>
0307 <item>Ephemeron</item>
0308 <item>Filename</item>
0309 <item>Format</item>
0310 <item>Gc</item>
0311 <item>Genlex</item>
0312 <item>Hashtbl</item>
0313 <item>Int32</item>
0314 <item>Int64</item>
0315 <item>Lazy</item>
0316 <item>Lexing</item>
0317 <item>List</item>
0318 <item>ListLabels</item>
0319 <item>Map</item>
0320 <item>Marshal</item>
0321 <item>MoreLabels</item>
0322 <item>Nativeint</item>
0323 <item>Oo</item>
0324 <item>Parsing</item>
0325 <item>Printexc</item>
0326 <item>Printf</item>
0327 <item>Queue</item>
0328 <item>Random</item>
0329 <item>Scanf</item>
0330 <item>Set</item>
0331 <item>Sort</item>
0332 <item>Spacetime</item>
0333 <item>Stack</item>
0334 <item>StdLabels</item>
0335 <item>Stream</item>
0336 <item>String</item>
0337 <item>StringLabels</item>
0338 <item>Sys</item>
0339 <item>Uchar</item>
0340 <item>Weak</item>
0341 </list>
0342
0343 <contexts>
0344
0345 <context name="Code" lineEndContext="#stay" attribute="Operator">
0346
0347 <!-- ] and ]} close code samples in Ocamldoc, so -->
0348 <!-- nested [ ] and { } brackets have to be allowed for: -->
0349 <DetectChar char="[" context="Nested Code 1" attribute="Operator" />
0350 <DetectChar char="{" context="Nested Code 2" attribute="Operator" />
0351
0352 <!-- Comments. -->
0353 <!-- A (** begins a special comment with Ocamldoc documentation markup. -->
0354 <StringDetect String="(**)" context="#stay" attribute="Comment" />
0355 <StringDetect String="(**" context="Ocamldoc" attribute="Comment" beginRegion="comment" />
0356 <RegExpr String="\(\*\$(T|Q|R|=)" context="qtest header" attribute="qtest body style" beginRegion="comment" />
0357 <Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
0358
0359 <!-- Interpreter directives. -->
0360 <!-- (These are lines where the first symbol is a '#' followed by an identifier. -->
0361 <!-- Such lines could also be part of a method call split over two lines but -->
0362 <!-- it's unlikey anyone would code like that.) -->
0363 <RegExpr String="#&IDENT;.*$" context="#stay" firstNonSpace="true" attribute="Directive"/>
0364
0365 <!-- String, character and Camlp4 "quotation" constants. -->
0366 <!-- Note: If you must modify the pattern for characters be precise: -->
0367 <!-- single quotes have several meanings in Ocaml. -->
0368 <DetectChar char=""" context="String" attribute="String" />
0369 <RegExpr String="'(&ESC;|[^'])'" context="#stay" attribute="Character" />
0370 <Detect2Chars char="<" char1="<" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
0371 <RegExpr String="<:&IDENT;<" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
0372
0373 <!-- Identifiers and keywords. -->
0374 <keyword String="Keywords" context="#stay" attribute="Keyword" />
0375 <keyword String="Revised Syntax Keywords" context="#stay" attribute="Revised Syntax Keyword" />
0376 <keyword String="Flow Control Functions" context="#stay" attribute="Flow Control Functions" />
0377 <keyword String="Pervasive Functions" context="#stay" attribute="Pervasive Functions" />
0378 <keyword String="Pervasive Types" context="#stay" attribute="Pervasive Types" />
0379 <keyword String="Pervasive Exceptions" context="#stay" attribute="Pervasive Exceptions" />
0380 <keyword String="Pervasive Variant Tags" context="#stay" attribute="Pervasive Variant Tags" />
0381 <keyword String="Standard Library Modules" context="#stay" attribute="Standard Library Modules" />
0382 <RegExpr String="&LIDENT;" context="#stay" attribute="Lowercase Identifier" />
0383 <RegExpr String="&UIDENT;" context="#stay" attribute="Uppercase Identifier" />
0384
0385 <!-- Numeric constants. -->
0386 <!-- Note that they may contain underscores. -->
0387 <RegExpr String="-?0[xX][0-9A-Fa-f_]+" context="#stay" attribute="Hexadecimal" />
0388 <RegExpr String="-?0[oO][0-7_]+" context="#stay" attribute="Octal" />
0389 <RegExpr String="-?0[bB][01_]+" context="#stay" attribute="Binary" />
0390 <RegExpr String="-?&DEC;(\.&DEC;([eE][-+]?&DEC;)?|[eE][-+]?&DEC;)" context="#stay" attribute="Float" />
0391 <RegExpr String="-?&DEC;" context="#stay" attribute="Decimal" />
0392
0393 <IncludeRules context="Unmatched Closing Brackets" />
0394 </context>
0395
0396 <context name="Nested Code 1" lineEndContext="#stay" attribute="Operator">
0397 <DetectChar char="]" context="#pop" attribute="Operator" />
0398 <IncludeRules context="Code" includeAttrib="true" />
0399 </context>
0400
0401 <context name="Nested Code 2" lineEndContext="#stay" attribute="Operator">
0402 <DetectChar char="}" context="#pop" attribute="Operator" />
0403 <IncludeRules context="Code" includeAttrib="true" />
0404 </context>
0405
0406 <context name="String" lineEndContext="#stay" attribute="String">
0407 <DetectChar char=""" context="#pop" attribute="String" />
0408 <!-- A backslash at the end of a line in a string indicates -->
0409 <!-- that the string will continue on the next line: -->
0410 <RegExpr String="&ESC;|\\$" context="#stay" attribute="Escaped Characters" />
0411 </context>
0412
0413 <context name="qtest header" lineEndContext="qtest" attribute="Operator">
0414 <keyword String="qtest keywords" attribute="Keyword" />
0415 <DetectChar char="&" context="qtest param" attribute="qtest param style" />
0416 <RegExpr String="&LIDENT;" context="#stay" attribute="qtest header style"/>
0417 </context>
0418
0419 <context name="qtest param" lineEndContext="qtest" attribute="qtest param style">
0420 </context>
0421
0422 <context name="qtest" lineEndContext="#stay" attribute="qtest body style">
0423 <Detect2Chars char="*" char1=')' context="#pop" attribute="qtest body style" endRegion="comment" />
0424 <IncludeRules context="Code" includeAttrib="true" />
0425 </context>
0426
0427 <context name="Comment" lineEndContext="#stay" attribute="Comment">
0428 <Detect2Chars char="*" char1=")" context="#pop" attribute="Comment" endRegion="comment" />
0429 <!-- Support for nested comments: -->
0430 <Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
0431 <!-- Strings in Ocaml comments must be well-formed: -->
0432 <DetectChar char=""" context="String in Comment" attribute="String in Comment" />
0433
0434 <DetectSpaces />
0435 <IncludeRules context="##Comments" />
0436 </context>
0437
0438 <context name="String in Comment" lineEndContext="#stay" attribute="String in Comment">
0439 <DetectChar char=""" context="#pop" attribute="String in Comment" />
0440 <IncludeRules context="String" />
0441 </context>
0442
0443 <!-- Camlp4 Quotations. These are source code literals used by the Campl4 preprocessor. -->
0444 <!-- The only escapes allowed in a Camlp4 quotation are for the quotation start and stop symbols. -->
0445 <context name="Camlp4 Quotation" lineEndContext="#stay" attribute="Camlp4 Quotation">
0446 <Detect2Chars char=">" char1=">" context="#pop" attribute="Camlp4 Quotation" />
0447 <Detect2Chars char="<" char1="<" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
0448 <RegExpr String="<:&IDENT;<" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
0449 <RegExpr String="\\(\\|>>|<<|<:&IDENT;<)" context="#stay" attribute="Escaped Characters" />
0450 </context>
0451
0452 <!-- Ocamldoc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
0453
0454 <context name="Ocamldoc" lineEndContext="#stay" attribute="Ocamldoc Text">
0455 <Detect2Chars char="*" char1=")" context="#pop" attribute="Comment" endRegion="comment" />
0456
0457 <!-- A backslash escapes markup characters: -->
0458 <RegExpr String="\\." context="#stay" attribute="Escaped Characters" />
0459
0460 <!-- Support for nested comments and strings: -->
0461 <StringDetect String="(**)" context="#stay" attribute="Comment" />
0462 <StringDetect String="(**" context="Ocamldoc" attribute="Comment" beginRegion="comment" />
0463 <Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
0464
0465 <!-- Strings in Ocaml comments must be well-formed: -->
0466 <DetectChar char=""" context="String in Comment" attribute="String in Comment" />
0467
0468 <!-- Nested Markup: -->
0469 <DetectChar char="[" context="Ocamldoc Code" attribute="Ocamldoc Markup" />
0470 <Detect2Chars char="{" char1="[" context="Ocamldoc Preformatted" attribute="Ocamldoc Markup" />
0471 <Detect2Chars char="{" char1="%" context="Ocamldoc LaTeX" attribute="Ocamldoc Markup" />
0472 <Detect2Chars char="{" char1="^" context="Nested Ocamldoc" attribute="Ocamldoc Markup" />
0473 <RegExpr String="[{]v(\s|$)" context="Ocamldoc Verbatim" attribute="Ocamldoc Markup" />
0474 <RegExpr String="[{]b(\s|$)" context="Ocamldoc Bold" attribute="Ocamldoc Markup" />
0475 <RegExpr String="[{]i(\s|$)" context="Ocamldoc Italic" attribute="Ocamldoc Markup" />
0476 <RegExpr String="[{]e(\s|$)" context="Ocamldoc Emphasised" attribute="Ocamldoc Markup" />
0477 <RegExpr String="[{][0-9]+(:&IDENT;)?\s" context="Ocamldoc Heading" attribute="Ocamldoc Markup" />
0478 <RegExpr String="[{][{]:&IDENT;[}]" context="Ocamldoc Link" attribute="Ocamldoc Markup" />
0479 <RegExpr String="[{]!([a-z]+:)?" context="Ocamldoc References" attribute="Ocamldoc Markup" />
0480 <RegExpr String="[{]&IDENT;(\s|$)" context="Nested Ocamldoc" attribute="Ocamldoc Markup" />
0481
0482 <RegExpr String="@see\s*(<[^>]*>|"[^"]*"|'[^']*')" context="#stay" attribute="Ocamldoc Markup" />
0483 <RegExpr String="@(param|raise)\s*" context="Ocamldoc Identifier" attribute="Ocamldoc Markup" />
0484 <RegExpr String="@(author|before|deprecated|return|since|version)" context="#stay" attribute="Ocamldoc Markup" />
0485 <RegExpr String="@&IDENT;" context="#stay" attribute="Ocamldoc Custom Tag" />
0486
0487
0488
0489 <!-- A dash at the start of a line is a bullet point. -->
0490 <RegExpr String="^[ 	]*-\s" context="#stay" attribute="Ocamldoc Markup" column="0" />
0491
0492 <IncludeRules context="Unmatched Closing Brackets" />
0493 </context>
0494
0495 <context name="Ocamldoc Code" lineEndContext="#stay" attribute="Operator">
0496 <DetectChar char="]" context="#pop" attribute="Ocamldoc Markup" />
0497 <IncludeRules context="Code" includeAttrib="true" />
0498 </context>
0499
0500 <context name="Ocamldoc Preformatted" lineEndContext="#stay" attribute="Operator">
0501 <Detect2Chars char="]" char1="}" context="#pop" attribute="Ocamldoc Markup" />
0502 <IncludeRules context="Code" includeAttrib="true" />
0503 </context>
0504
0505 <context name="Ocamldoc Verbatim" lineEndContext="#stay" attribute="Ocamldoc Text">
0506 <Detect2Chars char="v" char1="}" context="#pop" attribute="Ocamldoc Markup" />
0507 </context>
0508
0509 <context name="Ocamldoc LaTeX" lineEndContext="#stay" attribute="Ocamldoc LaTeX">
0510 <Detect2Chars char="%" char1="}" context="#pop" attribute="Ocamldoc Markup" />
0511 <IncludeRules context="##LaTeX" />
0512 </context>
0513
0514 <!-- A single qualified Ocaml identifier, perhaps preceeded by whitespace. } -->
0515 <context name="Ocamldoc Identifier" lineEndContext="#stay" attribute="Mismatched Brackets">
0516 <RegExpr String="&IDENT;(\.&IDENT;)*" context="#pop" attribute="Ocamldoc Link" />
0517 <Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
0518 <DetectSpaces />
0519 </context>
0520
0521 <context name="Nested Ocamldoc" lineEndContext="#stay" attribute="Operator">
0522 <DetectChar char="}" context="#pop" attribute="Ocamldoc Markup" />
0523 <Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
0524 <IncludeRules context="Ocamldoc" includeAttrib="true" />
0525 </context>
0526
0527 <context name="Ocamldoc Bold" lineEndContext="#stay" attribute="Ocamldoc Bold">
0528 <IncludeRules context="Nested Ocamldoc" />
0529 </context>
0530
0531 <context name="Ocamldoc Italic" lineEndContext="#stay" attribute="Ocamldoc Italic">
0532 <IncludeRules context="Nested Ocamldoc" />
0533 </context>
0534
0535 <context name="Ocamldoc Emphasised" lineEndContext="#stay" attribute="Ocamldoc Emphasised">
0536 <IncludeRules context="Nested Ocamldoc" />
0537 </context>
0538
0539 <context name="Ocamldoc Heading" lineEndContext="#stay" attribute="Ocamldoc Heading">
0540 <IncludeRules context="Nested Ocamldoc" />
0541 </context>
0542
0543 <context name="Ocamldoc Link" lineEndContext="#stay" attribute="Ocamldoc Link">
0544 <IncludeRules context="Nested Ocamldoc" />
0545 </context>
0546
0547 <!-- A list of qualified Ocaml identifiers, seperated by whitespace and ending with a } -->
0548 <context name="Ocamldoc References" lineEndContext="#stay" attribute="Mismatched Brackets">
0549 <DetectChar char="}" context="#pop" attribute="Ocamldoc Markup" />
0550 <Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
0551 <RegExpr String="&IDENT;(\.&IDENT;)*" context="#stay" attribute="Ocamldoc Link" />
0552 <DetectSpaces context="#stay" attribute="Ocamldoc Markup" />
0553 </context>
0554
0555 <!-- Unmatched closing brackets- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
0556
0557 <context name="Unmatched Closing Brackets" lineEndContext="#stay" attribute="Operator">
0558 <Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
0559 <Detect2Chars char="v" char1="}" context="#stay" attribute="Mismatched Brackets" />
0560 <Detect2Chars char="]" char1="}" context="#stay" attribute="Mismatched Brackets" />
0561 <Detect2Chars char="%" char1="}" context="#stay" attribute="Mismatched Brackets" />
0562 <AnyChar String="]}" context="#stay" attribute="Mismatched Brackets" />
0563 </context>
0564 </contexts>
0565
0566 <itemDatas>
0567 <itemData name="Operator" defStyleNum="dsNormal" />
0568 <itemData name="Keyword" defStyleNum="dsKeyword" />
0569 <itemData name="Revised Syntax Keyword" defStyleNum="dsNormal" />
0570 <itemData name="Lowercase Identifier" defStyleNum="dsNormal" />
0571 <itemData name="Uppercase Identifier" defStyleNum="dsNormal" italic="true" />
0572
0573 <!-- Lowercase pervasive identifiers: -->
0574 <itemData name="Flow Control Functions" defStyleNum="dsDataType" />
0575 <itemData name="Pervasive Functions" defStyleNum="dsDataType" />
0576 <itemData name="Pervasive Types" defStyleNum="dsDataType" />
0577
0578 <!-- Uppercase pervasive identifiers: -->
0579 <itemData name="Pervasive Exceptions" defStyleNum="dsDataType" italic="true" />
0580 <itemData name="Pervasive Variant Tags" defStyleNum="dsDataType" italic="true" />
0581 <itemData name="Standard Library Modules" defStyleNum="dsDataType" italic="true" />
0582
0583 <itemData name="Decimal" defStyleNum="dsDecVal" />
0584 <itemData name="Hexadecimal" defStyleNum="dsBaseN" />
0585 <itemData name="Octal" defStyleNum="dsBaseN" />
0586 <itemData name="Binary" defStyleNum="dsBaseN" />
0587 <itemData name="Float" defStyleNum="dsFloat" />
0588
0589 <itemData name="Character" defStyleNum="dsChar" />
0590 <itemData name="String" defStyleNum="dsString" />
0591 <itemData name="Camlp4 Quotation" defStyleNum="dsString" />
0592 <itemData name="Escaped Characters" defStyleNum="dsChar" />
0593
0594 <itemData name="Directive" defStyleNum="dsOthers" />
0595
0596 <itemData name="Comment" defStyleNum="dsComment" />
0597 <itemData name="String in Comment" defStyleNum="dsComment" bold="true" />
0598 <itemData name="Mismatched Brackets" defStyleNum="dsError" />
0599
0600 <itemData name="Ocamldoc Markup" defStyleNum="dsOthers" />
0601 <itemData name="Ocamldoc Text" defStyleNum="dsComment" italic="false" />
0602 <itemData name="Ocamldoc Bold" defStyleNum="dsComment" italic="false" bold="true" />
0603 <itemData name="Ocamldoc Italic" defStyleNum="dsComment" italic="true" bold="false" />
0604 <itemData name="Ocamldoc Emphasised" defStyleNum="dsComment" italic="true" bold="true" />
0605 <itemData name="Ocamldoc Heading" defStyleNum="dsComment" italic="false" bold="true" underline="true" />
0606 <itemData name="Ocamldoc Link" defStyleNum="dsComment" italic="false" underline="true" color="#0000ff" />
0607 <itemData name="Ocamldoc LaTeX" defStyleNum="dsComment" italic="false" />
0608 <itemData name="Ocamldoc Custom Tag" defStyleNum="dsOthers" italic="true" />
0609
0610 <itemData name="qtest header style" defStyleNum="dsNormal" backgroundColor="#FFEBE0" />
0611 <itemData name="qtest param style" defStyleNum="dsNormal" italic="true" color="#7788FF" />
0612 <!-- backgroundColor="#EEEEFF" -->
0613 <itemData name="qtest body style" defStyleNum="dsNormal" bold="true" backgroundColor="#D6FFEB" />
0614 </itemDatas>
0615 </highlighting>
0616
0617 <general>
0618 <keywords casesensitive="true" />
0619 <comments>
0620 <comment name="multiLine" start="(*" end="*)" region ="comment" />
0621 </comments>
0622 </general>
0623 </language>
0624 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->