1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
4 METAPOST syntax highlight v0.1.0
\r
5 Made by Kondr <kondr@lesnimoudrost.cz>
\r
6 Last revision: 2007-05-04
\r
7 Cooperates with LaTeX syntax higlight (tested with the jEdit default latex.xml)
\r
11 1 Basic keywords (for, begingig, ... )
\r
16 Macros are considred as functions, including the z,x,y prefixes.
\r
18 Recommended catalog entry:
\r
20 <MODE NAME="Metapost"
\r
22 FILE_NAME_GLOB="*.mp"/>
\r
26 <PROPERTY NAME="lineComment" VALUE="%"/>
\r
28 <RULES HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="(0x[[:xdigit:]]+[lL]?|[[:digit:]]+(e[[:digit:]]*)?[lLdDfF]?(cm|in|pt|px)?)">
\r
29 <!-- btex...etex -->
\r
30 <SPAN TYPE="MARKUP" DELEGATE="tex::MAIN">
\r
36 <SEQ TYPE="OPERATOR">path</SEQ>
\r
37 <SEQ TYPE="OPERATOR">pair</SEQ>
\r
38 <EOL_SPAN TYPE="COMMENT1">%</EOL_SPAN>
\r
40 <!-- xyz suffixes -->
\r
41 <SEQ_REGEXP HASH_CHAR="z" AT_WORD_START="TRUE" TYPE="FUNCTION">z[0-9]?</SEQ_REGEXP>
\r
42 <SEQ_REGEXP HASH_CHAR="x" AT_WORD_START="TRUE" TYPE="FUNCTION">x[0-9]?</SEQ_REGEXP>
\r
43 <SEQ_REGEXP HASH_CHAR="y" AT_WORD_START="TRUE" TYPE="FUNCTION">y[0-9]?</SEQ_REGEXP>
\r
44 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="CONTEXT">(</MARK_PREVIOUS>
\r
46 <SEQ TYPE="OPERATOR">&</SEQ>
\r
47 <SEQ TYPE="OPERATOR">*</SEQ>
\r
48 <SEQ TYPE="OPERATOR">*</SEQ>
\r
49 <SEQ TYPE="OPERATOR">**</SEQ>
\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
61 <!-- basic keywords -->
\r
62 <KEYWORD1>beginfig</KEYWORD1>
\r
63 <KEYWORD1>endfig</KEYWORD1>
\r
64 <KEYWORD1>for</KEYWORD1>
\r
65 <KEYWORD1>upto</KEYWORD1>
\r
66 <KEYWORD1>downto</KEYWORD1>
\r
67 <KEYWORD1>def</KEYWORD1>
\r
68 <KEYWORD1>enddef</KEYWORD1>
\r
69 <KEYWORD1>vardef</KEYWORD1>
\r
70 <KEYWORD1>step</KEYWORD1>
\r
71 <KEYWORD1>until</KEYWORD1>
\r
72 <KEYWORD1>endfor</KEYWORD1>
\r
73 <KEYWORD1>bye</KEYWORD1>
\r
74 <KEYWORD1>if</KEYWORD1>
\r
75 <KEYWORD1>elseif</KEYWORD1>
\r
76 <KEYWORD1>else:</KEYWORD1>
\r
77 <KEYWORD1>fi</KEYWORD1>
\r
78 <KEYWORD1>exitif</KEYWORD1>
\r
79 <KEYWORD1>exitunless</KEYWORD1>
\r
80 <KEYWORD1>forever:</KEYWORD1>
\r
81 <KEYWORD1>forsuffixes</KEYWORD1>
\r
82 <KEYWORD1>end</KEYWORD1>
\r
83 <KEYWORD1>begingroup</KEYWORD1>
\r
84 <KEYWORD1>endgroup</KEYWORD1>
\r
85 <KEYWORD1>save</KEYWORD1>
\r
86 <KEYWORD1>unknown</KEYWORD1>
\r
87 <KEYWORD1>input</KEYWORD1>
\r
88 <KEYWORD1>newinternal</KEYWORD1>
\r
91 <KEYWORD2>addto</KEYWORD2>
\r
92 <KEYWORD2>clip</KEYWORD2>
\r
93 <KEYWORD2>cutdraw</KEYWORD2>
\r
94 <KEYWORD2>draw</KEYWORD2>
\r
95 <KEYWORD2>drawarrow</KEYWORD2>
\r
96 <KEYWORD2>drawdblarrow</KEYWORD2>
\r
97 <KEYWORD2>fill</KEYWORD2>
\r
98 <KEYWORD2>filldraw</KEYWORD2>
\r
99 <KEYWORD2>interim</KEYWORD2>
\r
100 <KEYWORD2>let</KEYWORD2>
\r
101 <KEYWORD2>loggingall</KEYWORD2>
\r
102 <KEYWORD2>newinternal</KEYWORD2>
\r
103 <KEYWORD2>pickup</KEYWORD2>
\r
104 <KEYWORD2>save</KEYWORD2>
\r
105 <KEYWORD2>setbounds</KEYWORD2>
\r
106 <KEYWORD2>shipout</KEYWORD2>
\r
107 <KEYWORD2>show</KEYWORD2>
\r
108 <KEYWORD2>showdependencies</KEYWORD2>
\r
109 <KEYWORD2>showtoken</KEYWORD2>
\r
110 <KEYWORD2>showvariable</KEYWORD2>
\r
111 <KEYWORD2>special</KEYWORD2>
\r
112 <KEYWORD2>tracingall</KEYWORD2>
\r
113 <KEYWORD2>tracingnone</KEYWORD2>
\r
114 <KEYWORD2>undraw</KEYWORD2>
\r
115 <KEYWORD2>unfill</KEYWORD2>
\r
116 <KEYWORD2>unfilldraw</KEYWORD2>
\r
119 <KEYWORD3>ahangle</KEYWORD3>
\r
120 <KEYWORD3>ahlength</KEYWORD3>
\r
121 <KEYWORD3>bboxmargin</KEYWORD3>
\r
122 <KEYWORD3>charcode</KEYWORD3>
\r
123 <KEYWORD3>circmargin</KEYWORD3>
\r
124 <KEYWORD3>day</KEYWORD3>
\r
125 <KEYWORD3>defaultcolormodel</KEYWORD3>
\r
126 <KEYWORD3>defaultdx</KEYWORD3>
\r
127 <KEYWORD3>defaultdy</KEYWORD3>
\r
128 <KEYWORD3>defaultpen</KEYWORD3>
\r
129 <KEYWORD3>defaultscale</KEYWORD3>
\r
130 <KEYWORD3>labeloffset</KEYWORD3>
\r
131 <KEYWORD3>linecap</KEYWORD3>
\r
132 <KEYWORD3>linejoin</KEYWORD3>
\r
133 <KEYWORD3>miterlimit</KEYWORD3>
\r
134 <KEYWORD3>month</KEYWORD3>
\r
135 <KEYWORD3>mpprocset</KEYWORD3>
\r
136 <KEYWORD3>pausing</KEYWORD3>
\r
137 <KEYWORD3>prologues</KEYWORD3>
\r
138 <KEYWORD3>restoreclipcolor</KEYWORD3>
\r
139 <KEYWORD3>showstopping</KEYWORD3>
\r
140 <KEYWORD3>time</KEYWORD3>
\r
141 <KEYWORD3>tracingcapsules</KEYWORD3>
\r
142 <KEYWORD3>tracingchoices</KEYWORD3>
\r
143 <KEYWORD3>tracingcommands</KEYWORD3>
\r
144 <KEYWORD3>tracingequations</KEYWORD3>
\r
145 <KEYWORD3>tracinglostchars</KEYWORD3>
\r
146 <KEYWORD3>tracingmacros</KEYWORD3>
\r
147 <KEYWORD3>tracingonline</KEYWORD3>
\r
148 <KEYWORD3>tracingoutput</KEYWORD3>
\r
149 <KEYWORD3>tracingrestores</KEYWORD3>
\r
150 <KEYWORD3>tracingspecs</KEYWORD3>
\r
151 <KEYWORD3>tracingstats</KEYWORD3>
\r
152 <KEYWORD3>tracingtitles</KEYWORD3>
\r
153 <KEYWORD3>troffmode</KEYWORD3>
\r
154 <KEYWORD3>truecorners</KEYWORD3>
\r
155 <KEYWORD3>warningcheck</KEYWORD3>
\r
156 <KEYWORD3>year </KEYWORD3>
\r
157 <KEYWORD3>background</KEYWORD3>
\r
158 <KEYWORD3>currentpen</KEYWORD3>
\r
159 <KEYWORD3>currentpicture</KEYWORD3>
\r
160 <KEYWORD3>cuttings</KEYWORD3>
\r
161 <KEYWORD3>defaultfont</KEYWORD3>
\r
162 <KEYWORD3>extra_beginfig</KEYWORD3>
\r
163 <KEYWORD3>extra_endfig</KEYWORD3>
\r
166 <KEYWORD4>beveled</KEYWORD4>
\r
167 <KEYWORD4>black</KEYWORD4>
\r
168 <KEYWORD4>blue</KEYWORD4>
\r
169 <KEYWORD4>bp</KEYWORD4>
\r
170 <KEYWORD4>butt</KEYWORD4>
\r
171 <KEYWORD4>cc</KEYWORD4>
\r
172 <KEYWORD4>cm</KEYWORD4>
\r
173 <KEYWORD4>dd</KEYWORD4>
\r
174 <KEYWORD4>ditto</KEYWORD4>
\r
175 <KEYWORD4>down</KEYWORD4>
\r
176 <KEYWORD4>epsilon</KEYWORD4>
\r
177 <KEYWORD4>evenly</KEYWORD4>
\r
178 <KEYWORD4>false</KEYWORD4>
\r
179 <KEYWORD4>fullcircle</KEYWORD4>
\r
180 <KEYWORD4>green</KEYWORD4>
\r
181 <KEYWORD4>halfcircle</KEYWORD4>
\r
182 <KEYWORD4>identity</KEYWORD4>
\r
183 <KEYWORD4>in</KEYWORD4>
\r
184 <KEYWORD4>infinity</KEYWORD4>
\r
185 <KEYWORD4>left</KEYWORD4>
\r
186 <KEYWORD4>mitered</KEYWORD4>
\r
187 <KEYWORD4>mm</KEYWORD4>
\r
188 <KEYWORD4>mpversion</KEYWORD4>
\r
189 <KEYWORD4>nullpicture</KEYWORD4>
\r
190 <KEYWORD4>origin</KEYWORD4>
\r
191 <KEYWORD4>pc</KEYWORD4>
\r
192 <KEYWORD4>pencircle</KEYWORD4>
\r
193 <KEYWORD4>pensquare</KEYWORD4>
\r
194 <KEYWORD4>pt</KEYWORD4>
\r
195 <KEYWORD4>quartercircle</KEYWORD4>
\r
196 <KEYWORD4>red</KEYWORD4>
\r
197 <KEYWORD4>right</KEYWORD4>
\r
198 <KEYWORD4>rounded</KEYWORD4>
\r
199 <KEYWORD4>and</KEYWORD4>
\r
200 <KEYWORD4>squared</KEYWORD4>
\r
201 <KEYWORD4>true</KEYWORD4>
\r
202 <KEYWORD4>unitsquare</KEYWORD4>
\r
203 <KEYWORD4>up</KEYWORD4>
\r
204 <KEYWORD4>white</KEYWORD4>
\r
205 <KEYWORD4>withdots</KEYWORD4>
\r
208 <FUNCTION>boxit</FUNCTION>
\r
209 <FUNCTION>boxjoin</FUNCTION>
\r
210 <FUNCTION>bpath</FUNCTION>
\r
211 <FUNCTION>buildcycle</FUNCTION>
\r
212 <FUNCTION>circleit</FUNCTION>
\r
213 <FUNCTION>circleit</FUNCTION>
\r
214 <FUNCTION>circleit</FUNCTION>
\r
215 <FUNCTION>dashpattern</FUNCTION>
\r
216 <FUNCTION>decr</FUNCTION>
\r
217 <FUNCTION>dotlabel</FUNCTION>
\r
218 <FUNCTION>dotlabel</FUNCTION>
\r
219 <FUNCTION>dotlabels</FUNCTION>
\r
220 <FUNCTION>drawboxed</FUNCTION>
\r
221 <FUNCTION>contents</FUNCTION>
\r
222 <FUNCTION>drawdot</FUNCTION>
\r
223 <FUNCTION>drawoptions</FUNCTION>
\r
224 <FUNCTION>drawunboxed</FUNCTION>
\r
225 <FUNCTION>fixpos</FUNCTION>
\r
226 <FUNCTION>named</FUNCTION>
\r
227 <FUNCTION>fixsize</FUNCTION>
\r
228 <FUNCTION>image</FUNCTION>
\r
229 <FUNCTION>incr</FUNCTION>
\r
230 <FUNCTION>label</FUNCTION>
\r
231 <FUNCTION>label</FUNCTION>
\r
232 <FUNCTION>labels</FUNCTION>
\r
233 <FUNCTION>max</FUNCTION>
\r
234 <FUNCTION>max</FUNCTION>
\r
235 <FUNCTION>min</FUNCTION>
\r
236 <FUNCTION>min</FUNCTION>
\r
237 <FUNCTION>pic</FUNCTION>
\r
238 <FUNCTION>thelabel</FUNCTION>
\r
239 <FUNCTION>thelabel</FUNCTION>
\r
240 <OPERATOR>rotatedaround</OPERATOR>
\r
242 <OPERATOR>abs</OPERATOR>
\r
243 <OPERATOR>angle</OPERATOR>
\r
244 <OPERATOR>arclength</OPERATOR>
\r
245 <OPERATOR>arctime</OPERATOR>
\r
246 <OPERATOR>ASCII</OPERATOR>
\r
247 <OPERATOR>bbox</OPERATOR>
\r
248 <OPERATOR>bluepart</OPERATOR>
\r
249 <OPERATOR>boolean</OPERATOR>
\r
250 <OPERATOR>bot</OPERATOR>
\r
251 <OPERATOR>ceiling</OPERATOR>
\r
252 <OPERATOR>center</OPERATOR>
\r
253 <OPERATOR>char</OPERATOR>
\r
254 <OPERATOR>cmykcolor</OPERATOR>
\r
255 <OPERATOR>colormodel</OPERATOR>
\r
256 <OPERATOR>color</OPERATOR>
\r
257 <OPERATOR>cosd</OPERATOR>
\r
258 <OPERATOR>cutafter</OPERATOR>
\r
259 <OPERATOR>intersection</OPERATOR>
\r
260 <OPERATOR>cutbefore</OPERATOR>
\r
261 <OPERATOR>intersection</OPERATOR>
\r
262 <OPERATOR>cyanpart</OPERATOR>
\r
263 <OPERATOR>cycle</OPERATOR>
\r
264 <OPERATOR>decimal</OPERATOR>
\r
265 <OPERATOR>dir</OPERATOR>
\r
266 <OPERATOR>direction</OPERATOR>
\r
267 <OPERATOR>directionpoint</OPERATOR>
\r
268 <OPERATOR>directiontime</OPERATOR>
\r
269 <OPERATOR>div</OPERATOR>
\r
270 <OPERATOR>dotprod</OPERATOR>
\r
271 <OPERATOR>floor</OPERATOR>
\r
272 <OPERATOR>fontsize</OPERATOR>
\r
273 <OPERATOR>greenpart</OPERATOR>
\r
274 <OPERATOR>greypart</OPERATOR>
\r
275 <OPERATOR>hex</OPERATOR>
\r
276 <OPERATOR>infont</OPERATOR>
\r
277 <OPERATOR>intersectionpoint</OPERATOR>
\r
278 <OPERATOR>intesctiontimes</OPERATOR>
\r
279 <OPERATOR>inverse</OPERATOR>
\r
280 <OPERATOR>known</OPERATOR>
\r
281 <OPERATOR>length</OPERATOR>
\r
282 <OPERATOR>ulft</OPERATOR>
\r
283 <OPERATOR>llft</OPERATOR>
\r
284 <OPERATOR>lft</OPERATOR>
\r
285 <OPERATOR>llcorner</OPERATOR>
\r
286 <OPERATOR>lrcorner</OPERATOR>
\r
287 <OPERATOR>magentapart</OPERATOR>
\r
288 <OPERATOR>makemakeconvex</OPERATOR>
\r
289 <OPERATOR>mexp</OPERATOR>
\r
290 <OPERATOR>mlog</OPERATOR>
\r
291 <OPERATOR>mod</OPERATOR>
\r
292 <OPERATOR>normaldeviate</OPERATOR>
\r
293 <OPERATOR>not</OPERATOR>
\r
294 <OPERATOR>numeric</OPERATOR>
\r
295 <OPERATOR>oct</OPERATOR>
\r
296 <OPERATOR>odd</OPERATOR>
\r
297 <OPERATOR>or</OPERATOR>
\r
298 <OPERATOR>of</OPERATOR>
\r
299 <OPERATOR>penoffset</OPERATOR>
\r
300 <OPERATOR>picture</OPERATOR>
\r
301 <OPERATOR>point</OPERATOR>
\r
302 <OPERATOR>postcontrol</OPERATOR>
\r
303 <OPERATOR>precontrol</OPERATOR>
\r
304 <OPERATOR>redpart</OPERATOR>
\r
305 <OPERATOR>reverse</OPERATOR>
\r
306 <OPERATOR>swapped</OPERATOR>
\r
307 <OPERATOR>rgbcolor</OPERATOR>
\r
308 <OPERATOR>rotated</OPERATOR>
\r
309 <OPERATOR>reflectedabout</OPERATOR>
\r
310 <OPERATOR>round</OPERATOR>
\r
311 <OPERATOR>lrt</OPERATOR>
\r
312 <OPERATOR>urt</OPERATOR>
\r
313 <OPERATOR>rt</OPERATOR>
\r
314 <OPERATOR>scaled</OPERATOR>
\r
315 <OPERATOR>scantokens</OPERATOR>
\r
316 <OPERATOR>token</OPERATOR>
\r
317 <OPERATOR>top</OPERATOR>
\r
318 <OPERATOR>to</OPERATOR>
\r
319 <OPERATOR>shifted</OPERATOR>
\r
320 <OPERATOR>sind</OPERATOR>
\r
321 <OPERATOR>slanted</OPERATOR>
\r
322 <OPERATOR>sqrt</OPERATOR>
\r
323 <OPERATOR>string</OPERATOR>
\r
324 <OPERATOR>str</OPERATOR>
\r
325 <OPERATOR>subof</OPERATOR>
\r
326 <OPERATOR>substring</OPERATOR>
\r
327 <OPERATOR>transformed</OPERATOR>
\r
328 <OPERATOR>transform</OPERATOR>
\r
329 <OPERATOR>ulcorner</OPERATOR>
\r
330 <OPERATOR>uniformdeviate</OPERATOR>
\r
331 <OPERATOR>unitvector</OPERATOR>
\r
332 <OPERATOR>unknown</OPERATOR>
\r
333 <OPERATOR>urcorner</OPERATOR>
\r
334 <OPERATOR>whatever</OPERATOR>
\r
335 <OPERATOR>xpart</OPERATOR>
\r
336 <OPERATOR>xxpart</OPERATOR>
\r
337 <OPERATOR>xypart</OPERATOR>
\r
338 <OPERATOR>yellowpart</OPERATOR>
\r
339 <OPERATOR>ypart</OPERATOR>
\r
340 <OPERATOR>yxpart</OPERATOR>
\r
341 <OPERATOR>yypart</OPERATOR>
\r
342 <OPERATOR>zscaled</OPERATOR>
\r
343 <OPERATOR>dashed</OPERATOR>
\r
344 <OPERATOR>pen</OPERATOR>
\r
345 <OPERATOR>suffix</OPERATOR>
\r
346 <OPERATOR>expr</OPERATOR>
\r