]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/pop11.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / pop11.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!-- pop11 mode by David S. Moss -->
6 <MODE>
7         <PROPS>
8                 <PROPERTY NAME="commentStart" VALUE="/*" />
9                 <PROPERTY NAME="commentEnd" VALUE="*/" />
10                 <PROPERTY NAME="lineComment" VALUE=";;;" />
11     </PROPS>
12
13         <RULES SET="MAIN" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
14                 <!-- Normal comments. -->
15                 <SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
16                         <BEGIN>/*</BEGIN>
17                         <END>*/</END>
18                 </SPAN>
19
20         <EOL_SPAN TYPE="COMMENT1">;;;</EOL_SPAN>
21
22                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING">
23                         <BEGIN>'</BEGIN>
24                         <END>'</END>
25                 </SPAN>
26
27                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING">
28                         <BEGIN>"</BEGIN>
29                         <END>"</END>
30                 </SPAN>
31
32         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING">
33                         <BEGIN>`</BEGIN>
34                         <END>`</END>
35                 </SPAN>
36
37         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
38                         <BEGIN>[</BEGIN>
39                         <END>]</END>
40                 </SPAN>
41
42         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
43                         <BEGIN>{</BEGIN>
44                         <END>}</END>
45                 </SPAN>
46
47         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
48                         <BEGIN>![</BEGIN>
49                         <END>]</END>
50                 </SPAN>
51
52         <!-- Functions -->
53                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
54                 <SEQ TYPE="OPERATOR">)</SEQ>
55
56                 <MARK_PREVIOUS AT_LINE_START="TRUE" TYPE="LABEL" MATCH_TYPE="OPERATOR">:</MARK_PREVIOUS>
57
58         <!-- Needs to be before conditional compilation or won't work -->
59         <SEQ TYPE="NULL">#_&lt;</SEQ>
60         <SEQ TYPE="NULL">&gt;_#</SEQ>
61
62         <!-- Conditional compilation -->
63         <MARK_FOLLOWING AT_LINE_START="TRUE" TYPE="LABEL">#_</MARK_FOLLOWING>
64
65                 <SEQ TYPE="NULL">)</SEQ>
66                 <SEQ TYPE="NULL">(</SEQ>
67                 <SEQ TYPE="NULL">.</SEQ>
68                 <SEQ TYPE="NULL">,</SEQ>
69                 <SEQ TYPE="NULL">;</SEQ>
70                 <SEQ TYPE="NULL">^</SEQ>
71                 <SEQ TYPE="NULL">@</SEQ>
72                 <SEQ TYPE="NULL">:</SEQ>
73                 <SEQ TYPE="NULL">|</SEQ>
74                 <SEQ TYPE="OPERATOR">=</SEQ>
75                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
76                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>
77                 <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>
78                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
79                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
80                 <SEQ TYPE="OPERATOR">+</SEQ>
81                 <SEQ TYPE="OPERATOR">/</SEQ>
82                 <SEQ TYPE="OPERATOR">-</SEQ>
83                 <SEQ TYPE="OPERATOR">*</SEQ>
84
85                 <KEYWORDS>
86                     <LITERAL2>false</LITERAL2>
87                     <LITERAL2>true</LITERAL2>
88                     <LITERAL2>database</LITERAL2>
89                     <LITERAL2>it</LITERAL2>
90                     <LITERAL2>undef</LITERAL2>
91
92             <!-- keywords -->
93             <KEYWORD1>define</KEYWORD1>
94             <KEYWORD1>class</KEYWORD1>
95             <KEYWORD1>enddefine</KEYWORD1>
96             <KEYWORD1>dlocal</KEYWORD1>
97             <KEYWORD1>lvars</KEYWORD1>
98             <KEYWORD1>vars</KEYWORD1>
99             <KEYWORD1>slot</KEYWORD1>
100             <KEYWORD1>instance</KEYWORD1>
101             <KEYWORD1>endinstance</KEYWORD1>
102             <KEYWORD1>method</KEYWORD1>
103                     <KEYWORD1>syntax</KEYWORD1>
104             <KEYWORD1>biginteger</KEYWORD1>
105             <KEYWORD1>boolean</KEYWORD1>
106             <KEYWORD1>complex</KEYWORD1>
107             <KEYWORD1>ddecimal</KEYWORD1>
108             <KEYWORD1>decimal</KEYWORD1>
109             <KEYWORD1>device</KEYWORD1>
110             <KEYWORD1>ident</KEYWORD1>
111             <KEYWORD1>integer</KEYWORD1>
112             <KEYWORD1>intvec</KEYWORD1>
113             <KEYWORD1>key</KEYWORD1>
114             <KEYWORD1>nil</KEYWORD1>
115             <KEYWORD1>pair</KEYWORD1>
116             <KEYWORD1>procedure</KEYWORD1>
117             <KEYWORD1>process</KEYWORD1>
118             <KEYWORD1>prologterm</KEYWORD1>
119             <KEYWORD1>prologvar</KEYWORD1>
120             <KEYWORD1>ratio</KEYWORD1>
121             <KEYWORD1>ref</KEYWORD1>
122             <KEYWORD1>section</KEYWORD1>
123             <KEYWORD1>string</KEYWORD1>
124             <KEYWORD1>termin</KEYWORD1>
125             <KEYWORD1>vector</KEYWORD1>
126             <KEYWORD1>word</KEYWORD1>
127
128             <!-- flow control -->
129             <KEYWORD3>if</KEYWORD3>
130             <KEYWORD3>forevery</KEYWORD3>
131             <KEYWORD3>endforevery</KEYWORD3>
132             <KEYWORD3>then</KEYWORD3>
133             <KEYWORD3>switchon</KEYWORD3>
134             <KEYWORD3>endswitchon</KEYWORD3>
135             <KEYWORD3>case</KEYWORD3>
136             <KEYWORD3>elseif</KEYWORD3>
137             <KEYWORD3>else</KEYWORD3>
138             <KEYWORD3>endif</KEYWORD3>
139             <KEYWORD3>for</KEYWORD3>
140             <KEYWORD3>repeat</KEYWORD3>
141             <KEYWORD3>from</KEYWORD3>
142             <KEYWORD3>till</KEYWORD3>
143             <KEYWORD3>step</KEYWORD3>
144             <KEYWORD3>while</KEYWORD3>
145             <KEYWORD3>endfor</KEYWORD3>
146             <KEYWORD3>endrepeat</KEYWORD3>
147             <KEYWORD3>endwhile</KEYWORD3>
148             <KEYWORD3>times</KEYWORD3>
149             <KEYWORD3>to</KEYWORD3>
150             <KEYWORD3>do</KEYWORD3>
151             <KEYWORD3>by</KEYWORD3>
152             <KEYWORD3>in</KEYWORD3>
153             <KEYWORD3>return</KEYWORD3>
154
155             <!-- other statements -->
156             <KEYWORD2>and</KEYWORD2>
157             <KEYWORD2>or</KEYWORD2>
158             <KEYWORD2>matches</KEYWORD2>
159             <KEYWORD2>quitloop</KEYWORD2>
160             <KEYWORD2>goto</KEYWORD2>
161             <KEYWORD2>uses</KEYWORD2>
162             <KEYWORD2>trace</KEYWORD2>
163             <KEYWORD2>cons_with</KEYWORD2>
164             <KEYWORD2>consstring</KEYWORD2>
165
166             <!-- Built in functions -->
167             <LITERAL2>interrupt</LITERAL2>
168             <LITERAL2>partapply</LITERAL2>
169             <LITERAL2>consclosure</LITERAL2>
170             <LITERAL2>max</LITERAL2>
171             <LITERAL2>add</LITERAL2>
172             <LITERAL2>remove</LITERAL2>
173             <LITERAL2>alladd</LITERAL2>
174             <LITERAL2>quitif</LITERAL2>
175             <LITERAL2>copydata</LITERAL2>
176             <LITERAL2>copytree</LITERAL2>
177             <LITERAL2>copylist</LITERAL2>
178             <LITERAL2>length</LITERAL2>
179             <LITERAL2>hd</LITERAL2>
180             <LITERAL2>tl</LITERAL2>
181             <LITERAL2>rev</LITERAL2>
182             <LITERAL2>shuffle</LITERAL2>
183             <LITERAL2>oneof</LITERAL2>
184             <LITERAL2>sort</LITERAL2>
185             <LITERAL2>syssort</LITERAL2>
186             <LITERAL2>random</LITERAL2>
187             <LITERAL2>readline</LITERAL2>
188             <LITERAL2>not</LITERAL2>
189             <LITERAL2>pr</LITERAL2>
190             <LITERAL2>nl</LITERAL2>
191             <LITERAL2>present</LITERAL2>
192             <LITERAL2>subword</LITERAL2>
193             <LITERAL2>member</LITERAL2>
194             <LITERAL2>length</LITERAL2>
195             <LITERAL2>listlength</LITERAL2>
196             <LITERAL2>datalength</LITERAL2>
197             <LITERAL2>mishap</LITERAL2>
198             <LITERAL2>last</LITERAL2>
199             <LITERAL2>delete</LITERAL2>
200             <LITERAL2>valof</LITERAL2>
201             <LITERAL2>dataword</LITERAL2>
202
203             <!-- input validation functions -->
204             <LITERAL2>isnumber</LITERAL2>
205             <LITERAL2>isinteger</LITERAL2>
206             <LITERAL2>islist</LITERAL2>
207             <LITERAL2>isboolean</LITERAL2>
208                 </KEYWORDS>
209         </RULES>
210
211     <RULES SET="LIST" DEFAULT="LITERAL1" HIGHLIGHT_DIGITS="TRUE">
212         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
213                         <BEGIN>[</BEGIN>
214                         <END>]</END>
215                 </SPAN>
216
217         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
218                         <BEGIN>{</BEGIN>
219                         <END>}</END>
220                 </SPAN>
221
222         <SPAN TYPE="LITERAL1" DELEGATE="LIST">
223                         <BEGIN>![</BEGIN>
224                         <END>]</END>
225                 </SPAN>
226
227                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING">
228                         <BEGIN>'</BEGIN>
229                         <END>'</END>
230                 </SPAN>
231
232                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="STRING">
233                         <BEGIN>"</BEGIN>
234                         <END>"</END>
235                 </SPAN>
236
237         <SPAN DELEGATE="MAIN" TYPE="NULL">
238                         <BEGIN>%</BEGIN>
239                         <END>%</END>
240                 </SPAN>
241
242                 <SPAN TYPE="COMMENT1" DELEGATE="COMMENT">
243                         <BEGIN>/*</BEGIN>
244                         <END>*/</END>
245                 </SPAN>
246
247         <EOL_SPAN TYPE="COMMENT1">;;;</EOL_SPAN>
248                 <SEQ TYPE="LITERAL2">=</SEQ>
249                 <SEQ TYPE="LITERAL2">==</SEQ>
250
251         <MARK_FOLLOWING TYPE="LITERAL2">^</MARK_FOLLOWING>
252                 <MARK_FOLLOWING TYPE="LITERAL2">?</MARK_FOLLOWING>
253         </RULES>
254
255     <RULES SET="STRING" ESCAPE="\" DEFAULT="LITERAL1" HIGHLIGHT_DIGITS="FALSE">
256     </RULES>
257
258     <RULES NO_WORD_SEP="." SET="COMMENT" DEFAULT="COMMENT1" HIGHLIGHT_DIGITS="FALSE">
259         <MARK_PREVIOUS TYPE="LABEL">:</MARK_PREVIOUS>
260                 <SEQ TYPE="COMMENT1">*</SEQ>
261     </RULES>
262 </MODE>