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