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