my blog lives here now
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

190 lines
9.1 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!-- Kate syntax highlighting for Objective Caml version 4.02 in the standard and revised syntaxes, with Ocamldoc comments. -->
<!DOCTYPE language SYSTEM "language.dtd"
[
<!-- Regular expresion constants: -->
<!ENTITY LOWER "a-z\300-\326\330-\337"> <!-- Lowercase Latin-1 letters. -->
<!ENTITY UPPER "A-Z\340-\366\370-\377"> <!-- Uppercase Latin-1 letters. -->
<!ENTITY LETTER "&LOWER;&UPPER;"> <!-- All Latin-1 letters. -->
<!ENTITY LIDENT "[&LOWER;_][&LETTER;0-9_']*"> <!-- Lowercase OCaml identifiers. -->
<!ENTITY UIDENT "`?[&UPPER;][&LETTER;0-9_']*"> <!-- Uppercase OCaml identifiers. -->
<!ENTITY IDENT "`?[&LETTER;][&LETTER;0-9_']*"> <!-- All OCaml identifiers. -->
<!ENTITY ESC "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
<!ENTITY DEC "[0-9][0-9_]*"> <!-- Decimal digits with underscores. -->
<!ENTITY INFIX "[:!#$%&amp;*+\\/<=>?@^|-~][:!#$%&amp;*+\\/<=>?@^|-~\.]*">
]>
<language name="amc-prove"
extensions="*.ml;*.mli"
mimetype="text/x-amc-prove"
section="Sources"
version="6"
priority="10"
kateversion="2.4"
author="Abigail Magalhães ([email protected])"
license="LGPL" >
<highlighting>
<list name="Keywords">
<item>forall</item>
<item>fun</item>
<item>function</item>
<item>lazy</item>
<item>match</item>
<item>not</item>
<item>yes</item>
<item>probably</item>
</list>
<list name="Boolean Literals">
<item>tt</item>
<item>ff</item>
</list>
<list name="Pervasive Functions">
</list>
<list name="Pervasive Types">
</list>
<list name="Standard Library Modules">
<item>Amc</item>
</list>
<contexts>
<context name="Code" lineEndContext="#stay" attribute="Normal">
<!-- ] and ]} close code samples in Ocamldoc, so -->
<!-- nested [ ] and { } brackets have to be allowed for: -->
<DetectChar char="[" context="Nested Code 1" attribute="Normal" />
<DetectChar char="{" context="Nested Code 2" attribute="Normal" />
<!-- Comments. -->
<!-- A (** begins a special comment with Ocamldoc documentation markup. -->
<Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
<!-- Interpreter directives. -->
<!-- (These are lines where the first symbol is a '#' followed by an identifier. -->
<!-- Such lines could also be part of a method call split over two lines but -->
<!-- it's unlikey anyone would code like that.) -->
<!-- String, character and Camlp4 "quotation" constants. -->
<!-- Note: If you must modify the pattern for characters be precise: -->
<!-- single quotes have several meanings in Ocaml. -->
<DetectChar char="&quot;" context="String" attribute="String" />
<RegExpr String="'(&ESC;|[^'])'" context="#stay" attribute="Character" />
<!-- Identifiers and keywords. -->
<keyword String="Keywords" context="#stay" attribute="Keyword" />
<keyword String="Pervasive Functions" context="#stay" attribute="Pervasive Functions" />
<keyword String="Pervasive Types" context="#stay" attribute="Pervasive Types" />
<keyword String="Standard Library Modules" context="#stay" attribute="Standard Library Modules" />
<keyword String="Boolean Literals" context="#stay" attribute="Boolean Literals" />
<RegExpr String="&LIDENT;" context="#stay" attribute="Lowercase Identifier" />
<RegExpr String="&UIDENT;" context="#stay" attribute="Uppercase Identifier" />
<RegExpr String="'&LIDENT;" context="#stay" attribute="Type Variable" />
<RegExpr String="[\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]+"
context="#stay" attribute="Infix Operator" />
<!-- Numeric constants. -->
<!-- Note that they may contain underscores. -->
<RegExpr String="-?0[xX][0-9A-Fa-f_]+" context="#stay" attribute="Hexadecimal" />
<RegExpr String="-?0[oO][0-7_]+" context="#stay" attribute="Octal" />
<RegExpr String="-?0[bB][01_]+" context="#stay" attribute="Binary" />
<RegExpr String="-?&DEC;(\.&DEC;([eE][-+]?&DEC;)?|[eE][-+]?&DEC;)" context="#stay" attribute="Float" />
<RegExpr String="-?&DEC;" context="#stay" attribute="Decimal" />
<IncludeRules context="Unmatched Closing Brackets" />
</context>
<context name="Nested Code 1" lineEndContext="#stay" attribute="Normal">
<DetectChar char="]" context="#pop" attribute="Normal" />
<IncludeRules context="Code" includeAttrib="true" />
</context>
<context name="Nested Code 2" lineEndContext="#stay" attribute="Normal">
<DetectChar char="}" context="#pop" attribute="Normal" />
<IncludeRules context="Code" includeAttrib="true" />
</context>
<context name="String" lineEndContext="#stay" attribute="String">
<DetectChar char="&quot;" context="#pop" attribute="String" />
<RegExpr String="&ESC;" context="#stay" attribute="Escaped Characters" />
<!-- A backslash at the end of a line in a string indicates -->
<!-- that the string will continue on the next line: -->
<RegExpr String="\\$" context="#stay" attribute="Escaped Characters" />
</context>
<context name="Comment" lineEndContext="#stay" attribute="Comment">
<Detect2Chars char="*" char1=")" context="#pop" attribute="Comment" endRegion="comment" />
<!-- Support for nested comments: -->
<Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
<!-- Strings in Ocaml comments must be well-formed: -->
<DetectChar char="&quot;" context="String in Comment" attribute="String in Comment" />
</context>
<context name="String in Comment" lineEndContext="#stay" attribute="String in Comment">
<DetectChar char="&quot;" context="#pop" attribute="String in Comment" />
<IncludeRules context="String" />
</context>
<!-- Unmatched closing brackets- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<context name="Unmatched Closing Brackets" lineEndContext="#stay" attribute="Normal">
<Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
<Detect2Chars char="v" char1="}" context="#stay" attribute="Mismatched Brackets" />
<Detect2Chars char="]" char1="}" context="#stay" attribute="Mismatched Brackets" />
<Detect2Chars char="%" char1="}" context="#stay" attribute="Mismatched Brackets" />
<DetectChar char="]" context="#stay" attribute="Mismatched Brackets" />
<DetectChar char="}" context="#stay" attribute="Mismatched Brackets" />
</context>
</contexts>
<itemDatas>
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="Normal" defStyleNum="dsNormal" />
<itemData name="Infix Operator" defStyleNum="dsOperator" />
<itemData name="Uppercase Identifier" defStyleNum="dsDataType" italic="true" />
<itemData name="Lowercase Identifier" defStyleNum="dsVariable" />
<!-- Lowercase pervasive identifiers: -->
<itemData name="Pervasive Functions" defStyleNum="dsFunction" />
<itemData name="Pervasive Types" defStyleNum="dsDataType" />
<!-- Type variables -->
<itemData name="Type Variable" defStyleNum="dsSpecialString" />
<!-- Uppercase pervasive identifiers: -->
<itemData name="Standard Library Modules" defStyleNum="dsDataType" italic="true" />
<itemData name="Boolean Literals" defStyleNum="dsConstant" />
<itemData name="Decimal" defStyleNum="dsDecVal" />
<itemData name="Hexadecimal" defStyleNum="dsBaseN" />
<itemData name="Octal" defStyleNum="dsBaseN" />
<itemData name="Binary" defStyleNum="dsBaseN" />
<itemData name="Float" defStyleNum="dsFloat" />
<itemData name="Character" defStyleNum="dsChar" />
<itemData name="String" defStyleNum="dsString" />
<itemData name="Escaped Characters" defStyleNum="dsChar" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="String in Comment" defStyleNum="dsComment" bold="true" />
<itemData name="Mismatched Brackets" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="true" />
<comments>
<comment name="multiLine" start="(*" end="*)" region ="comment" />
</comments>
</general>
</language>
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->