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