]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/logtalk.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / logtalk.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--    jEdit 4.3 Logtalk syntax file
6
7         written by              Paulo Moura
8         version                 1.93
9         created on              5 May 2002
10         last revised    23 January 2010
11
12         To install, copy this file to the "modes" subdirectory in jEdit 
13         directory installation.   Next, check the "catalog" file in the 
14         same subdirectory and add (if not present) the following entry:
15         
16         <MODE NAME="logtalk" FILE="logtalk.xml" FILE_NAME_GLOB="*.{lgt}" />
17 -->
18
19 <MODE>
20
21         <PROPS>
22                 <PROPERTY NAME="lineComment" VALUE="%" />
23                 <PROPERTY NAME="commentStart" VALUE="/*" />
24                 <PROPERTY NAME="commentEnd" VALUE="*/" />
25                 <PROPERTY NAME="tabSize" VALUE="4" />
26                 <PROPERTY NAME="indentSize" VALUE="4" />
27         <!-- Auto indent -->
28         <PROPERTY NAME="indentNextLine" VALUE="((^\s*:-\s(object|protocol|category)\(.*,$)|.*\s:-$)" />
29         </PROPS>
30
31         <RULES SET="MAIN" IGNORE_CASE="FALSE">
32         
33                 <!-- Comments -->
34                 <EOL_SPAN TYPE="COMMENT1">%</EOL_SPAN>
35                 <SPAN TYPE="COMMENT1" NO_LINE_BREAK="FALSE">
36                         <BEGIN>/*</BEGIN>
37                         <END>*/</END>
38                 </SPAN>
39
40                 <!-- Entity directives -->
41                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\s(category|object|protocol)(?=[(])</SEQ_REGEXP>
42                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\send_(category|object|protocol)(?=[.])</SEQ_REGEXP>
43                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\smodule(?=[(])</SEQ_REGEXP>
44                 <!-- Predicate scope directives -->
45                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\sp(ublic|r(otected|ivate))(?=[(])</SEQ_REGEXP>
46                 <!-- Conditional compilation directives -->
47                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\s(el)?if(?=[(])</SEQ_REGEXP>
48                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\se(lse|ndif)(?=[.])</SEQ_REGEXP>
49                 <!-- Other directives -->
50                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\se(n(coding|sure_loaded)|xport)(?=[(])</SEQ_REGEXP>
51                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\sin(fo|itialization)(?=[(])</SEQ_REGEXP>
52                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\s(dynamic|synchronized|threaded)(?=[.])</SEQ_REGEXP>
53                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\s(alias|d(ynamic|iscontiguous)|m(eta_predicate|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])</SEQ_REGEXP>
54                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\sop(?=[(])</SEQ_REGEXP>
55                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">^\s*:-\s(calls|reexport|use(s|_module))(?=[(])</SEQ_REGEXP>
56                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1">(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])</SEQ_REGEXP>
57
58                 <!-- Event handlers -->
59                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(after|before)(?=[(])</SEQ_REGEXP>
60                 <!-- Method execution context -->
61                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(parameter|this|se(lf|nder))(?=[(])</SEQ_REGEXP>
62                 <!-- Reflection -->
63                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current_predicate|predicate_property)(?=[(])</SEQ_REGEXP>
64                 <!-- DCGs -->
65                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])</SEQ_REGEXP>
66                 <!-- Entity -->
67                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])</SEQ_REGEXP>
68                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(object|protocol|category)_property(?=[(])</SEQ_REGEXP>
69                 <!-- Entity relations -->
70                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bcomplements_object(?=[(])</SEQ_REGEXP>
71                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bextends_(object|protocol|category)(?=[(])</SEQ_REGEXP>
72                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bimp(lements_protocol|orts_category)(?=[(])</SEQ_REGEXP>
73                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(instantiat|specializ)es_class(?=[(])</SEQ_REGEXP>
74                 <!-- Events -->
75                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current_event|(abolish|define)_events)(?=[(])</SEQ_REGEXP>
76                 <!-- Flags -->
77                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current|set)_logtalk_flag(?=[(])</SEQ_REGEXP>
78                 <!-- Compiling, loading, and library paths -->
79                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\blogtalk_(compile|l(ibrary_path|oad))(?=[(])</SEQ_REGEXP>
80                 <!-- Database -->
81                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(clause|retract(all)?)(?=[(])</SEQ_REGEXP>
82                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\ba(bolish|ssert(a|z))(?=[(])</SEQ_REGEXP>
83                 <!-- Control -->
84                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(ca(ll|tch)|throw)(?=[(])</SEQ_REGEXP>
85                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(fail|true)\b</SEQ_REGEXP>
86                 <!-- All solutions -->
87                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b((bag|set)of|f(ind|or)all)(?=[(])</SEQ_REGEXP>
88                 <!-- Multi-threading meta-predicates -->
89                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bthreaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])</SEQ_REGEXP>
90                 <!-- Term unification -->
91                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bunify_with_occurs_check(?=[(])</SEQ_REGEXP>
92                 <!-- Term creation and decomposition -->
93                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(functor|arg|copy_term)(?=[(])</SEQ_REGEXP>
94                 <!-- Evaluable functors -->
95                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(rem|mod|abs|sign)(?=[(])</SEQ_REGEXP>
96                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bfloat(_(integer|fractional)_part)?(?=[(])</SEQ_REGEXP>
97                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(floor|truncate|round|ceiling)(?=[(])</SEQ_REGEXP>
98                 <!-- Other arithmetic functors -->
99                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(cos|atan|exp|log|s(in|qrt))(?=[(])</SEQ_REGEXP>
100                 <!-- Term testing -->
101                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(var|atom(ic)?|integer|float|compound|n(onvar|umber))(?=[(])</SEQ_REGEXP>
102                 <!-- Stream selection and control -->
103                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current|set)_(in|out)put(?=[(])</SEQ_REGEXP>
104                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(open|close)(?=[(])</SEQ_REGEXP>
105                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bflush_output(?=[(])</SEQ_REGEXP>
106                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(flush_output|at_end_of_stream)\b</SEQ_REGEXP>
107                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(stream_property|at_end_of_stream|set_stream_position)(?=[(])</SEQ_REGEXP>
108                 <!-- Character and byte input/output -->
109                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])</SEQ_REGEXP>
110                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bnl\b</SEQ_REGEXP>
111                 <!-- Term input/output -->
112                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bread(_term)?(?=[(])</SEQ_REGEXP>
113                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bwrite(q|_(canonical|term))?(?=[(])</SEQ_REGEXP>
114                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current_)?op(?=[(])</SEQ_REGEXP>
115                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(current_)?char_conversion(?=[(])</SEQ_REGEXP>
116                 <!-- Atomic term processing -->
117                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\batom_(length|c(hars|o(ncat|des)))(?=[(])</SEQ_REGEXP>
118                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(char_code|sub_atom)(?=[(])</SEQ_REGEXP>
119                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bnumber_c(hars|odes)(?=[(])</SEQ_REGEXP>
120                 <!-- Implementation defined hooks functions -->
121                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\b(set|current)_prolog_flag(?=[(])</SEQ_REGEXP>
122                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bhalt\b</SEQ_REGEXP>
123                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bhalt(?=[(])</SEQ_REGEXP>
124                 <!-- Logic and control -->
125                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\bonce(?=[(])</SEQ_REGEXP>
126                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2">\brepeat\b</SEQ_REGEXP>
127
128                 <!-- Variables -->
129                 <SEQ_REGEXP HASH_CHARS="_ABCDEFGHIJKLMNOPQRSTUVWXYZ" AT_WORD_START="TRUE" TYPE="MARKUP">[_A-Z]+[a-zA-Z0-9]*</SEQ_REGEXP>
130
131                 <!-- String literals -->
132                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
133                         <BEGIN>'</BEGIN>
134                         <END>'</END>
135                 </SPAN>
136                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
137                         <BEGIN>"</BEGIN>
138                         <END>"</END>
139                 </SPAN>
140
141                 <!-- External call -->
142                 <SPAN TYPE="OPERATOR" DELEGATE="MAIN">
143                         <BEGIN>{</BEGIN>
144                         <END>}</END>
145                 </SPAN>
146
147                 <!-- Character code constants -->
148                 <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="0" TYPE="DIGIT">0'.</SEQ_REGEXP>
149                 <!-- Binary, octal, and hexadecimal numbers -->
150                 <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="0" TYPE="DIGIT">0b[0-1]+</SEQ_REGEXP>
151                 <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="0" TYPE="DIGIT">0o[0-7]+</SEQ_REGEXP>
152                 <SEQ_REGEXP AT_WORD_START="TRUE" HASH_CHAR="0" TYPE="DIGIT">0x\p{XDigit}+</SEQ_REGEXP>
153                 <!-- Numbers -->
154                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="DIGIT">\d+(\.\d+)?([eE]([-+])?\d+)?</SEQ_REGEXP>
155
156                 <!-- Logtalk message sending operators -->
157                 <SEQ TYPE="OPERATOR">::</SEQ>
158                 <SEQ TYPE="OPERATOR">^^</SEQ>
159
160                 <!-- Other Logtalk control construct operators -->
161                 <SEQ_REGEXP TYPE="OPERATOR">:(?![:-])</SEQ_REGEXP>
162
163                 <!-- Control constructs -->
164                 <SEQ TYPE="OPERATOR">!</SEQ>
165                 <SEQ TYPE="OPERATOR">,</SEQ>
166                 <SEQ TYPE="OPERATOR">;</SEQ>
167                 <SEQ TYPE="OPERATOR">--&gt;</SEQ>
168                 <SEQ TYPE="OPERATOR">-&gt;</SEQ>
169
170                 <!-- Term unification -->
171                 <SEQ TYPE="OPERATOR">=</SEQ>
172                 <SEQ TYPE="OPERATOR">\=</SEQ>
173
174                 <!-- Term comparison -->
175                 <SEQ TYPE="OPERATOR">@=&lt;</SEQ>
176                 <SEQ TYPE="OPERATOR">==</SEQ>
177                 <SEQ TYPE="OPERATOR">\==</SEQ>
178                 <SEQ TYPE="OPERATOR">@&lt;</SEQ>
179                 <SEQ TYPE="OPERATOR">@&gt;</SEQ>
180                 <SEQ TYPE="OPERATOR">@&gt;=</SEQ>
181
182                 <!-- Term creation and decomposition -->
183                 <SEQ TYPE="OPERATOR">=..</SEQ>
184
185                 <!-- Arithemtic evaluation -->
186                 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="OPERATOR">\bis\b</SEQ_REGEXP>
187
188                 <!-- Arithemtic comparison -->
189                 <SEQ TYPE="OPERATOR">=:=</SEQ>
190                 <SEQ TYPE="OPERATOR">=\=</SEQ>
191                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
192                 <SEQ TYPE="OPERATOR">=&lt;</SEQ>
193                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
194                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
195
196                 <!-- Logic and control -->
197                 <SEQ TYPE="OPERATOR">\+</SEQ>
198
199                 <!-- Evaluable functors -->
200                 <SEQ TYPE="OPERATOR">+</SEQ>
201                 <SEQ TYPE="OPERATOR">-</SEQ>
202                 <SEQ TYPE="OPERATOR">*</SEQ>
203                 <SEQ TYPE="OPERATOR">//</SEQ>
204                 <SEQ TYPE="OPERATOR">/</SEQ>
205
206                 <!-- Other arithemtic functors -->
207                 <SEQ TYPE="OPERATOR">**</SEQ>
208
209                 <!-- Bitwise functors -->
210                 <SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>
211                 <SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>
212                 <SEQ TYPE="OPERATOR">/\</SEQ>
213                 <SEQ TYPE="OPERATOR">\/</SEQ>
214                 <SEQ TYPE="OPERATOR">\</SEQ>
215
216                 <!-- Clause operators -->
217                 <SEQ TYPE="OPERATOR">.</SEQ>
218                 <SEQ_REGEXP TYPE="OPERATOR">\s:-($|\s)</SEQ_REGEXP>
219
220                 <!-- Mode operators -->
221                 <SEQ TYPE="OPERATOR">+</SEQ>    
222                 <SEQ TYPE="OPERATOR">-</SEQ>
223                 <SEQ TYPE="OPERATOR">?</SEQ>
224                 <SEQ TYPE="OPERATOR">@</SEQ>
225
226                 <!-- Existential quantifier operator -->
227                 <SEQ TYPE="OPERATOR">^</SEQ>    
228
229                 <KEYWORDS> <!-- just for code completion to work! -->
230
231                         <NULL>abolish</NULL>
232                         <NULL>abolish_category</NULL>
233                         <NULL>abolish_events</NULL>
234                         <NULL>abolish_object</NULL>
235                         <NULL>abolish_protocol</NULL>
236                         <NULL>after</NULL>
237                         <NULL>alias</NULL>
238                         <NULL>arg</NULL>
239                         <NULL>asserta</NULL>
240                         <NULL>assertz</NULL>
241                         <NULL>atom</NULL>
242                         <NULL>atomic</NULL>
243                         <NULL>atom_chars</NULL>
244                         <NULL>atom_codes</NULL>
245                         <NULL>atom_concat</NULL>
246                         <NULL>atom_length</NULL>
247                         <NULL>at_end_of_stream</NULL>
248                         <NULL>bagof</NULL>
249                         <NULL>before</NULL>
250                         <NULL>call</NULL>
251                         <NULL>calls</NULL>
252                         <NULL>catch</NULL>
253                         <NULL>category</NULL>
254                         <NULL>category_property</NULL>
255                         <NULL>char_code</NULL>
256                         <NULL>char_conversion</NULL>
257                         <NULL>clause</NULL>
258                         <NULL>close</NULL>
259                         <NULL>complements</NULL>
260                         <NULL>complements_object</NULL>
261                         <NULL>compound</NULL>
262                         <NULL>copy_term</NULL>
263                         <NULL>create_category</NULL>
264                         <NULL>create_object</NULL>
265                         <NULL>create_protocol</NULL>
266                         <NULL>current_category</NULL>
267                         <NULL>current_char_conversion</NULL>
268                         <NULL>current_event</NULL>
269                         <NULL>current_input</NULL>
270                         <NULL>current_logtalk_flag</NULL>
271                         <NULL>current_object</NULL>
272                         <NULL>current_op</NULL>
273                         <NULL>current_output</NULL>
274                         <NULL>current_predicate</NULL>
275                         <NULL>current_prolog_flag</NULL>
276                         <NULL>current_protocol</NULL>
277                         <NULL>define_events</NULL>
278                         <NULL>discontiguous</NULL>
279                         <NULL>dynamic</NULL>
280                         <NULL>encoding</NULL>
281                         <NULL>end_category</NULL>
282                         <NULL>end_object</NULL>
283                         <NULL>end_protocol</NULL>
284                         <NULL>expand_term</NULL>
285                         <NULL>extends</NULL>
286                         <NULL>extends_object</NULL>
287                         <NULL>extends_protocol</NULL>
288                         <NULL>extends_category</NULL>
289                         <NULL>fail</NULL>
290                         <NULL>findall</NULL>
291                         <NULL>float</NULL>
292                         <NULL>flush_output</NULL>
293                         <NULL>forall</NULL>
294                         <NULL>functor</NULL>
295                         <NULL>get_byte</NULL>
296                         <NULL>get_char</NULL>
297                         <NULL>get_code</NULL>
298                         <NULL>halt</NULL>
299                         <NULL>implements</NULL>
300                         <NULL>implements_protocol</NULL>
301                         <NULL>imports</NULL>
302                         <NULL>imports_category</NULL>
303                         <NULL>info</NULL>
304                         <NULL>initialization</NULL>
305                         <NULL>instantiates</NULL>
306                         <NULL>instantiates_class</NULL>
307                         <NULL>integer</NULL>
308                         <NULL>logtalk_compile</NULL>
309                         <NULL>logtalk_library_path</NULL>
310                         <NULL>logtalk_load</NULL>
311                         <NULL>meta_predicate</NULL>
312                         <NULL>mode</NULL>
313                         <NULL>nl</NULL>
314                         <NULL>nonvar</NULL>
315                         <NULL>number</NULL>
316                         <NULL>number_chars</NULL>
317                         <NULL>number_codes</NULL>
318                         <NULL>object</NULL>
319                         <NULL>object_property</NULL>
320                         <NULL>once</NULL>
321                         <NULL>op</NULL>
322                         <NULL>open</NULL>
323                         <NULL>parameter</NULL>
324                         <NULL>peek_byte</NULL>
325                         <NULL>peek_char</NULL>
326                         <NULL>peek_code</NULL>
327                         <NULL>phrase</NULL>
328                         <NULL>predicate_property</NULL>
329                         <NULL>private</NULL>
330                         <NULL>protected</NULL>
331                         <NULL>protocol</NULL>
332                         <NULL>protocol_property</NULL>
333                         <NULL>public</NULL>
334                         <NULL>put_byte</NULL>
335                         <NULL>put_char</NULL>
336                         <NULL>put_code</NULL>
337                         <NULL>read</NULL>
338                         <NULL>read_term</NULL>
339                         <NULL>repeat</NULL>
340                         <NULL>retract</NULL>
341                         <NULL>retractall</NULL>
342                         <NULL>self</NULL>
343                         <NULL>sender</NULL>
344                         <NULL>setof</NULL>
345                         <NULL>set_input</NULL>
346                         <NULL>set_logtalk_flag</NULL>
347                         <NULL>set_output</NULL>
348                         <NULL>set_prolog_flag</NULL>
349                         <NULL>set_stream_position</NULL>
350                         <NULL>specializes</NULL>
351                         <NULL>specializes_class</NULL>
352                         <NULL>stream_property</NULL>
353                         <NULL>sub_atom</NULL>
354                         <NULL>synchronized</NULL>
355                         <NULL>goal_expansion</NULL>
356                         <NULL>term_expansion</NULL>
357                         <NULL>this</NULL>
358                         <NULL>threaded</NULL>
359                         <NULL>threaded_call</NULL>
360                         <NULL>threaded_once</NULL>
361                         <NULL>threaded_ignore</NULL>
362                         <NULL>threaded_exit</NULL>
363                         <NULL>threaded_peek</NULL>
364                         <NULL>threaded_wait</NULL>
365                         <NULL>threaded_notify</NULL>
366                         <NULL>throw</NULL>
367                         <NULL>true</NULL>
368                         <NULL>unify_with_occurs_check</NULL>
369                         <NULL>uses</NULL>
370                         <NULL>var</NULL>
371                         <NULL>write</NULL>
372                         <NULL>writeq</NULL>
373                         <NULL>write_canonical</NULL>
374                         <NULL>abs</NULL>
375                         <NULL>atan</NULL>
376                         <NULL>ceiling</NULL>
377                         <NULL>cos</NULL>
378                         <NULL>exp</NULL>
379                         <NULL>float_fractional_part</NULL>
380                         <NULL>float_integer_part</NULL>
381                         <NULL>floor</NULL>
382                         <NULL>log</NULL>
383                         <NULL>mod</NULL>
384                         <NULL>rem</NULL>
385                         <NULL>round</NULL>
386                         <NULL>sign</NULL>
387                         <NULL>sin</NULL>
388                         <NULL>sqrt</NULL>
389                         <NULL>truncate</NULL>
390
391                 </KEYWORDS>
392                 
393         </RULES>
394
395 </MODE>
396
397