/jEdit/tags/jedit-4-3-pre16/modes/ml.xml

# · XML · 211 lines · 164 code · 25 blank · 22 comment · 0 complexity · 7a6ae669754193f6189f626750110a55 MD5 · raw file

  1. <?xml version="1.0"?>
  2. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  3. <!-- SML MODE 1.0 by Lucas Dixon, based on Ingmar Stein's ml mode -->
  4. <MODE>
  5. <PROPS>
  6. <PROPERTY NAME="commentStart" VALUE="(*"/>
  7. <PROPERTY NAME="commentEnd" VALUE="*)"/>
  8. <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*\\/(){}" />
  9. <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
  10. <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
  11. <!-- <PROPERTY NAME="unalignedOpenBrackets" VALUE="([{" />
  12. <PROPERTY NAME="unalignedCloseBrackets" VALUE=")]}" /> -->
  13. <PROPERTY NAME="indentOpenBrackets" VALUE="([{" />
  14. <PROPERTY NAME="indentCloseBrackets" VALUE=")]}" />
  15. <PROPERTY NAME="indentNextLines"
  16. VALUE="(^|.*\s+)(let|sig|struct|local)(\W+.*|)$" />
  17. <PROPERTY NAME="unindentNextLines"
  18. VALUE="(^|.*\s+)(end)(\W+.*|)$" />
  19. <PROPERTY NAME="unindentThisLine"
  20. VALUE="(^|\s+)(local|val|fun|end|in|open)(\W+.*|)$" />
  21. </PROPS>
  22. <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
  23. <!-- comments -->
  24. <SPAN TYPE="COMMENT1">
  25. <BEGIN>(*</BEGIN>
  26. <END>*)</END>
  27. </SPAN>
  28. <!-- character literals -->
  29. <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  30. <BEGIN>#"</BEGIN>
  31. <END>"</END>
  32. </SPAN>
  33. <!-- string literals -->
  34. <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  35. <BEGIN>"</BEGIN>
  36. <END>"</END>
  37. </SPAN>
  38. <!-- built-in operators -->
  39. <!-- infix precedence 7 -->
  40. <SEQ TYPE="OPERATOR">/</SEQ>
  41. <SEQ TYPE="OPERATOR">*</SEQ>
  42. <!-- reserved & operator characters -->
  43. <SEQ TYPE="OPERATOR">+</SEQ>
  44. <SEQ TYPE="OPERATOR">-</SEQ>
  45. <SEQ TYPE="OPERATOR">^</SEQ>
  46. <SEQ TYPE="OPERATOR">@</SEQ>
  47. <SEQ TYPE="OPERATOR">=</SEQ>
  48. <SEQ TYPE="OPERATOR">&lt;</SEQ>
  49. <SEQ TYPE="OPERATOR">&gt;</SEQ>
  50. <SEQ TYPE="OPERATOR">(</SEQ>
  51. <SEQ TYPE="OPERATOR">)</SEQ>
  52. <SEQ TYPE="OPERATOR">[</SEQ>
  53. <SEQ TYPE="OPERATOR">]</SEQ>
  54. <SEQ TYPE="OPERATOR">{</SEQ>
  55. <SEQ TYPE="OPERATOR">}</SEQ>
  56. <SEQ TYPE="OPERATOR">,</SEQ>
  57. <SEQ TYPE="OPERATOR">:</SEQ>
  58. <SEQ TYPE="OPERATOR">;</SEQ>
  59. <SEQ TYPE="OPERATOR">|</SEQ>
  60. <SEQ TYPE="OPERATOR">#</SEQ>
  61. <MARK_FOLLOWING TYPE="FUNCTION"
  62. MATCH_TYPE="KEYWORD1">fun </MARK_FOLLOWING>
  63. <MARK_FOLLOWING TYPE="FUNCTION"
  64. MATCH_TYPE="KEYWORD1">val </MARK_FOLLOWING>
  65. <MARK_FOLLOWING TYPE="FUNCTION"
  66. MATCH_TYPE="KEYWORD1">exception </MARK_FOLLOWING>
  67. <MARK_FOLLOWING TYPE="FUNCTION"
  68. MATCH_TYPE="KEYWORD1">type </MARK_FOLLOWING>
  69. <MARK_FOLLOWING TYPE="FUNCTION"
  70. MATCH_TYPE="KEYWORD1">abstype </MARK_FOLLOWING>
  71. <MARK_FOLLOWING TYPE="FUNCTION"
  72. MATCH_TYPE="KEYWORD1">eqtype </MARK_FOLLOWING>
  73. <MARK_FOLLOWING TYPE="FUNCTION"
  74. MATCH_TYPE="KEYWORD1">datatype </MARK_FOLLOWING>
  75. <MARK_FOLLOWING TYPE="LITERAL3"
  76. MATCH_TYPE="KEYWORD1">functor </MARK_FOLLOWING>
  77. <MARK_FOLLOWING TYPE="LITERAL3"
  78. MATCH_TYPE="KEYWORD1">structure </MARK_FOLLOWING>
  79. <MARK_FOLLOWING TYPE="LITERAL3"
  80. MATCH_TYPE="KEYWORD1">signature </MARK_FOLLOWING>
  81. <!-- reserved words -->
  82. <KEYWORDS>
  83. <!-- built-in operators -->
  84. <!-- infix precedence 7 -->
  85. <OPERATOR>div</OPERATOR>
  86. <OPERATOR>mod</OPERATOR>
  87. <!-- infix precedence 3 -->
  88. <OPERATOR>o</OPERATOR>
  89. <!-- infix precedence 0 -->
  90. <OPERATOR>before</OPERATOR>
  91. <!-- type def -->
  92. <KEYWORD1>abstype</KEYWORD1>
  93. <KEYWORD1>datatype</KEYWORD1>
  94. <KEYWORD1>eqtype</KEYWORD1>
  95. <KEYWORD1>type</KEYWORD1>
  96. <!-- value definitions -->
  97. <KEYWORD1>exception</KEYWORD1>
  98. <KEYWORD1>fun</KEYWORD1>
  99. <KEYWORD1>val</KEYWORD1>
  100. <KEYWORD1>fn</KEYWORD1>
  101. <!-- generic definitional -->
  102. <KEYWORD1>and</KEYWORD1>
  103. <KEYWORD1>end</KEYWORD1>
  104. <KEYWORD1>in</KEYWORD1>
  105. <KEYWORD1>infix</KEYWORD1>
  106. <KEYWORD1>infixr</KEYWORD1>
  107. <KEYWORD1>let</KEYWORD1>
  108. <KEYWORD1>local</KEYWORD1>
  109. <KEYWORD1>as</KEYWORD1>
  110. <KEYWORD1>of</KEYWORD1>
  111. <KEYWORD1>op</KEYWORD1>
  112. <!-- module level -->
  113. <KEYWORD1>functor</KEYWORD1>
  114. <KEYWORD1>include</KEYWORD1>
  115. <KEYWORD1>open</KEYWORD1>
  116. <KEYWORD1>sharing</KEYWORD1>
  117. <KEYWORD1>sig</KEYWORD1>
  118. <KEYWORD1>signature</KEYWORD1>
  119. <KEYWORD1>struct</KEYWORD1>
  120. <KEYWORD1>structure</KEYWORD1>
  121. <KEYWORD1>where</KEYWORD1>
  122. <KEYWORD1>with</KEYWORD1>
  123. <!-- logic/control flow -->
  124. <KEYWORD1>andalso</KEYWORD1>
  125. <KEYWORD1>orelse</KEYWORD1>
  126. <KEYWORD1>else</KEYWORD1>
  127. <KEYWORD1>if</KEYWORD1>
  128. <KEYWORD1>case</KEYWORD1>
  129. <KEYWORD1>handle</KEYWORD1>
  130. <KEYWORD1>raise</KEYWORD1>
  131. <KEYWORD1>then</KEYWORD1>
  132. <!--- other -->
  133. <KEYWORD1>do</KEYWORD1>
  134. <KEYWORD1>nonfix</KEYWORD1>
  135. <KEYWORD1>rec</KEYWORD1>
  136. <KEYWORD1>withtype</KEYWORD1>
  137. <KEYWORD1>while</KEYWORD1>
  138. <!-- built-in types -->
  139. <KEYWORD3>array</KEYWORD3>
  140. <KEYWORD3>bool</KEYWORD3>
  141. <KEYWORD3>char</KEYWORD3>
  142. <KEYWORD3>exn</KEYWORD3>
  143. <KEYWORD3>frag</KEYWORD3>
  144. <KEYWORD3>int</KEYWORD3>
  145. <KEYWORD3>list</KEYWORD3>
  146. <KEYWORD3>option</KEYWORD3>
  147. <KEYWORD3>order</KEYWORD3>
  148. <KEYWORD3>real</KEYWORD3>
  149. <KEYWORD3>ref</KEYWORD3>
  150. <KEYWORD3>string</KEYWORD3>
  151. <KEYWORD3>substring</KEYWORD3>
  152. <KEYWORD3>unit</KEYWORD3>
  153. <KEYWORD3>vector</KEYWORD3>
  154. <KEYWORD3>word</KEYWORD3>
  155. <KEYWORD3>word8</KEYWORD3>
  156. <!-- build-in exception constructors -->
  157. <KEYWORD2>Bind</KEYWORD2>
  158. <KEYWORD2>Chr</KEYWORD2>
  159. <KEYWORD2>Domain</KEYWORD2>
  160. <KEYWORD2>Div</KEYWORD2>
  161. <KEYWORD2>Fail</KEYWORD2>
  162. <KEYWORD2>Graphic</KEYWORD2>
  163. <KEYWORD2>Interrupt</KEYWORD2>
  164. <KEYWORD2>Io</KEYWORD2>
  165. <KEYWORD2>Match</KEYWORD2>
  166. <KEYWORD2>Option</KEYWORD2>
  167. <KEYWORD2>Ord</KEYWORD2>
  168. <KEYWORD2>Overflow</KEYWORD2>
  169. <KEYWORD2>Size</KEYWORD2>
  170. <KEYWORD2>Subscript</KEYWORD2>
  171. <KEYWORD2>SysErr</KEYWORD2>
  172. <!-- built-in literals -->
  173. <LITERAL2>false</LITERAL2>
  174. <LITERAL2>true</LITERAL2>
  175. <LITERAL2>QUOTE</LITERAL2>
  176. <LITERAL2>ANTIQUOTE</LITERAL2>
  177. <LITERAL2>nil</LITERAL2>
  178. <LITERAL2>NONE</LITERAL2>
  179. <LITERAL2>SOME</LITERAL2>
  180. <LITERAL2>LESS</LITERAL2>
  181. <LITERAL2>EQUAL</LITERAL2>
  182. <LITERAL2>GREATER</LITERAL2>
  183. </KEYWORDS>
  184. </RULES>
  185. </MODE>