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/>