]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/erlang.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / erlang.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <MODE>
6         <PROPS>
7                 <PROPERTY NAME="lineComment" VALUE="%"/>
8         </PROPS>
9
10         <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
11                 <EOL_SPAN TYPE="COMMENT1">%</EOL_SPAN>
12
13                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="FALSE">
14                         <BEGIN>"</BEGIN>
15                         <END>"</END>
16                 </SPAN>
17
18                 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
19                         <BEGIN>'</BEGIN>
20                         <END>'</END>
21                 </SPAN>
22
23                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
24                 <SEQ TYPE="OPERATOR">)</SEQ>
25
26                 <MARK_PREVIOUS TYPE="LITERAL2" MATCH_TYPE="OPERATOR">:</MARK_PREVIOUS>
27
28                 <SEQ_REGEXP HASH_CHAR="$"
29                         TYPE="LITERAL3"
30                         AT_WORD_START="TRUE"
31                 >\$(\\.|.)</SEQ_REGEXP>
32
33                 <SEQ_REGEXP HASH_CHAR="?"
34                         TYPE="LABEL"
35                         AT_WORD_START="TRUE"
36                 >\?\w*</SEQ_REGEXP>
37
38                 <SEQ TYPE="LITERAL3">badarg</SEQ>
39                 <SEQ TYPE="LITERAL3">infinity</SEQ>
40                 <SEQ TYPE="LITERAL3">undefined</SEQ>
41                 <SEQ TYPE="LITERAL3">nocookie</SEQ>
42                 <SEQ TYPE="LITERAL3">false</SEQ>
43                 <SEQ TYPE="LITERAL3">true</SEQ>
44
45                 <SEQ TYPE="OPERATOR">-&gt;</SEQ>
46                 <SEQ TYPE="OPERATOR">&lt;-</SEQ>
47                 <SEQ TYPE="OPERATOR">.</SEQ>
48                 <SEQ TYPE="OPERATOR">;</SEQ>
49                 <SEQ TYPE="OPERATOR">=</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                 <!--
56                 <SEQ TYPE="OPERATOR">(</SEQ>
57                 <SEQ TYPE="OPERATOR">)</SEQ>
58                 -->
59                 <SEQ TYPE="OPERATOR">:</SEQ>
60                 <SEQ TYPE="OPERATOR">{</SEQ>
61                 <SEQ TYPE="OPERATOR">}</SEQ>
62                 <SEQ TYPE="OPERATOR">[</SEQ>
63                 <SEQ TYPE="OPERATOR">]</SEQ>
64                 <SEQ TYPE="OPERATOR">,</SEQ>
65                 <SEQ TYPE="OPERATOR">?</SEQ>
66                 <SEQ TYPE="OPERATOR">!</SEQ>
67
68                 <!-- div -->
69                 <SEQ_REGEXP HASH_CHAR="div"
70                         TYPE="OPERATOR"
71                         AT_WORD_START="TRUE"
72                 >\bdiv\b</SEQ_REGEXP>
73                 <!-- rem -->
74                 <SEQ_REGEXP HASH_CHAR="rem"
75                         TYPE="OPERATOR"
76                         AT_WORD_START="TRUE"
77                 >\brem\b</SEQ_REGEXP>
78                 <!-- or -->
79                 <SEQ_REGEXP HASH_CHAR="or"
80                         TYPE="OPERATOR"
81                         AT_WORD_START="TRUE"
82                 >\bor\b</SEQ_REGEXP>
83                 <!-- xor -->
84                 <SEQ_REGEXP HASH_CHAR="xor"
85                         TYPE="OPERATOR"
86                         AT_WORD_START="TRUE"
87                 >\bxor\b</SEQ_REGEXP>
88                 <!-- bor -->
89                 <SEQ_REGEXP HASH_CHAR="bor"
90                         TYPE="OPERATOR"
91                         AT_WORD_START="TRUE"
92                 >\bbor\b</SEQ_REGEXP>
93                 <!-- bxor -->
94                 <SEQ_REGEXP HASH_CHAR="bxor"
95                         TYPE="OPERATOR"
96                         AT_WORD_START="TRUE"
97                 >\bbxor\b</SEQ_REGEXP>
98                 <!-- bsl -->
99                 <SEQ_REGEXP HASH_CHAR="bsl"
100                         TYPE="OPERATOR"
101                         AT_WORD_START="TRUE"
102                 >\bbsl\b</SEQ_REGEXP>
103                 <!-- bsr -->
104                 <SEQ_REGEXP HASH_CHAR="bsr"
105                         TYPE="OPERATOR"
106                         AT_WORD_START="TRUE"
107                 >\bbsr\b</SEQ_REGEXP>
108                 <!-- and -->
109                 <SEQ_REGEXP HASH_CHAR="and"
110                         TYPE="OPERATOR"
111                         AT_WORD_START="TRUE"
112                 >\band\b</SEQ_REGEXP>
113                 <!-- band -->
114                 <SEQ_REGEXP HASH_CHAR="band"
115                         TYPE="OPERATOR"
116                         AT_WORD_START="TRUE"
117                 >\bband\b</SEQ_REGEXP>
118                 <!-- not -->
119                 <SEQ_REGEXP HASH_CHAR="not"
120                         TYPE="OPERATOR"
121                         AT_WORD_START="TRUE"
122                 >\bnot\b</SEQ_REGEXP>
123                 <!-- bnot -->
124                 <SEQ_REGEXP HASH_CHAR="bnot"
125                         TYPE="OPERATOR"
126                         AT_WORD_START="TRUE"
127                 >\bbnot\b</SEQ_REGEXP>
128                 <!-- andalso -->
129                 <SEQ_REGEXP HASH_CHAR="andalso"
130                         TYPE="OPERATOR"
131                         AT_WORD_START="TRUE"
132                 >\bandalso\b</SEQ_REGEXP>
133                 <!-- orelse -->
134                 <SEQ_REGEXP HASH_CHAR="orelse"
135                         TYPE="OPERATOR"
136                         AT_WORD_START="TRUE"
137                 >\borelse\b</SEQ_REGEXP>
138
139                 <KEYWORDS>
140                         <!-- keywords -->
141                         <KEYWORD1>after</KEYWORD1>
142                         <KEYWORD1>begin</KEYWORD1>
143                         <KEYWORD1>case</KEYWORD1>
144                         <KEYWORD1>catch</KEYWORD1>
145                         <KEYWORD1>cond</KEYWORD1>
146                         <KEYWORD1>end</KEYWORD1>
147                         <KEYWORD1>fun</KEYWORD1>
148                         <KEYWORD1>if</KEYWORD1>
149                         <KEYWORD1>let</KEYWORD1>
150                         <KEYWORD1>of</KEYWORD1>
151                         <KEYWORD1>query</KEYWORD1>
152                         <KEYWORD1>receive</KEYWORD1>
153                         <KEYWORD1>when</KEYWORD1>
154                         <KEYWORD1>try</KEYWORD1>
155
156                         <!-- built-in-functions BIFs -->
157                         <KEYWORD2>abs</KEYWORD2>
158                         <KEYWORD2>alive</KEYWORD2>
159                         <KEYWORD2>apply</KEYWORD2>
160                         <KEYWORD2>atom_to_list</KEYWORD2>
161                         <KEYWORD2>binary_to_list</KEYWORD2>
162                         <KEYWORD2>binary_to_term</KEYWORD2>
163                         <KEYWORD2>concat_binary</KEYWORD2>
164                         <KEYWORD2>date</KEYWORD2>
165                         <KEYWORD2>disconnect_node</KEYWORD2>
166                         <KEYWORD2>element</KEYWORD2>
167                         <KEYWORD2>erase</KEYWORD2>
168                         <KEYWORD2>exit</KEYWORD2>
169                         <KEYWORD2>float</KEYWORD2>
170                         <KEYWORD2>float_to_list</KEYWORD2>
171                         <KEYWORD2>get</KEYWORD2>
172                         <KEYWORD2>get_keys</KEYWORD2>
173                         <KEYWORD2>group_leader</KEYWORD2>
174                         <KEYWORD2>halt</KEYWORD2>
175                         <KEYWORD2>hd</KEYWORD2>
176                         <KEYWORD2>integer_to_list</KEYWORD2>
177                         <KEYWORD2>is_alive</KEYWORD2>
178                         <KEYWORD2>length</KEYWORD2>
179                         <KEYWORD2>link</KEYWORD2>
180                         <KEYWORD2>list_to_atom</KEYWORD2>
181                         <KEYWORD2>list_to_binary</KEYWORD2>
182                         <KEYWORD2>list_to_float</KEYWORD2>
183                         <KEYWORD2>list_to_integer</KEYWORD2>
184                         <KEYWORD2>list_to_pid</KEYWORD2>
185                         <KEYWORD2>list_to_tuple</KEYWORD2>
186                         <KEYWORD2>load_module</KEYWORD2>
187                         <KEYWORD2>make_ref</KEYWORD2>
188                         <KEYWORD2>monitor_node</KEYWORD2>
189                         <KEYWORD2>node</KEYWORD2>
190                         <KEYWORD2>nodes</KEYWORD2>
191                         <KEYWORD2>now</KEYWORD2>
192                         <KEYWORD2>open_port</KEYWORD2>
193                         <KEYWORD2>pid_to_list</KEYWORD2>
194                         <KEYWORD2>process_flag</KEYWORD2>
195                         <KEYWORD2>process_info</KEYWORD2>
196                         <KEYWORD2>process</KEYWORD2>
197                         <KEYWORD2>put</KEYWORD2>
198                         <KEYWORD2>register</KEYWORD2>
199                         <KEYWORD2>registered</KEYWORD2>
200                         <KEYWORD2>round</KEYWORD2>
201                         <KEYWORD2>self</KEYWORD2>
202                         <KEYWORD2>setelement</KEYWORD2>
203                         <KEYWORD2>size</KEYWORD2>
204                         <KEYWORD2>spawn</KEYWORD2>
205                         <KEYWORD2>spawn_link</KEYWORD2>
206                         <KEYWORD2>split_binary</KEYWORD2>
207                         <KEYWORD2>statistics</KEYWORD2>
208                         <KEYWORD2>term_to_binary</KEYWORD2>
209                         <KEYWORD2>throw</KEYWORD2>
210                         <KEYWORD2>time</KEYWORD2>
211                         <KEYWORD2>tl</KEYWORD2>
212                         <KEYWORD2>trunc</KEYWORD2>
213                         <KEYWORD2>tuple_to_list</KEYWORD2>
214                         <KEYWORD2>unlink</KEYWORD2>
215                         <KEYWORD2>unregister</KEYWORD2>
216                         <KEYWORD2>whereis</KEYWORD2>
217
218                         <!-- other BIFs -->
219                         <KEYWORD2>atom</KEYWORD2>
220                         <KEYWORD2>binary</KEYWORD2>
221                         <KEYWORD2>constant</KEYWORD2>
222                         <KEYWORD2>function</KEYWORD2>
223                         <KEYWORD2>integer</KEYWORD2>
224                         <KEYWORD2>list</KEYWORD2>
225                         <KEYWORD2>number</KEYWORD2>
226                         <KEYWORD2>pid</KEYWORD2>
227                         <KEYWORD2>ports</KEYWORD2>
228                         <KEYWORD2>port_close</KEYWORD2>
229                         <KEYWORD2>port_info</KEYWORD2>
230                         <KEYWORD2>reference</KEYWORD2>
231                         <KEYWORD2>record</KEYWORD2>
232
233                         <!-- erlang:BIFs -->
234                         <KEYWORD2>check_process_code</KEYWORD2>
235                         <KEYWORD2>delete_module</KEYWORD2>
236                         <KEYWORD2>get_cookie</KEYWORD2>
237                         <KEYWORD2>hash</KEYWORD2>
238                         <KEYWORD2>math</KEYWORD2>
239                         <KEYWORD2>module_loaded</KEYWORD2>
240                         <KEYWORD2>preloaded</KEYWORD2>
241                         <KEYWORD2>processes</KEYWORD2>
242                         <KEYWORD2>purge_module</KEYWORD2>
243                         <KEYWORD2>set_cookie</KEYWORD2>
244                         <KEYWORD2>set_node</KEYWORD2>
245
246                         <!-- math functions -->
247                         <KEYWORD2>acos</KEYWORD2>
248                         <KEYWORD2>asin</KEYWORD2>
249                         <KEYWORD2>atan</KEYWORD2>
250                         <KEYWORD2>atan2</KEYWORD2>
251                         <KEYWORD2>cos</KEYWORD2>
252                         <KEYWORD2>cosh</KEYWORD2>
253                         <KEYWORD2>exp</KEYWORD2>
254                         <KEYWORD2>log</KEYWORD2>
255                         <KEYWORD2>log10</KEYWORD2>
256                         <KEYWORD2>pi</KEYWORD2>
257                         <KEYWORD2>pow</KEYWORD2>
258                         <KEYWORD2>power</KEYWORD2>
259                         <KEYWORD2>sin</KEYWORD2>
260                         <KEYWORD2>sinh</KEYWORD2>
261                         <KEYWORD2>sqrt</KEYWORD2>
262                         <KEYWORD2>tan</KEYWORD2>
263                         <KEYWORD2>tanh</KEYWORD2>
264
265                         <!-- directives -->
266                         <KEYWORD3>-behaviour</KEYWORD3>
267                         <KEYWORD3>-compile</KEYWORD3>
268                         <KEYWORD3>-define</KEYWORD3>
269                         <KEYWORD3>-else</KEYWORD3>
270                         <KEYWORD3>-endif</KEYWORD3>
271                         <KEYWORD3>-export</KEYWORD3>
272                         <KEYWORD3>-file</KEYWORD3>
273                         <KEYWORD3>-ifdef</KEYWORD3>
274                         <KEYWORD3>-ifndef</KEYWORD3>
275                         <KEYWORD3>-import</KEYWORD3>
276                         <KEYWORD3>-include</KEYWORD3>
277                         <KEYWORD3>-include_lib</KEYWORD3>
278                         <KEYWORD3>-module</KEYWORD3>
279                         <KEYWORD3>-record</KEYWORD3>
280                         <KEYWORD3>-undef</KEYWORD3>
281                 </KEYWORDS>
282
283         </RULES>
284 </MODE>