1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
7 DirectX FX Files Syntax Highlighting (Edit Mode) for jEdit
\r
8 Including: Preprocessor, HLSL and Shader Assembler up to shader version 3.0
\r
10 Author: Adam Sawicki
\r
11 - Homepage: http://regedit.gamedev.pl/
\r
12 - E-mail: sawickiap@poczta.onet.pl
\r
13 - IRC: #warsztat @ PolNet
\r
14 - Gadu-Gadu: 2272474
\r
19 <PROPERTY NAME="commentStart" VALUE="/*" />
\r
20 <PROPERTY NAME="commentEnd" VALUE="*/" />
\r
21 <PROPERTY NAME="lineComment" VALUE="//" />
\r
22 <PROPERTY NAME="wordBreakChars" VALUE=".,+-*/=<>?^&[]{}" />
\r
24 <!-- Auto indent -->
\r
25 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
\r
26 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
\r
27 <PROPERTY NAME="indentNextLine" VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
\r
28 <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
\r
29 <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
\r
35 HIGHLIGHT_DIGITS="TRUE"
\r
36 DIGIT_RE="((0[xX][0-9a-fA-F]+|\d+)[uUIL]?|\d+([eE]\d*)?[hHfF]?)">
\r
38 <!-- C style comment -->
\r
39 <SPAN TYPE="COMMENT1">
\r
44 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
\r
48 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
\r
53 <!-- preprocessor statements -->
\r
54 <SEQ TYPE="KEYWORD2">##</SEQ>
\r
55 <SEQ TYPE="KEYWORD2">#@</SEQ>
\r
56 <EOL_SPAN TYPE="KEYWORD2" DELEGATE="Preprocessor">#</EOL_SPAN>
\r
59 <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
\r
63 <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
\r
67 <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
\r
71 <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
\r
72 <BEGIN>asm_fragment</BEGIN>
\r
76 <!-- C style comment -->
\r
77 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
\r
79 <!-- Operators - multi character -->
\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 <SEQ TYPE="OPERATOR">==</SEQ>
\r
85 <SEQ TYPE="OPERATOR">::</SEQ>
\r
86 <SEQ TYPE="OPERATOR"><<</SEQ>
\r
87 <SEQ TYPE="OPERATOR"><<=</SEQ>
\r
88 <SEQ TYPE="OPERATOR">>></SEQ>
\r
89 <SEQ TYPE="OPERATOR">>>=</SEQ>
\r
90 <SEQ TYPE="OPERATOR">...</SEQ>
\r
91 <SEQ TYPE="OPERATOR"><=</SEQ>
\r
92 <SEQ TYPE="OPERATOR">>=</SEQ>
\r
93 <SEQ TYPE="OPERATOR">!=</SEQ>
\r
94 <SEQ TYPE="OPERATOR">*=</SEQ>
\r
95 <SEQ TYPE="OPERATOR">/=</SEQ>
\r
96 <SEQ TYPE="OPERATOR">+=</SEQ>
\r
97 <SEQ TYPE="OPERATOR">-=</SEQ>
\r
98 <SEQ TYPE="OPERATOR">%=</SEQ>
\r
99 <SEQ TYPE="OPERATOR">&=</SEQ>
\r
100 <SEQ TYPE="OPERATOR">|=</SEQ>
\r
101 <SEQ TYPE="OPERATOR">^=</SEQ>
\r
102 <SEQ TYPE="OPERATOR">-></SEQ>
\r
104 <!-- Operators - single characters -->
\r
105 <SEQ TYPE="OPERATOR">}</SEQ>
\r
106 <SEQ TYPE="OPERATOR">{</SEQ>
\r
107 <SEQ TYPE="OPERATOR">+</SEQ>
\r
108 <SEQ TYPE="OPERATOR">-</SEQ>
\r
109 <SEQ TYPE="OPERATOR">*</SEQ>
\r
110 <SEQ TYPE="OPERATOR">/</SEQ>
\r
111 <SEQ TYPE="OPERATOR">%</SEQ>
\r
112 <SEQ TYPE="OPERATOR">=</SEQ>
\r
113 <SEQ TYPE="OPERATOR"><</SEQ>
\r
114 <SEQ TYPE="OPERATOR">></SEQ>
\r
115 <SEQ TYPE="OPERATOR">!</SEQ>
\r
117 <!-- Function calls -->
\r
118 <MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
\r
120 <!-- Swizzle operator for vectors/scalars (a.xyzw OR b.rgba), matrices (c._m00_m01 OR d._11_12) indexing -->
\r
121 <SEQ_REGEXP TYPE="OPERATOR" HASH_CHAR=".">.(([xyzw]{1,4})|([rgba]{1,4})|((_m[0123][0123])+)|((_[1234][1234])+))(?!\p{Alnum})</SEQ_REGEXP>
\r
123 <!-- Atomic, but complex types -->
\r
124 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="bool">bool[1234](x[1234])?\b</SEQ_REGEXP>
\r
125 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="int">int[1234](x[1234])?\b</SEQ_REGEXP>
\r
126 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="half">half[1234](x[1234])?\b</SEQ_REGEXP>
\r
127 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="float">float[1234](x[1234])?\b</SEQ_REGEXP>
\r
128 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="double">double[1234](x[1234])?\b</SEQ_REGEXP>
\r
131 <SEQ_REGEXP TYPE="KEYWORD1" HASH_CHAR=":">:\s*(register\s*\(\w+(\s*\,\s*\w+\s*)?\)|\w+)</SEQ_REGEXP>
\r
134 <!-- Control flow keywords -->
\r
135 <KEYWORD1>discard</KEYWORD1>
\r
136 <KEYWORD1>do</KEYWORD1>
\r
137 <KEYWORD1>else</KEYWORD1>
\r
138 <KEYWORD1>for</KEYWORD1>
\r
139 <KEYWORD1>if</KEYWORD1>
\r
140 <KEYWORD1>return</KEYWORD1>
\r
141 <KEYWORD1>typedef</KEYWORD1>
\r
142 <KEYWORD1>while</KEYWORD1>
\r
144 <!-- Other keywords -->
\r
145 <KEYWORD1>compile</KEYWORD1>
\r
146 <KEYWORD1>compile_fragment</KEYWORD1>
\r
147 <KEYWORD1>register</KEYWORD1>
\r
148 <KEYWORD1>sampler_state</KEYWORD1>
\r
149 <KEYWORD1>stateblock_state</KEYWORD1>
\r
150 <KEYWORD1>technique</KEYWORD1>
\r
151 <KEYWORD1>Technique</KEYWORD1>
\r
152 <KEYWORD1>TECHNIQUE</KEYWORD1>
\r
153 <KEYWORD1>pass</KEYWORD1>
\r
154 <KEYWORD1>Pass</KEYWORD1>
\r
155 <KEYWORD1>PASS</KEYWORD1>
\r
156 <KEYWORD1>decl</KEYWORD1>
\r
157 <KEYWORD1>Decl</KEYWORD1>
\r
158 <KEYWORD1>DECL</KEYWORD1>
\r
160 <!-- Atomic type keywords -->
\r
161 <KEYWORD2>void</KEYWORD2>
\r
162 <KEYWORD2>bool</KEYWORD2>
\r
163 <KEYWORD2>int</KEYWORD2>
\r
164 <KEYWORD2>half</KEYWORD2>
\r
165 <KEYWORD2>float</KEYWORD2>
\r
166 <KEYWORD2>double</KEYWORD2>
\r
167 <KEYWORD2>vector</KEYWORD2>
\r
168 <KEYWORD2>matrix</KEYWORD2>
\r
170 <!-- Object type keywords -->
\r
171 <KEYWORD3>string</KEYWORD3>
\r
172 <KEYWORD3>texture</KEYWORD3>
\r
173 <KEYWORD3>texture1D</KEYWORD3>
\r
174 <KEYWORD3>texture2D</KEYWORD3>
\r
175 <KEYWORD3>texture3D</KEYWORD3>
\r
176 <KEYWORD3>textureCUBE</KEYWORD3>
\r
177 <KEYWORD3>sampler</KEYWORD3>
\r
178 <KEYWORD3>sampler1D</KEYWORD3>
\r
179 <KEYWORD3>sampler2D</KEYWORD3>
\r
180 <KEYWORD3>sampler3D</KEYWORD3>
\r
181 <KEYWORD3>samplerCUBE</KEYWORD3>
\r
182 <KEYWORD3>pixelfragment</KEYWORD3>
\r
183 <KEYWORD3>vertexfragment</KEYWORD3>
\r
184 <KEYWORD3>pixelshader</KEYWORD3>
\r
185 <KEYWORD3>vertexshader</KEYWORD3>
\r
186 <KEYWORD3>stateblock</KEYWORD3>
\r
187 <KEYWORD3>struct</KEYWORD3>
\r
189 <!-- Usage keywords -->
\r
190 <KEYWORD4>static</KEYWORD4>
\r
191 <KEYWORD4>uniform</KEYWORD4>
\r
192 <KEYWORD4>extern</KEYWORD4>
\r
193 <KEYWORD4>volatile</KEYWORD4>
\r
194 <KEYWORD4>inline</KEYWORD4>
\r
195 <KEYWORD4>shared</KEYWORD4>
\r
196 <KEYWORD4>const</KEYWORD4>
\r
197 <KEYWORD4>row_major</KEYWORD4>
\r
198 <KEYWORD4>column_major</KEYWORD4>
\r
199 <KEYWORD4>in</KEYWORD4>
\r
200 <KEYWORD4>inout</KEYWORD4>
\r
201 <KEYWORD4>out</KEYWORD4>
\r
204 <LITERAL1>false</LITERAL1>
\r
205 <LITERAL1>true</LITERAL1>
\r
206 <LITERAL1>NULL</LITERAL1>
\r
208 <!-- Intrinsic functions -->
\r
209 <LITERAL2>abs</LITERAL2>
\r
210 <LITERAL2>acos</LITERAL2>
\r
211 <LITERAL2>all</LITERAL2>
\r
212 <LITERAL2>any</LITERAL2>
\r
213 <LITERAL2>asin</LITERAL2>
\r
214 <LITERAL2>atan</LITERAL2>
\r
215 <LITERAL2>atan2</LITERAL2>
\r
216 <LITERAL2>ceil</LITERAL2>
\r
217 <LITERAL2>clamp</LITERAL2>
\r
218 <LITERAL2>clip</LITERAL2>
\r
219 <LITERAL2>cos</LITERAL2>
\r
220 <LITERAL2>cosh</LITERAL2>
\r
221 <LITERAL2>cross</LITERAL2>
\r
222 <LITERAL2>D3DCOLORtoUBYTE4</LITERAL2>
\r
223 <LITERAL2>ddx</LITERAL2>
\r
224 <LITERAL2>ddy</LITERAL2>
\r
225 <LITERAL2>degrees</LITERAL2>
\r
226 <LITERAL2>determinant</LITERAL2>
\r
227 <LITERAL2>distance</LITERAL2>
\r
228 <LITERAL2>dot</LITERAL2>
\r
229 <LITERAL2>exp</LITERAL2>
\r
230 <LITERAL2>exp2</LITERAL2>
\r
231 <LITERAL2>faceforward</LITERAL2>
\r
232 <LITERAL2>floor</LITERAL2>
\r
233 <LITERAL2>fmod</LITERAL2>
\r
234 <LITERAL2>frac</LITERAL2>
\r
235 <LITERAL2>frexp</LITERAL2>
\r
236 <LITERAL2>fwidth</LITERAL2>
\r
237 <LITERAL2>isfinite</LITERAL2>
\r
238 <LITERAL2>isinf</LITERAL2>
\r
239 <LITERAL2>isnan</LITERAL2>
\r
240 <LITERAL2>ldexp</LITERAL2>
\r
241 <LITERAL2>length</LITERAL2>
\r
242 <LITERAL2>lerp</LITERAL2>
\r
243 <LITERAL2>lit</LITERAL2>
\r
244 <LITERAL2>log</LITERAL2>
\r
245 <LITERAL2>log10</LITERAL2>
\r
246 <LITERAL2>log2</LITERAL2>
\r
247 <LITERAL2>max</LITERAL2>
\r
248 <LITERAL2>min</LITERAL2>
\r
249 <LITERAL2>modf</LITERAL2>
\r
250 <LITERAL2>mul</LITERAL2>
\r
251 <LITERAL2>noise</LITERAL2>
\r
252 <LITERAL2>normalize</LITERAL2>
\r
253 <LITERAL2>pow</LITERAL2>
\r
254 <LITERAL2>radians</LITERAL2>
\r
255 <LITERAL2>reflect</LITERAL2>
\r
256 <LITERAL2>refract</LITERAL2>
\r
257 <LITERAL2>round</LITERAL2>
\r
258 <LITERAL2>rsqrt</LITERAL2>
\r
259 <LITERAL2>saturate</LITERAL2>
\r
260 <LITERAL2>sign</LITERAL2>
\r
261 <LITERAL2>sin</LITERAL2>
\r
262 <LITERAL2>sincos</LITERAL2>
\r
263 <LITERAL2>sinh</LITERAL2>
\r
264 <LITERAL2>smoothstep</LITERAL2>
\r
265 <LITERAL2>sqrt</LITERAL2>
\r
266 <LITERAL2>step</LITERAL2>
\r
267 <LITERAL2>tan</LITERAL2>
\r
268 <LITERAL2>tanh</LITERAL2>
\r
269 <LITERAL2>transpose</LITERAL2>
\r
271 <!-- Intrinsic functions - sampling -->
\r
272 <LITERAL3>tex1D</LITERAL3>
\r
273 <LITERAL3>tex1Dgrad</LITERAL3>
\r
274 <LITERAL3>tex1Dbias</LITERAL3>
\r
275 <LITERAL3>tex1Dgrad</LITERAL3>
\r
276 <LITERAL3>tex1Dlod</LITERAL3>
\r
277 <LITERAL3>tex1Dproj</LITERAL3>
\r
278 <LITERAL3>tex2D</LITERAL3>
\r
279 <LITERAL3>tex2D</LITERAL3>
\r
280 <LITERAL3>tex2Dbias</LITERAL3>
\r
281 <LITERAL3>tex2Dgrad</LITERAL3>
\r
282 <LITERAL3>tex2Dlod</LITERAL3>
\r
283 <LITERAL3>tex2Dproj</LITERAL3>
\r
284 <LITERAL3>tex3D</LITERAL3>
\r
285 <LITERAL3>tex3D</LITERAL3>
\r
286 <LITERAL3>tex3Dbias</LITERAL3>
\r
287 <LITERAL3>tex3Dgrad</LITERAL3>
\r
288 <LITERAL3>tex3Dlod</LITERAL3>
\r
289 <LITERAL3>tex3Dproj</LITERAL3>
\r
290 <LITERAL3>texCUBE</LITERAL3>
\r
291 <LITERAL3>texCUBE</LITERAL3>
\r
292 <LITERAL3>texCUBEbias</LITERAL3>
\r
293 <LITERAL3>texCUBEgrad</LITERAL3>
\r
294 <LITERAL3>texCUBElod</LITERAL3>
\r
295 <LITERAL3>texCUBEproj</LITERAL3>
\r
297 <!-- Reserved but unused words -->
\r
298 <INVALID>auto</INVALID>
\r
299 <INVALID>break</INVALID>
\r
300 <INVALID>case</INVALID>
\r
301 <INVALID>catch</INVALID>
\r
302 <INVALID>char</INVALID>
\r
303 <INVALID>class</INVALID>
\r
304 <INVALID>const_cast</INVALID>
\r
305 <INVALID>continue</INVALID>
\r
306 <INVALID>default</INVALID>
\r
307 <INVALID>delete</INVALID>
\r
308 <INVALID>dynamic_cast</INVALID>
\r
309 <INVALID>enum</INVALID>
\r
310 <INVALID>explicit</INVALID>
\r
311 <INVALID>friend</INVALID>
\r
312 <INVALID>goto</INVALID>
\r
313 <INVALID>long</INVALID>
\r
314 <INVALID>mutable</INVALID>
\r
315 <INVALID>namespace</INVALID>
\r
316 <INVALID>new</INVALID>
\r
317 <INVALID>operator</INVALID>
\r
318 <INVALID>private</INVALID>
\r
319 <INVALID>protected</INVALID>
\r
320 <INVALID>public</INVALID>
\r
321 <INVALID>reinterpret_cast</INVALID>
\r
322 <INVALID>short</INVALID>
\r
323 <INVALID>signed</INVALID>
\r
324 <INVALID>sizeof</INVALID>
\r
325 <INVALID>static_cast</INVALID>
\r
326 <INVALID>switch</INVALID>
\r
327 <INVALID>template</INVALID>
\r
328 <INVALID>this</INVALID>
\r
329 <INVALID>throw</INVALID>
\r
330 <INVALID>try</INVALID>
\r
331 <INVALID>typename</INVALID>
\r
332 <INVALID>union</INVALID>
\r
333 <INVALID>unsigned</INVALID>
\r
334 <INVALID>using</INVALID>
\r
335 <INVALID>virtual</INVALID>
\r
339 <RULES SET="Include" DEFAULT="KEYWORD2" />
\r
344 IGNORE_CASE="FALSE"
\r
345 HIGHLIGHT_DIGITS="TRUE"
\r
346 DIGIT_RE="((0x[[:xdigit:]]+|[[:digit:]]+)[uUIL]?|[[:digit:]]+([eE][[:digit:]]*)?[hHfF]?)">
\r
348 <!-- C style comment -->
\r
349 <SPAN TYPE="COMMENT1">
\r
354 <!-- this is a hack so that #include <net/if.h> does not get the if highlighted -->
\r
355 <EOL_SPAN TYPE="MARKUP" DELEGATE="Include">include</EOL_SPAN>
\r
358 <!-- Directives -->
\r
359 <MARKUP>define</MARKUP>
\r
360 <MARKUP>elif</MARKUP>
\r
361 <MARKUP>else</MARKUP>
\r
362 <MARKUP>endif</MARKUP>
\r
363 <MARKUP>error</MARKUP>
\r
364 <MARKUP>if</MARKUP>
\r
365 <MARKUP>ifdef</MARKUP>
\r
366 <MARKUP>ifndef</MARKUP>
\r
367 <MARKUP>line</MARKUP>
\r
368 <MARKUP>pragma</MARKUP>
\r
369 <MARKUP>undef</MARKUP>
\r
372 <LITERAL1>pack_matrix</LITERAL1>
\r
373 <LITERAL1>warning</LITERAL1>
\r
374 <LITERAL1>def</LITERAL1>
\r
375 <LITERAL1>defined</LITERAL1>
\r
376 <LITERAL1>D3DX</LITERAL1>
\r
377 <LITERAL1>D3DX_VERSION</LITERAL1>
\r
378 <LITERAL1>DIRECT3D</LITERAL1>
\r
379 <LITERAL1>DIRECT3D_VERSION</LITERAL1>
\r
380 <LITERAL1>__FILE__</LITERAL1>
\r
381 <LITERAL1>__LINE__</LITERAL1>
\r
387 IGNORE_CASE="FALSE"
\r
388 HIGHLIGHT_DIGITS="TRUE"
\r
389 DIGIT_RE="((0x[[:xdigit:]]+|[[:digit:]]+)[uUIL]?|[[:digit:]]+([eE][[:digit:]]*)?[hHfF]?)">
\r
391 <!-- Starting... -->
\r
392 <SEQ TYPE="OPERATOR">{</SEQ>
\r
395 <SPAN TYPE="COMMENT1">
\r
399 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
\r
400 <EOL_SPAN TYPE="COMMENT2">;</EOL_SPAN>
\r
403 <SEQ TYPE="OPERATOR">+</SEQ>
\r
404 <SEQ TYPE="OPERATOR">-</SEQ>
\r
405 <SEQ TYPE="OPERATOR">,</SEQ>
\r
407 <!-- Swizzle operator -->
\r
408 <SEQ_REGEXP TYPE="OPERATOR" HASH_CHAR=".">.(([xyzw]{1,4}))</SEQ_REGEXP>
\r
410 <!-- Instruction -->
\r
411 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="abs">abs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
412 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="add">add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
413 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="bem">bem(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
414 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="break_comp">break_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
415 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="breakp">breakp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
416 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="callnz">callnz(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
417 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="cmp">cmp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
418 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="cnd">cnd(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
419 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="crs">crs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
420 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp2add">dp2add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
421 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp3">dp3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
422 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp4">dp4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
423 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dst">dst(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
424 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dsx">dsx(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
425 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dsy">dsy(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
426 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="else">else(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
427 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endif">endif(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
428 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endloop">endloop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
429 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endrep">endrep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
430 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="exp">exp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
431 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="frc">frc(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
432 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="if">if(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
433 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="label">label(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
434 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="lit">lit(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
435 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="logp">logp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
436 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="loop">loop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
437 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="lrp">lrp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
438 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x2">m3x2(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
439 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x3">m3x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
440 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x4">m3x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
441 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m4x3">m4x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
442 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m4x4">m4x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
443 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mad">mad(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
444 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mov">mov(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
445 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="max">max(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
446 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="min">min(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
447 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mova">mova(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
448 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mul">mul(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
449 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="nop">nop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
450 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="nrm">nrm(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
451 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="phase">phase(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
452 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="pow">pow(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
453 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rcp">rcp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
454 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rep">rep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
455 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="ret">ret(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
456 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rsq">rsq(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
457 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="setp_comp">setp_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
458 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sge">sge(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
459 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sgn">sgn(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
460 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sincos">sincos(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
461 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="slt">slt(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
462 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sub">sub(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
463 <!-- (seen in preshader -->
\r
464 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="neg">neg(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
\r
466 <!-- Texturing instruction -->
\r
467 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2" HASH_CHAR="tex">tex\w*</SEQ_REGEXP>
\r
469 <!-- Main instruction -->
\r
470 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="ps">ps\w*</SEQ_REGEXP>
\r
471 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="vs">vs\w*</SEQ_REGEXP>
\r
472 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="def">def\w*</SEQ_REGEXP>
\r
473 <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="dcl">dcl\w*</SEQ_REGEXP>
\r