]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/pascal.xml
d411d56d9a5e1411b7d4931e34843c5112021e3e
[factor.git] / basis / xmode / modes / pascal.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <!-- Pascal mode by Kristian Ovaska.\r
6      Delphi 3 was used as reference.\r
7      Modified by Barry Carr (Ixian Software Components Ltd)\r
8      Delphi 6 was used as reference.\r
9      Modified by Barry Carr (Ixian Software Components Ltd) Feb '04\r
10      Delphi 8 (for .NET) was used as reference\r
11      Keywords   = KEYWORD1\r
12      Directives = KEYWORD2.\r
13      Everything else as is-->\r
14 <MODE>\r
15     <PROPS>\r
16         <PROPERTY NAME="commentStart" VALUE="{" />\r
17         <PROPERTY NAME="commentEnd" VALUE="}" />\r
18         <PROPERTY NAME="lineComment" VALUE="//" />\r
19     </PROPS>\r
20 \r
21     <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">\r
22         <!-- Compiler directives. -->\r
23         <SPAN TYPE="COMMENT3">\r
24             <BEGIN>{$</BEGIN>\r
25             <END>}</END>\r
26         </SPAN>\r
27         <SPAN TYPE="COMMENT3">\r
28             <BEGIN>(*$</BEGIN>\r
29             <END>*)</END>\r
30         </SPAN>\r
31 \r
32         <!-- Normal comments. -->\r
33         <SPAN TYPE="COMMENT1">\r
34             <BEGIN>{</BEGIN>\r
35             <END>}</END>\r
36         </SPAN>\r
37 \r
38         <SPAN TYPE="COMMENT1">\r
39             <BEGIN>(*</BEGIN>\r
40             <END>*)</END>\r
41         </SPAN>\r
42 \r
43         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>\r
44 \r
45         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
46             <BEGIN>'</BEGIN>\r
47             <END>'</END>\r
48         </SPAN>\r
49 \r
50         <SEQ TYPE="OPERATOR">)</SEQ>\r
51         <SEQ TYPE="OPERATOR">(</SEQ>\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         <SEQ TYPE="OPERATOR">:</SEQ>\r
61         <SEQ TYPE="OPERATOR">=</SEQ>\r
62         <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>\r
63         <SEQ TYPE="OPERATOR">&gt;</SEQ>\r
64         <SEQ TYPE="OPERATOR">&lt;</SEQ>\r
65         <SEQ TYPE="OPERATOR">&gt;=</SEQ>\r
66         <SEQ TYPE="OPERATOR">&lt;=</SEQ>\r
67         <SEQ TYPE="OPERATOR">+</SEQ>\r
68         <SEQ TYPE="OPERATOR">-</SEQ>\r
69         <SEQ TYPE="OPERATOR">/</SEQ>\r
70         <SEQ TYPE="OPERATOR">*</SEQ>\r
71 \r
72         <KEYWORDS>\r
73             <!-- Reserved words. Standard directives are not included, except\r
74                  private, protected, public, published, and automated. -->\r
75             <KEYWORD1>and</KEYWORD1>\r
76             <KEYWORD1>array</KEYWORD1>\r
77             <KEYWORD1>as</KEYWORD1>\r
78             <KEYWORD1>at</KEYWORD1>\r
79             <KEYWORD1>asm</KEYWORD1>\r
80             <KEYWORD1>begin</KEYWORD1>\r
81             <KEYWORD1>case</KEYWORD1>\r
82             <KEYWORD1>class</KEYWORD1>\r
83             <KEYWORD1>const</KEYWORD1>\r
84             <KEYWORD1>constructor</KEYWORD1>\r
85             <KEYWORD1>destructor</KEYWORD1>\r
86             <KEYWORD1>dispinterface</KEYWORD1>\r
87             <KEYWORD1>div</KEYWORD1>\r
88             <KEYWORD1>do</KEYWORD1>\r
89             <KEYWORD1>downto</KEYWORD1>\r
90             <KEYWORD1>else</KEYWORD1>\r
91             <KEYWORD1>end</KEYWORD1>\r
92             <KEYWORD1>except</KEYWORD1>\r
93             <KEYWORD1>exports</KEYWORD1>\r
94             <KEYWORD1>file</KEYWORD1>\r
95             <KEYWORD1>final</KEYWORD1>\r
96             <KEYWORD1>finalization</KEYWORD1>\r
97             <KEYWORD1>finally</KEYWORD1>\r
98             <KEYWORD1>for</KEYWORD1>\r
99             <KEYWORD1>function</KEYWORD1>\r
100             <KEYWORD1>goto</KEYWORD1>\r
101             <KEYWORD1>if</KEYWORD1>\r
102             <KEYWORD1>implementation</KEYWORD1>\r
103             <KEYWORD1>in</KEYWORD1>\r
104             <KEYWORD1>inherited</KEYWORD1>\r
105             <KEYWORD1>initialization</KEYWORD1>\r
106             <KEYWORD1>inline</KEYWORD1>\r
107             <KEYWORD1>interface</KEYWORD1>\r
108             <KEYWORD1>is</KEYWORD1>\r
109             <KEYWORD1>label</KEYWORD1>\r
110             <KEYWORD1>mod</KEYWORD1>\r
111             <KEYWORD1>not</KEYWORD1>\r
112             <KEYWORD1>object</KEYWORD1>\r
113             <KEYWORD1>of</KEYWORD1>\r
114             <KEYWORD1>on</KEYWORD1>\r
115             <KEYWORD1>or</KEYWORD1>\r
116             <KEYWORD1>out</KEYWORD1>\r
117             <KEYWORD1>packed</KEYWORD1>\r
118             <KEYWORD1>procedure</KEYWORD1>\r
119             <KEYWORD1>program</KEYWORD1>\r
120             <KEYWORD1>property</KEYWORD1>\r
121             <KEYWORD1>raise</KEYWORD1>\r
122             <KEYWORD1>record</KEYWORD1>\r
123             <KEYWORD1>repeat</KEYWORD1>\r
124             <KEYWORD1>resourcestring</KEYWORD1>\r
125             <KEYWORD1>set</KEYWORD1>\r
126             <KEYWORD1>sealed</KEYWORD1>\r
127             <KEYWORD1>shl</KEYWORD1>\r
128             <KEYWORD1>shr</KEYWORD1>\r
129             <KEYWORD1>static</KEYWORD1>\r
130             <KEYWORD1>string</KEYWORD1>\r
131             <KEYWORD1>then</KEYWORD1>\r
132             <KEYWORD1>threadvar</KEYWORD1>\r
133             <KEYWORD1>to</KEYWORD1>\r
134             <KEYWORD1>try</KEYWORD1>\r
135             <KEYWORD1>type</KEYWORD1>\r
136             <KEYWORD1>unit</KEYWORD1>\r
137             <KEYWORD1>unsafe</KEYWORD1>\r
138             <KEYWORD1>until</KEYWORD1>\r
139             <KEYWORD1>uses</KEYWORD1>\r
140             <KEYWORD1>var</KEYWORD1>\r
141             <KEYWORD1>while</KEYWORD1>\r
142             <KEYWORD1>with</KEYWORD1>\r
143             <KEYWORD1>xor</KEYWORD1>\r
144 \r
145             <KEYWORD2>absolute</KEYWORD2>\r
146             <KEYWORD2>abstract</KEYWORD2>\r
147             <KEYWORD2>assembler</KEYWORD2>\r
148             <KEYWORD2>automated</KEYWORD2>\r
149             <KEYWORD2>cdecl</KEYWORD2>\r
150             <KEYWORD2>contains</KEYWORD2>\r
151             <KEYWORD2>default</KEYWORD2>\r
152             <KEYWORD2>deprecated</KEYWORD2>\r
153             <KEYWORD2>dispid</KEYWORD2>\r
154             <KEYWORD2>dynamic</KEYWORD2>\r
155             <KEYWORD2>export</KEYWORD2>\r
156             <KEYWORD2>external</KEYWORD2>\r
157             <KEYWORD2>far</KEYWORD2>\r
158             <KEYWORD2>forward</KEYWORD2>\r
159             <KEYWORD2>implements</KEYWORD2>\r
160             <KEYWORD2>index</KEYWORD2>\r
161             <KEYWORD2>library</KEYWORD2>\r
162             <KEYWORD2>local</KEYWORD2>\r
163             <KEYWORD2>message</KEYWORD2>\r
164             <KEYWORD2>name</KEYWORD2>\r
165             <KEYWORD2>namespaces</KEYWORD2>\r
166             <KEYWORD2>near</KEYWORD2>\r
167             <KEYWORD2>nodefault</KEYWORD2>\r
168             <KEYWORD2>overload</KEYWORD2>\r
169             <KEYWORD2>override</KEYWORD2>\r
170             <KEYWORD2>package</KEYWORD2>\r
171             <KEYWORD2>pascal</KEYWORD2>\r
172             <KEYWORD2>platform</KEYWORD2>\r
173             <KEYWORD2>private</KEYWORD2>\r
174             <KEYWORD2>protected</KEYWORD2>\r
175             <KEYWORD2>public</KEYWORD2>\r
176             <KEYWORD2>published</KEYWORD2>\r
177             <KEYWORD2>read</KEYWORD2>\r
178             <KEYWORD2>readonly</KEYWORD2>\r
179             <KEYWORD2>register</KEYWORD2>\r
180             <KEYWORD2>reintroduce</KEYWORD2>\r
181             <KEYWORD2>requires</KEYWORD2>\r
182             <KEYWORD2>resident</KEYWORD2>\r
183             <KEYWORD2>safecall</KEYWORD2>\r
184             <KEYWORD2>stdcall</KEYWORD2>\r
185             <KEYWORD2>stored</KEYWORD2>\r
186             <KEYWORD2>varargs</KEYWORD2>\r
187             <KEYWORD2>virtual</KEYWORD2>\r
188             <KEYWORD2>write</KEYWORD2>\r
189             <KEYWORD2>writeonly</KEYWORD2>\r
190 \r
191             <!-- Ordinal types. -->\r
192             <KEYWORD3>shortint</KEYWORD3>\r
193             <KEYWORD3>byte</KEYWORD3>\r
194             <KEYWORD3>char</KEYWORD3>\r
195             <KEYWORD3>smallint</KEYWORD3>\r
196             <KEYWORD3>integer</KEYWORD3>\r
197             <KEYWORD3>word</KEYWORD3>\r
198             <KEYWORD3>longint</KEYWORD3>\r
199             <KEYWORD3>cardinal</KEYWORD3>\r
200             <!-- Boolean types. -->\r
201             <KEYWORD3>boolean</KEYWORD3>\r
202             <KEYWORD3>bytebool</KEYWORD3>\r
203             <KEYWORD3>wordbool</KEYWORD3>\r
204             <KEYWORD3>longbool</KEYWORD3>\r
205             <!-- Real types. -->\r
206             <KEYWORD3>real</KEYWORD3>\r
207             <KEYWORD3>single</KEYWORD3>\r
208             <KEYWORD3>double</KEYWORD3>\r
209             <KEYWORD3>extended</KEYWORD3>\r
210             <KEYWORD3>comp</KEYWORD3>\r
211             <KEYWORD3>currency</KEYWORD3>\r
212             <!-- Untyped pointer. -->\r
213             <KEYWORD3>pointer</KEYWORD3>\r
214 \r
215             <LITERAL2>false</LITERAL2>\r
216             <LITERAL2>nil</LITERAL2>\r
217             <LITERAL2>self</LITERAL2>\r
218             <LITERAL2>true</LITERAL2>\r
219         </KEYWORDS>\r
220     </RULES>\r
221 </MODE>\r