3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
5 <!-- boo mode, by Rodrigo B. de Oliveira based on python mode -->
6 <!-- by Slava Pestov. Based on PythonTokenMarker by -->
7 <!-- Jonathan Revusky -->
10 JEdit Catalog Entry: <MODE NAME="boo" FILE="boo-jedit41.xml" FILE_NAME_GLOB="*.boo" />
15 <PROPERTY NAME="indentNextLines" VALUE="\s*[^#]{3,}:\s*(#.*)?" />
16 <PROPERTY NAME="commentStart" VALUE="/*" />
17 <PROPERTY NAME="commentEnd" VALUE="*/" />
18 <PROPERTY NAME="lineComment" VALUE="(#|//)" />
19 <PROPERTY NAME="wordBreakChars" VALUE="([{" />
22 ESCAPE="\" IGNORE_CASE="FALSE"
23 HIGHLIGHT_DIGITS="TRUE"
24 DIGIT_RE="(\d(\d|_)*(\.\d(\d|_)*)?((e|E)(\+|-)?\d(\d|_)*)?(\w+)?)|(0x([A-Fa-f]|\d)+(l|L)?)"
27 <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
28 <EOL_SPAN TYPE="COMMENT1">//</EOL_SPAN>
29 <SPAN TYPE="COMMENT2">
34 <!-- Triple-quotes -->
35 <SPAN TYPE="LITERAL1" DELEGATE="string">
40 <SPAN TYPE="LITERAL2">
45 <!-- Standard literals -->
46 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="string">
50 <SPAN TYPE="LITERAL2" NO_LINE_BREAK="TRUE">
55 <SEQ_REGEXP TYPE="MARKUP"
58 >/[^[:blank:]]*?[^\\]/</SEQ_REGEXP>
62 <SEQ TYPE="OPERATOR">:</SEQ>
63 <SEQ TYPE="OPERATOR">[</SEQ>
64 <SEQ TYPE="OPERATOR">]</SEQ>
65 <SEQ TYPE="OPERATOR">{</SEQ>
66 <SEQ TYPE="OPERATOR">}</SEQ>
67 <SEQ TYPE="OPERATOR">(</SEQ>
68 <SEQ TYPE="OPERATOR">)</SEQ>
70 <SEQ TYPE="OPERATOR">=~</SEQ>
71 <SEQ TYPE="OPERATOR">=</SEQ>
72 <SEQ TYPE="OPERATOR">!=</SEQ>
73 <SEQ TYPE="OPERATOR">!</SEQ>
74 <SEQ TYPE="OPERATOR">>=</SEQ>
75 <SEQ TYPE="OPERATOR"><=</SEQ>
76 <SEQ TYPE="OPERATOR">++</SEQ>
77 <SEQ TYPE="OPERATOR">--</SEQ>
78 <SEQ TYPE="OPERATOR">+</SEQ>
79 <SEQ TYPE="OPERATOR">-</SEQ>
80 <SEQ TYPE="OPERATOR">+=</SEQ>
81 <SEQ TYPE="OPERATOR">-=</SEQ>
82 <SEQ TYPE="OPERATOR">/</SEQ>
83 <SEQ TYPE="OPERATOR">%</SEQ>
84 <SEQ TYPE="OPERATOR">*</SEQ>
85 <SEQ TYPE="OPERATOR">/=</SEQ>
86 <SEQ TYPE="OPERATOR">%=</SEQ>
87 <SEQ TYPE="OPERATOR">*=</SEQ>
88 <SEQ TYPE="OPERATOR">></SEQ>
89 <SEQ TYPE="OPERATOR"><</SEQ>
90 <SEQ TYPE="OPERATOR">%</SEQ>
91 <SEQ TYPE="OPERATOR">&</SEQ>
92 <SEQ TYPE="OPERATOR">|</SEQ>
93 <SEQ TYPE="OPERATOR">^</SEQ>
95 <MARK_PREVIOUS TYPE="FUNCTION"
96 EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
99 <!-- Reserved Words -->
100 <KEYWORD1>abstract</KEYWORD1>
101 <KEYWORD1>and</KEYWORD1>
102 <KEYWORD1>as</KEYWORD1>
103 <KEYWORD1>break</KEYWORD1>
104 <KEYWORD1>callable</KEYWORD1>
105 <KEYWORD1>cast</KEYWORD1>
106 <KEYWORD1>class</KEYWORD1>
107 <KEYWORD1>const</KEYWORD1>
108 <KEYWORD1>constructor</KEYWORD1>
109 <KEYWORD1>destructor</KEYWORD1>
110 <KEYWORD1>continue</KEYWORD1>
111 <KEYWORD1>def</KEYWORD1>
112 <KEYWORD1>do</KEYWORD1>
113 <KEYWORD1>elif</KEYWORD1>
114 <KEYWORD1>else</KEYWORD1>
115 <KEYWORD1>end</KEYWORD1>
116 <KEYWORD1>enum</KEYWORD1>
117 <KEYWORD1>ensure</KEYWORD1>
118 <KEYWORD1>event</KEYWORD1>
119 <KEYWORD1>except</KEYWORD1>
120 <KEYWORD1>final</KEYWORD1>
121 <KEYWORD1>for</KEYWORD1>
122 <KEYWORD1>from</KEYWORD1>
123 <KEYWORD1>given</KEYWORD1>
124 <KEYWORD1>get</KEYWORD1>
125 <KEYWORD1>if</KEYWORD1>
126 <KEYWORD1>interface</KEYWORD1>
127 <KEYWORD1>in</KEYWORD1>
128 <KEYWORD1>include</KEYWORD1>
129 <KEYWORD1>import</KEYWORD1>
130 <KEYWORD1>is</KEYWORD1>
131 <KEYWORD1>isa</KEYWORD1>
132 <KEYWORD1>mixin</KEYWORD1>
133 <KEYWORD1>partial</KEYWORD1>
134 <KEYWORD1>namespace</KEYWORD1>
135 <KEYWORD1>not</KEYWORD1>
136 <KEYWORD1>of</KEYWORD1>
137 <KEYWORD1>or</KEYWORD1>
138 <KEYWORD1>otherwise</KEYWORD1>
139 <KEYWORD1>override</KEYWORD1>
140 <KEYWORD1>pass</KEYWORD1>
141 <KEYWORD1>raise</KEYWORD1>
142 <KEYWORD1>ref</KEYWORD1>
143 <KEYWORD1>retry</KEYWORD1>
144 <KEYWORD1>self</KEYWORD1>
145 <KEYWORD1>struct</KEYWORD1>
146 <KEYWORD1>return</KEYWORD1>
147 <KEYWORD1>set</KEYWORD1>
148 <KEYWORD1>success</KEYWORD1>
149 <KEYWORD1>try</KEYWORD1>
150 <KEYWORD1>transient</KEYWORD1>
151 <KEYWORD1>virtual</KEYWORD1>
152 <KEYWORD1>while</KEYWORD1>
153 <KEYWORD1>when</KEYWORD1>
154 <KEYWORD1>unless</KEYWORD1>
155 <KEYWORD1>yield</KEYWORD1>
156 <KEYWORD1>ref</KEYWORD1>
158 <KEYWORD1>public</KEYWORD1>
159 <KEYWORD1>protected</KEYWORD1>
160 <KEYWORD1>private</KEYWORD1>
161 <KEYWORD1>internal</KEYWORD1>
162 <KEYWORD1>static</KEYWORD1>
164 <KEYWORD2>bool</KEYWORD2>
165 <KEYWORD2>regex</KEYWORD2>
166 <KEYWORD2>string</KEYWORD2>
167 <KEYWORD2>object</KEYWORD2>
168 <KEYWORD2>duck</KEYWORD2>
169 <KEYWORD2>byte</KEYWORD2>
170 <KEYWORD2>sbyte</KEYWORD2>
171 <KEYWORD2>short</KEYWORD2>
172 <KEYWORD2>ushort</KEYWORD2>
173 <KEYWORD2>int</KEYWORD2>
174 <KEYWORD2>char</KEYWORD2>
175 <KEYWORD2>uint</KEYWORD2>
176 <KEYWORD2>long</KEYWORD2>
177 <KEYWORD2>ulong</KEYWORD2>
178 <KEYWORD2>single</KEYWORD2>
179 <KEYWORD2>double</KEYWORD2>
180 <KEYWORD2>decimal</KEYWORD2>
181 <KEYWORD2>date</KEYWORD2>
182 <KEYWORD2>timespan</KEYWORD2>
183 <KEYWORD2>void</KEYWORD2>
186 <KEYWORD1>iif</KEYWORD1>
187 <KEYWORD3>len</KEYWORD3>
188 <KEYWORD3>__addressof__</KEYWORD3>
189 <KEYWORD3>__eval__</KEYWORD3>
190 <KEYWORD3>__switch__</KEYWORD3>
191 <KEYWORD3>typeof</KEYWORD3>
192 <KEYWORD3>assert</KEYWORD3>
194 <KEYWORD3>array</KEYWORD3>
195 <KEYWORD3>matrix</KEYWORD3>
197 <KEYWORD3>print</KEYWORD3>
198 <KEYWORD3>gets</KEYWORD3>
199 <KEYWORD3>prompt</KEYWORD3>
200 <KEYWORD3>enumerate</KEYWORD3>
201 <KEYWORD3>zip</KEYWORD3>
202 <KEYWORD3>filter</KEYWORD3>
203 <KEYWORD3>map</KEYWORD3>
204 <KEYWORD3>join</KEYWORD3>
205 <KEYWORD3>cat</KEYWORD3>
206 <KEYWORD3>iterator</KEYWORD3>
207 <KEYWORD3>shell</KEYWORD3>
208 <KEYWORD3>abs</KEYWORD3>
210 <!-- standard macros and attributes -->
211 <KEYWORD3>using</KEYWORD3>
212 <KEYWORD3>lock</KEYWORD3>
213 <KEYWORD3>required</KEYWORD3>
214 <KEYWORD3>getter</KEYWORD3>
215 <KEYWORD3>setter</KEYWORD3>
216 <KEYWORD3>property</KEYWORD3>
217 <KEYWORD3>checked</KEYWORD3>
218 <KEYWORD3>unchecked</KEYWORD3>
219 <KEYWORD3>rawArrayIndexing</KEYWORD3>
220 <KEYWORD3>normalArrayIndexing</KEYWORD3>
221 <KEYWORD3>yieldAll</KEYWORD3>
224 <!-- KEYWORD3>ArithmeticError</KEYWORD3 -->
226 <LITERAL2>false</LITERAL2>
227 <LITERAL2>null</LITERAL2>
228 <LITERAL2>self</LITERAL2>
229 <KEYWORD2>super</KEYWORD2>
230 <LITERAL2>true</LITERAL2>
234 <RULES SET="string" DEFAULT="LITERAL1">
235 <SPAN TYPE="LITERAL2">