Warning, /frameworks/syntax-highlighting/autotests/reference/highlight_ocaml.ml.ref is written in an unsupported language. File is not indexed.
0001 <Comment>(* ocaml test file -- a big stew of Objective Caml syntax to use to</Comment><br/> 0002 <Comment> test Kate's syntax highlighting. This will not run! :-) *)</Comment><br/> 0003 <Operator></Operator><br/> 0004 <Comment>(* First a little piece of real OCaml that should look right: *)</Comment><br/> 0005 <Operator></Operator><br/> 0006 <Operator> </Operator><Directive>#load "basic";;</Directive><br/> 0007 <Operator> </Operator><Comment>(* Return a default value for a BASIC variable given its identifer. *)</Comment><br/> 0008 <Operator> </Operator><Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>default_value</Lowercase Identifier><Operator> (</Operator><Lowercase Identifier>ident</Lowercase Identifier><Operator> : </Operator><Pervasive Types>string</Pervasive Types><Operator>) : </Operator><Lowercase Identifier>basic_value</Lowercase Identifier><Operator> =</Operator><br/> 0009 <Operator> </Operator><Keyword>assert</Keyword><Operator> (</Operator><Standard Library Modules>String</Standard Library Modules><Operator>.</Operator><Lowercase Identifier>length</Lowercase Identifier><Operator> </Operator><Lowercase Identifier>ident</Lowercase Identifier><Operator> > </Operator><Decimal>0</Decimal><Operator>);</Operator><br/> 0010 <Operator> </Operator><Keyword>match</Keyword><Operator> </Operator><Lowercase Identifier>ident</Lowercase Identifier><Operator>.[</Operator><Standard Library Modules>String</Standard Library Modules><Operator>.</Operator><Lowercase Identifier>length</Lowercase Identifier><Operator> </Operator><Lowercase Identifier>ident</Lowercase Identifier><Operator> - </Operator><Decimal>1</Decimal><Operator>] </Operator><Keyword>with</Keyword><br/> 0011 <Operator> | </Operator><Character>'$'</Character><Operator> -> </Operator><Uppercase Identifier>Str</Uppercase Identifier><Operator> </Operator><String>""</String><br/> 0012 <Operator> | </Operator><Character>'%'</Character><Operator> -> </Operator><Uppercase Identifier>Int</Uppercase Identifier><Operator> </Operator><Decimal>0</Decimal><br/> 0013 <Operator> | </Operator><Character>'!'</Character><Operator> -> </Operator><Uppercase Identifier>Flt</Uppercase Identifier><Operator> </Operator><Float>0.0</Float><br/> 0014 <Operator> | </Operator><Lowercase Identifier>_</Lowercase Identifier><Operator> -> </Operator><Uppercase Identifier>Flt</Uppercase Identifier><Operator> </Operator><Float>0.0</Float><br/> 0015 <Operator> ;;</Operator><br/> 0016 <Operator></Operator><br/> 0017 <Comment>(* Directives: *)</Comment><br/> 0018 <Directive>#load "pa_o";;</Directive><br/> 0019 <Operator> </Operator><Directive>#load "pa_o";;</Directive><br/> 0020 <Keyword>object</Keyword><Operator> # </Operator><Lowercase Identifier>meth</Lowercase Identifier><Operator> ;; </Operator><Comment>(* not a directive - a method call *)</Comment><br/> 0021 <Keyword>object</Keyword><br/> 0022 <Operator> # </Operator><Lowercase Identifier>meth</Lowercase Identifier><Operator> ;; </Operator><Comment>(* not a directive - a method call *)</Comment><br/> 0023 <Operator></Operator><br/> 0024 <Comment>(* OCaml keywords: *)</Comment><br/> 0025 <Keyword>and</Keyword><Operator> </Operator><Keyword>as</Keyword><Operator> </Operator><Keyword>assert</Keyword><Operator> </Operator><Keyword>asr</Keyword><Operator> </Operator><Comment>(* etc. there so many... *)</Comment><br/> 0026 <Operator></Operator><br/> 0027 <Comment>(* Additional OCaml Revised Syntax keywords: *)</Comment><br/> 0028 <Comment>(* These are in a seperate category so they can be coloured to look</Comment><br/> 0029 <Comment> like identifiers when ordinary OCaml syntax is being used: *)</Comment><br/> 0030 <Revised Syntax Keyword>declare</Revised Syntax Keyword><Operator> </Operator><Revised Syntax Keyword>where</Revised Syntax Keyword><Operator> </Operator><Revised Syntax Keyword>value</Revised Syntax Keyword><br/> 0031 <Operator></Operator><br/> 0032 <Comment>(* There's no way to reliably highlight all OCaml type expressions,</Comment><br/> 0033 <Comment> (they can be very complex) so just the built-in type names are highlighted.*)</Comment><br/> 0034 <Pervasive Types>exn</Pervasive Types><Operator> </Operator><Pervasive Types>lazy_t</Pervasive Types><Operator> </Operator><Lowercase Identifier>format</Lowercase Identifier><Operator> </Operator><Pervasive Types>unit</Pervasive Types><Operator> </Operator><Pervasive Types>int</Pervasive Types><Operator> </Operator><Pervasive Types>real</Pervasive Types><Operator> </Operator><Pervasive Types>char</Pervasive Types><Operator> </Operator><Pervasive Types>string</Pervasive Types><Operator> </Operator><Pervasive Functions>ref</Pervasive Functions><Operator> </Operator><Pervasive Types>array</Pervasive Types><Operator> </Operator><Pervasive Types>bool</Pervasive Types><Operator> </Operator><Pervasive Types>list</Pervasive Types><Operator> </Operator><Pervasive Types>option</Pervasive Types><br/> 0035 <Operator></Operator><br/> 0036 <Operator></Operator><br/> 0037 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>integers</Lowercase Identifier><Operator> : </Operator><Pervasive Types>int</Pervasive Types><Operator> </Operator><Pervasive Types>list</Pervasive Types><Operator> = [</Operator><br/> 0038 <Operator> </Operator><Decimal>123456789</Decimal><Operator>; </Operator><Comment>(* decimal *)</Comment><br/> 0039 <Operator> </Operator><Hexadecimal>-0xabcedf0123456789</Hexadecimal><Operator>; </Operator><Comment>(* hexadecimal *)</Comment><br/> 0040 <Operator> </Operator><Hexadecimal>0xABCDEF0123456789</Hexadecimal><Operator>; </Operator><Comment>(* hexadecimal *)</Comment><br/> 0041 <Operator> </Operator><Octal>-0o1234567</Octal><Operator>; </Operator><Comment>(* octal *)</Comment><br/> 0042 <Operator> </Operator><Binary>0b01001010101010</Binary><Operator>; </Operator><Comment>(* binary *)</Comment><br/> 0043 <Operator> </Operator><Hexadecimal>-0Xabcedf0123456789</Hexadecimal><Operator>; </Operator><Comment>(* hexadecimal *)</Comment><br/> 0044 <Operator> </Operator><Hexadecimal>0XABCDEF0123456789</Hexadecimal><Operator>; </Operator><Comment>(* hexadecimal *)</Comment><br/> 0045 <Operator> </Operator><Octal>-0O1234567</Octal><Operator>; </Operator><Comment>(* octal *)</Comment><br/> 0046 <Operator> </Operator><Binary>0B01001010101010</Binary><Operator>; </Operator><Comment>(* binary *)</Comment><br/> 0047 <Operator> </Operator><Decimal>-123_456_789</Decimal><Operator>; </Operator><Comment>(* Underscores are allowed in numeric constants. *)</Comment><br/> 0048 <Operator> </Operator><Hexadecimal>0x_abce_df01_2345_6789</Hexadecimal><Operator>;</Operator><br/> 0049 <Operator> </Operator><Octal>-0o12_34_567</Octal><Operator>;</Operator><br/> 0050 <Operator> </Operator><Binary>0b_0100_1010_1010_1101</Binary><Operator>;</Operator><br/> 0051 <Operator>];;</Operator><br/> 0052 <Operator></Operator><br/> 0053 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>floats</Lowercase Identifier><Operator> : </Operator><Pervasive Types>real</Pervasive Types><Operator> </Operator><Pervasive Types>list</Pervasive Types><Operator> = [</Operator><br/> 0054 <Operator> </Operator><Float>12345.6789</Float><Operator>;</Operator><br/> 0055 <Operator> </Operator><Float>-1.23456789e4</Float><Operator>; </Operator><Comment>(* All variations of the exponent form *)</Comment><br/> 0056 <Operator> </Operator><Float>1.23456789e+4</Float><Operator>;</Operator><br/> 0057 <Operator> </Operator><Float>-1.23456789e-4</Float><Operator>;</Operator><br/> 0058 <Operator> </Operator><Float>1.23456789E-4</Float><Operator>;</Operator><br/> 0059 <Operator> </Operator><Float>-1.23456789E+4</Float><Operator>;</Operator><br/> 0060 <Operator> </Operator><Float>12_345.6789</Float><Operator>; </Operator><Comment>(* Underscores are allowed in numeric constants. *)</Comment><br/> 0061 <Operator> </Operator><Float>-1.23_456_789e+4</Float><Operator>;</Operator><br/> 0062 <Operator> </Operator><Float>12_345.6789</Float><Operator>;</Operator><br/> 0063 <Operator>];;</Operator><br/> 0064 <Operator></Operator><br/> 0065 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>characters</Lowercase Identifier><Operator> : </Operator><Pervasive Types>char</Pervasive Types><Operator> </Operator><Pervasive Types>list</Pervasive Types><Operator> = [</Operator><br/> 0066 <Operator> </Operator><Character>'a'</Character><Operator>;</Operator><br/> 0067 <Operator> </Operator><Character>' '</Character><Operator>;</Operator><br/> 0068 <Operator> </Operator><Character>'�'</Character><Operator>;</Operator><br/> 0069 <Operator> </Operator><Character>'\n'</Character><Operator>; </Operator><Character>'\r'</Character><Operator>; </Operator><Character>'\t'</Character><Operator>; </Operator><Character>'\b'</Character><Operator>; </Operator><Comment>(* Control characters. Only these four: not the full C-language range. *)</Comment><br/> 0070 <Operator> </Operator><Character>'\000'</Character><Operator>; </Operator><Character>'\128'</Character><Operator>; </Operator><Comment>(* Decimal character codes. These are always 3 digits. *)</Comment><br/> 0071 <Operator> </Operator><Character>'\x02'</Character><Operator>; </Operator><Character>'\xff'</Character><Operator>; </Operator><Character>'\xFF'</Character><Operator>; </Operator><Comment>(* Hexadecimal character codes. These are always 3 digits. *)</Comment><br/> 0072 <Operator> </Operator><Character>'\\'</Character><Operator>; </Operator><Character>'\''</Character><Operator>; </Operator><Character>'\"'</Character><Operator>; </Operator><Character>'"'</Character><Operator> </Operator><Comment>(* Quote character escapes. *)</Comment><br/> 0073 <Operator>];;</Operator><br/> 0074 <Operator></Operator><br/> 0075 <Comment>(* Quotes used to mark constants in parsers should</Comment><br/> 0076 <Comment> not be confused with character constant quotes.</Comment><br/> 0077 <Comment> </Comment><String in Comment>"Ticks"</String in Comment><Comment> at the end of identifiers should</Comment><br/> 0078 <Comment> not be confused with character constant quotes. *)</Comment><br/> 0079 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>basic_identifier</Lowercase Identifier><Operator> =</Operator><br/> 0080 <Operator> </Operator><Keyword>parser</Keyword><br/> 0081 <Operator> [< '</Operator><Character>'F'</Character><Operator>; '</Operator><Character>'N'</Character><Operator>; </Operator><Lowercase Identifier>name</Lowercase Identifier><Operator> = </Operator><Lowercase Identifier>s</Lowercase Identifier><Operator> >] -> </Operator><Uppercase Identifier>ID</Uppercase Identifier><Operator> (</Operator><Lowercase Identifier>s</Lowercase Identifier><Operator>, </Operator><Character>'f'</Character><Operator>)</Operator><br/> 0082 <Operator> | [< </Operator><Lowercase Identifier>name</Lowercase Identifier><Operator> = </Operator><Lowercase Identifier>s'</Lowercase Identifier><Operator> >] -> </Operator><Uppercase Identifier>ID</Uppercase Identifier><Operator> (</Operator><Lowercase Identifier>s'</Lowercase Identifier><Operator>,</Operator><Character>'i'</Character><Operator>)</Operator><br/> 0083 <Operator>;;</Operator><br/> 0084 <Operator></Operator><br/> 0085 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>strings</Lowercase Identifier><Operator> : </Operator><Pervasive Types>string</Pervasive Types><Operator> </Operator><Pervasive Types>list</Pervasive Types><Operator> = [</Operator><br/> 0086 <Operator> </Operator><String>""</String><Operator>; </Operator><Comment>(* Empty string *)</Comment><br/> 0087 <Operator> </Operator><String>"a"</String><Operator>; </Operator><String>" "</String><Operator>; </Operator><String>"�"</String><Operator>; </Operator><String>"ab"</String><Operator>;</Operator><br/> 0088 <Operator> </Operator><String>"A</String><Escaped Characters>\n</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\r</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\t</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\b</Escaped Characters><String>B"</String><Operator>; </Operator><Comment>(* Control characters. Only these four: not the full C-language range. *)</Comment><br/> 0089 <Operator> </Operator><String>"A</String><Escaped Characters>\000</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\128</Escaped Characters><String>B"</String><Operator>; </Operator><Comment>(* Decimal character codes. These are always 3 digits. *)</Comment><br/> 0090 <Operator> </Operator><String>"A</String><Escaped Characters>\x02</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\xff</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\xFF</Escaped Characters><String>B"</String><Operator>; </Operator><Comment>(* Hexadecimal character codes. These are always 3 digits. *)</Comment><br/> 0091 <Operator> </Operator><String>"A</String><Escaped Characters>\\</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\'</Escaped Characters><String>B"</String><Operator>; </Operator><String>"A'B"</String><Operator>; </Operator><String>"A</String><Escaped Characters>\"</Escaped Characters><String>B"</String><Operator>; </Operator><Comment>(* Quote character escapes. *)</Comment><br/> 0092 <Operator> </Operator><String>"A multiline</String><Escaped Characters>\</Escaped Characters><br/> 0093 <String> string"</String><Operator>;</Operator><br/> 0094 <Operator>];</Operator><br/> 0095 <Operator></Operator><br/> 0096 <Keyword>let</Keyword><Operator> </Operator><Lowercase Identifier>camlp4_quotations</Lowercase Identifier><Operator> = [</Operator><br/> 0097 <Operator> </Operator><Camlp4 Quotation><<A Camlp4 source code quotation.>></Camlp4 Quotation><Operator> ;</Operator><br/> 0098 <Operator> </Operator><Camlp4 Quotation><:QUOTE<A labelled Camlp4 source code quotation.>></Camlp4 Quotation><Operator> ;</Operator><br/> 0099 <Operator> <:</Operator><Uppercase Identifier>QU</Uppercase Identifier><Operator>�</Operator><Uppercase Identifier>T</Uppercase Identifier><Operator>�<</Operator><Uppercase Identifier>A</Uppercase Identifier><Operator> </Operator><Lowercase Identifier>labelled</Lowercase Identifier><Operator> </Operator><Uppercase Identifier>Camlp4</Uppercase Identifier><Operator> </Operator><Lowercase Identifier>source</Lowercase Identifier><Operator> </Operator><Lowercase Identifier>code</Lowercase Identifier><Operator> </Operator><Lowercase Identifier>quotation</Lowercase Identifier><Operator>. (</Operator><Uppercase Identifier>Latin</Uppercase Identifier><Decimal>-1</Decimal><Operator> </Operator><Lowercase Identifier>identifier</Lowercase Identifier><Operator>.)>> ;</Operator><br/> 0100 <Operator> </Operator><Camlp4 Quotation><< A quote with an escape: </Camlp4 Quotation><Escaped Characters>\>></Escaped Characters><Camlp4 Quotation> (end-quote symbol) >></Camlp4 Quotation><Operator> ;</Operator><br/> 0101 <Operator> </Operator><Camlp4 Quotation><< A quote with an escape: </Camlp4 Quotation><Escaped Characters>\<<</Escaped Characters><Camlp4 Quotation> (plain start quote-symbol) >></Camlp4 Quotation><Operator> ;</Operator><br/> 0102 <Operator> </Operator><Camlp4 Quotation><< A quote with an escape: \<:Trouv�< (labelled start-quote symbol) >></Camlp4 Quotation><Operator> ;</Operator><br/> 0103 <Operator>];;</Operator><br/> 0104 <Operator></Operator><br/> 0105 <Comment>(* end *)</Comment><br/>