]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/assembly-arm32.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / assembly-arm32.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--
6   ARM32 Assembly mode (as of armasm v6.6)
7   contributed by M. Cesar R. Lacruz (mcesar@sec.upm.es)
8   v1.0 2017/02/10
9
10   For comments / suggestions / contributions, please contact the
11     auhor through the above email address
12
13   Usage of keywords:
14     - COMMENT1: line comments  (; ... )
15     - DIGIT:    numbers (including single chars between single quotes)
16     - KEYWORD1: assembler directives
17     - KEYWORD2: reserved words for parameters of assembler directives
18     - KEYWORD3: mnemonics
19     - KEYWORD4: registers, flags and some parameters for mnemonics
20     - FUNCTION: floating point mnemonics
21     - LABEL:    labels (including local ones)
22     - LITERAL1: strings
23     - LITERAL2: immediate operand (#) and immediate 32 bit operand (=)
24     - LITERAL3: macro parameters ($)
25     - LITERAL4: references to local labels
26     - MARKUP:   C preprocessor directives
27     - OPERATOR: operators
28
29   As the total number of mnemonics, including all possible condition
30     and width suffixes, is huge, heavy usage of SEQ_REGEXP tags was
31     choosed to cope with them. Only those not catchable with regexps
32     deserve a KEYWORD tag
33
34   FILENAME_GLOB="*.s"
35
36   TODO: include the advanced SIMD instructions
37 -->
38
39 <MODE>
40         <PROPS>
41                 <PROPERTY NAME="lineComment" VALUE=";" />
42                 <PROPERTY NAME="contextInsensitive" VALUE="TRUE"/>
43         </PROPS>
44
45         <RULES HIGHLIGHT_DIGITS="FALSE" IGNORE_CASE="TRUE" NO_WORD_SEP="_">
46                 <!-- comment -->
47                 <EOL_SPAN TYPE="COMMENT1">;</EOL_SPAN>
48
49                 <!-- label -->
50                 <SEQ_REGEXP TYPE="LABEL" AT_LINE_START="TRUE" HASH_CHARS="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_">[a-zA-Z_]\w*</SEQ_REGEXP>
51                 <!-- label inside macro -->
52                 <SEQ_REGEXP TYPE="LABEL" AT_LINE_START="TRUE" HASH_CHARS="$">\$[a-zA-Z_](\w*\.?\w+)?</SEQ_REGEXP>
53                 <!-- local label -->
54                 <SEQ_REGEXP TYPE="LABEL" AT_LINE_START="TRUE" HASH_CHARS="0123456789">[1-9]?\d([a-zA-Z_]\w*)*</SEQ_REGEXP>
55                 <!-- reference to local label -->
56                 <SEQ_REGEXP TYPE="LITERAL4" AT_WORD_START="TRUE" HASH_CHAR="%">%(F|B)?(A|T)?[1-9]?\d([a-zA-Z_]\w*)*</SEQ_REGEXP>
57
58                 <!-- macro parameters -->
59                 <SEQ TYPE="NULL">$$</SEQ>  <!-- to escape $$ in linker symbol names -->
60                 <MARK_FOLLOWING MATCH_TYPE="LITERAL3" TYPE="LITERAL3">$</MARK_FOLLOWING>
61
62                 <!-- numbers -->
63                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE" HASH_CHARS="023456789&amp;">0f_[\da-fA_F]{8}|0d_[\da-fA_F]{16}|0x[\da-fA-F]+|[2-9]_[0-8]+|&amp;[\da-fA-F]+</SEQ_REGEXP>
64                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE" HASH_CHARS="0123456789.">\d*\.?\d+[Ee]\-?\d+</SEQ_REGEXP>
65                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE" HASH_CHARS="0123456789.">\d*\.\d+</SEQ_REGEXP>
66                 <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE" HASH_CHARS="0123456789">\d+</SEQ_REGEXP>
67
68                 <!-- multi word directives -->
69                 <SEQ_REGEXP TYPE="KEYWORD1" AT_WORD_START="TRUE" HASH_CHAR="FRAME ">FRAME\s+(ADDRESS|POP|PUSH|REGISTER|RESTORE|SAVE|RETURN\s+ADDRESS|STATE\s+REMEMBER|STATE\s+RESTORE|UNWIND\s+ON|UNWIND\s+OFF)</SEQ_REGEXP>
70
71                 <!-- [WEAK] directive parameter -->
72                 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="[">\[WEAK\]</SEQ_REGEXP>
73
74                 <!-- Boolean values -->
75                 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="{">\{TRUE\}</SEQ_REGEXP>
76                 <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="{">\{FALSE\}</SEQ_REGEXP>
77
78                 <!-- numbered registers -->
79                 <SEQ_REGEXP TYPE="KEYWORD4" AT_WORD_START="TRUE" HASH_CHAR="a">a[1-4]</SEQ_REGEXP>
80                 <SEQ_REGEXP TYPE="KEYWORD4" AT_WORD_START="TRUE" HASH_CHAR="v">v[1-8]</SEQ_REGEXP>
81                 <SEQ_REGEXP TYPE="KEYWORD4" AT_WORD_START="TRUE" HASH_CHARS="rpc">[rpc](1[0-5]|\d)</SEQ_REGEXP>
82                 <SEQ_REGEXP TYPE="KEYWORD4" AT_WORD_START="TRUE" HASH_CHARS="ds">[ds]([1-2]\d|3[0-1]|\d)</SEQ_REGEXP>
83
84                 <!-- C preprocessor directives. Just in case... -->
85                 <SEQ_REGEXP TYPE="MARKUP" AT_WHITESPACE_END="TRUE" HASH_CHAR="#">#(define|include|undef|ifdef|ifndef|if|else|elif|endif|error|line|pragma|warning)</SEQ_REGEXP>
86
87                 <!-- chars (they are numbers) -->
88                 <SPAN TYPE="DIGIT" NO_LINE_BREAK="TRUE">
89                         <BEGIN>'</BEGIN>
90                         <END>'</END>
91                 </SPAN>
92
93                 <!-- strings -->
94                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
95                         <BEGIN>"</BEGIN>
96                         <END>"</END>
97                 </SPAN>
98
99                 <!-- special symbols -->
100                 <SPAN TYPE="NULL" MATCH_TYPE="OPERATOR" NO_LINE_BREAK="TRUE">
101                         <BEGIN>||</BEGIN>
102                         <END>||</END>
103                 </SPAN>
104                 <SPAN TYPE="NULL" MATCH_TYPE="OPERATOR" NO_LINE_BREAK="TRUE">
105                         <BEGIN>|</BEGIN>
106                         <END>|</END>
107                 </SPAN>
108
109                 <!-- "simple" instructions -->
110                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">(BKPT|CPSI[ED]|HLTQ?|HVC|SETEND|TB[BH])\s</SEQ_REGEXP>
111
112                 <!-- LDR{cond}{.w} instruction -->
113                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">LDR(SB|SH|B|H)?S?(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.W|\.N)\s</SEQ_REGEXP>
114
115                 <!-- IT instruction. IT w/o conditions is not caught, so it has entries below -->
116                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">IT[TE]{0,3}\s+(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?</SEQ_REGEXP>
117
118                 <!-- instructions with {S}{cond} suffixes -->
119                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">(AD[CD]|AND|ASR|BIC|EOR|LSL|LSR|ML[AS]|MOV|MUL|MVN|OR[NR]|ROR|RRX|RS[BC]|SBC|SMLAL|[SU]MULL|SUB|UMLAL)S?(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?\s</SEQ_REGEXP>
120
121                 <!-- instructions with {cond}{.w} suffixes -->
122                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">(ADR|BL?XNS|BL?X?|TTA?T?|UDF)(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.W|\.N)?\s</SEQ_REGEXP>
123
124                 <!-- instructions with {.w} suffix -->
125                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">(CBN?Z|CRC32C?[BHW]|SETPAN)(\.W|\.N)?\s</SEQ_REGEXP>
126
127                 <!-- instruction with {cond} suffix -->
128                 <SEQ_REGEXP TYPE="KEYWORD3" AT_WORD_START="TRUE">(ADRL|BF[IC]|BXJ|CDP2?|CLZ|CM[PN]|CPY|LDAEX[BHD]?|LDA[BH]?|LDC2?L?|LDM(IA|IB|DA|DB|FD|FA|ED|EA)?|LDR(SB|SH|B|H)?T?|LDRD|LDREX[BHD]?|MCRR?2?|MOV32|MOVT|MRR?C2?|MRS|MSR|NEG|PKH(TB|BT)|PL(DW|D|I)|POP|PUSH|QADD(16|8)?|QASX|QDADD|QDSUB|QSAX|QSUB(16|8)?|RBIT|REV(SH|16)?|RFE(IA|IB|DA|DB)?|SH?ADD(16|8)|SH?ASX|SBFX|[SU]DIV|SEL|SH?SAX|SH?SUB(16|8)|SMC|SMLAL?[BT][BT]|SMLAL?DX?|SMLSL?DX?|SMLAW[BT]|SMML[AS]R?|SMMULR?|SMUADX?|SMUL[BT][BT]|SMULW[BT]|SMUSDX?|SRS(IA|IB|DA|DB|FD|FA|ED|EA)?|[US]SAT|[US]SAT16|STC2?L?|STL[BH]?|STLEX[BHD]?|STM(IA|IB|DA|DB|FD|FA|ED|EA)?|STR(EX)?[BHD]?|STR[BH]?T|SVC|SWPB?|SXTA?B(16)?|SXTA?H|SYS|TEQ|TST|U[QH]?ADD(16|8)|U[QH]?ASX|UBFX|U[QH]?SAX|U[HQ]?SUB(16|8)|UMAAL|USADA?8|UXTA?B16|UXTA?[BH])(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?\s</SEQ_REGEXP>
129
130                 <!-- floating point instructions with optional .32 suffix -->
131                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VMOV(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.32)?\s</SEQ_REGEXP>
132                 <!-- floating point instructions with OPTIONAL .32 or .64 suffix -->
133                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">V(LDR|STR)(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.32|\.64)?\s</SEQ_REGEXP>
134                 <!-- floating point instructions with .F32 or .F64 suffix -->
135                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">V(ABS|ADD|CMPE?|DIV|FN?(MA|MS)|LDR|ML[AS]|MOV|MUL|NEG|NML[AS]|NMUL|SEL|SQRT|SUB)(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.F32|\.F64)\s</SEQ_REGEXP>
136                 <!-- floating point instructions with .F32.F64 or .F64.F32 suffix -->
137                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVT(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.F32\.F64|\.F64\.F32)\s</SEQ_REGEXP>
138                 <!-- floating point instructions with .F16.F64 or .F64.F16 suffix -->
139                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVT[BT](EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.F16\.F64|\.F64\.F16)\s</SEQ_REGEXP>
140                 <!-- floating point instructions with .F32.F16 or .F16.F32 suffix -->
141                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVT[BT](EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.F32\.F16|\.F16\.F32)\s</SEQ_REGEXP>
142                 <!-- floating point instructions with .F32.F32 or .F64.F64 suffix -->
143                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VRINT[ZRXANPM](EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.F32\.F32|\.F64\.F64)\s</SEQ_REGEXP>
144                 <!-- floating point instructions with .F(32|64).[US]32 or .[US]32.F(32|64) suffix -->
145                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVTR?(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.[US]32\.F(32|64))\s</SEQ_REGEXP>
146                 <!-- floating point instructions with or .[US]32.F(32|64) suffix -->
147                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVT[ANPM](\.F(32|64)\.[US]32|\.[US]32\.F(32|64))\s</SEQ_REGEXP>
148                 <!-- floating point instructions with .F(32|64).[US](16|32) or .[US]32.F(32|64) suffix -->
149                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">VCVT(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?(\.[US](16|32)\.F(32|64))\s</SEQ_REGEXP>
150                 <!-- floating point instructions w/o suffix -->
151                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">V(LDM(IA|DB|EA|FD)|MOV|MRS|MSR|POP|PUSH|STM(IA|DB|EA|FD))(EQ|NE|CS|HS|CC|LO|MI|PL|VS|VC|HI|LS|GE|LT|GT|LE|AL)?\s</SEQ_REGEXP>
152                 <!-- unconditional floating point intructions -->
153                 <SEQ_REGEXP TYPE="FUNCTION" AT_WORD_START="TRUE" HASH_CHAR="V">V(JCVT(\.N|\.W)?\.S32\.F64|M(AX|IN)NM\.F(32|64))\s</SEQ_REGEXP>
154
155                 <!-- immediate operand -->
156                 <SEQ TYPE="LITERAL2">#</SEQ>
157                 <!-- 32-bit immediate for LDR pseudo-instruction -->
158                 <SEQ TYPE="LITERAL2">=</SEQ>
159
160                 <!-- operators -->
161                 <SEQ TYPE="OPERATOR">(</SEQ>
162                 <SEQ TYPE="OPERATOR">)</SEQ>
163                 <SEQ TYPE="OPERATOR">[</SEQ>          <!-- indirection -->
164                 <SEQ TYPE="OPERATOR">]</SEQ>          <!-- indirection -->
165                 <SEQ TYPE="OPERATOR">{</SEQ>          <!-- register group -->
166                 <SEQ TYPE="OPERATOR">}</SEQ>          <!-- register group -->
167                 <SEQ TYPE="OPERATOR">?</SEQ>          <!-- # of bytes -->
168                 <SEQ TYPE="OPERATOR">+</SEQ>
169                 <SEQ TYPE="OPERATOR">-</SEQ>
170                 <SEQ TYPE="OPERATOR">*</SEQ>
171                 <SEQ TYPE="OPERATOR">/</SEQ>
172                 <SEQ TYPE="OPERATOR">:MOD:</SEQ>
173                 <SEQ TYPE="OPERATOR">%</SEQ>          <!-- alias for :MOD: & reference -->
174                 <SEQ TYPE="OPERATOR">:BASE:</SEQ>
175                 <SEQ TYPE="OPERATOR">:CC_ENCODING:</SEQ>
176                 <SEQ TYPE="OPERATOR">:DEF:</SEQ>
177                 <SEQ TYPE="OPERATOR">:INDEX:</SEQ>
178                 <SEQ TYPE="OPERATOR">:LEN:</SEQ>
179                 <SEQ TYPE="OPERATOR">:LNOT:</SEQ>
180                 <SEQ TYPE="OPERATOR">:NOT:</SEQ>
181                 <SEQ TYPE="OPERATOR">:RCONST:</SEQ>
182                 <SEQ TYPE="OPERATOR">:CC:</SEQ>
183                 <SEQ TYPE="OPERATOR">:LEFT:</SEQ>
184                 <SEQ TYPE="OPERATOR">:RIGHT:</SEQ>
185                 <SEQ TYPE="OPERATOR">:ROL:</SEQ>
186                 <SEQ TYPE="OPERATOR">:ROR:</SEQ>
187                 <SEQ TYPE="OPERATOR">:SHL:</SEQ>
188                 <SEQ TYPE="OPERATOR">:SHR:</SEQ>
189                 <SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>   <!-- alias for :SHL: -->
190                 <SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>   <!-- alias for :SHR: -->
191                 <SEQ TYPE="OPERATOR">:AND:</SEQ>
192                 <SEQ TYPE="OPERATOR">:EOR:</SEQ>
193                 <SEQ TYPE="OPERATOR">:OR:</SEQ>
194                 <SEQ TYPE="OPERATOR">^</SEQ>          <!-- alias for :EOR: and in LDM/STM... -->
195                 <SEQ TYPE="OPERATOR">&amp;</SEQ>      <!-- alias for :AND: -->
196                 <!-- better as literal (LDR R0, =0x012345678)
197                 <SEQ TYPE="OPERATOR">=</SEQ>
198                 -->
199                 <SEQ TYPE="OPERATOR">==</SEQ>         <!-- alias for = -->
200                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
201                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
202                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
203                 <SEQ TYPE="OPERATOR">&lt;=:</SEQ>
204                 <SEQ TYPE="OPERATOR">/=</SEQ>
205                 <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>   <!-- alias for /= -->
206                 <SEQ TYPE="OPERATOR">!=</SEQ>         <!-- alias for /= -->
207                 <SEQ TYPE="OPERATOR">:LAND:</SEQ>
208                 <SEQ TYPE="OPERATOR">:LEOR:</SEQ>
209                 <SEQ TYPE="OPERATOR">:LOR:</SEQ>
210                 <SEQ TYPE="OPERATOR">&amp;&amp;</SEQ> <!-- alias for :LAND: -->
211                 <!-- the span caughts it previously -->
212                 <SEQ TYPE="OPERATOR">||</SEQ>         <!-- alias for :LOR: -->
213                 <SEQ TYPE="OPERATOR">!</SEQ>          <!-- for LDM/STM... -->
214
215                 <KEYWORDS>
216                         <!-- directives -->
217                         <KEYWORD1>ALIAS</KEYWORD1>
218                         <KEYWORD1>ALIGN</KEYWORD1>
219                         <KEYWORD1>AREA</KEYWORD1>
220                         <KEYWORD2>ASSOC</KEYWORD2>
221                         <KEYWORD2>CODE</KEYWORD2>
222                         <KEYWORD2>CODEALIGN</KEYWORD2>
223                         <KEYWORD2>COMDEF</KEYWORD2>
224                         <KEYWORD2>COMGROUP</KEYWORD2>
225                         <KEYWORD2>EXECONLY</KEYWORD2>
226                         <KEYWORD2>FINI_ARRAY</KEYWORD2>
227                         <KEYWORD2>GROUP</KEYWORD2>
228                         <KEYWORD2>INIT_ARRAY</KEYWORD2>
229                         <KEYWORD2>LINKORDER</KEYWORD2>
230                         <KEYWORD2>MERGE</KEYWORD2>
231                         <KEYWORD2>NOALLOC</KEYWORD2>
232                         <KEYWORD2>NOINIT</KEYWORD2>
233                         <KEYWORD2>PREINIT_ARRAY</KEYWORD2>
234                         <KEYWORD2>READONLY</KEYWORD2>
235                         <KEYWORD2>READWRITE</KEYWORD2>
236                         <KEYWORD2>SECFLAGS</KEYWORD2>
237                         <KEYWORD2>SECTYPE</KEYWORD2>
238                         <KEYWORD2>STRINGS</KEYWORD2>
239                         <KEYWORD2>ZEROALIGN</KEYWORD2>
240                         <KEYWORD1>ARM</KEYWORD1>
241                         <KEYWORD1>CODE32</KEYWORD1>
242                         <KEYWORD1>ASSERT</KEYWORD1>
243                         <KEYWORD1>ATTR</KEYWORD1>
244                         <KEYWORD2>FILESCOPE</KEYWORD2>
245                         <KEYWORD2>SCOPE</KEYWORD2>
246                         <KEYWORD2>SETVALUE</KEYWORD2>
247                         <KEYWORD2>SETSTRING</KEYWORD2>
248                         <KEYWORD2>SETCOMPATWITHVALUE</KEYWORD2>
249                         <KEYWORD2>SETCOMPATWITHSTRING</KEYWORD2>
250                         <KEYWORD1>CN</KEYWORD1>
251                         <KEYWORD1>CODE16</KEYWORD1>
252                         <KEYWORD1>COMMON</KEYWORD1>
253                         <KEYWORD2>DYNAMIC</KEYWORD2>
254                         <KEYWORD2>PROTECTED</KEYWORD2>
255                         <KEYWORD2>HIDDEN</KEYWORD2>
256                         <KEYWORD2>INTERNAL</KEYWORD2>
257                         <KEYWORD1>CP</KEYWORD1>
258                         <KEYWORD1>DCB</KEYWORD1>
259                         <KEYWORD1>DCD</KEYWORD1>
260                         <KEYWORD1>DCDU</KEYWORD1>
261                         <KEYWORD1>DCDO</KEYWORD1>
262                         <KEYWORD1>DCFD</KEYWORD1>
263                         <KEYWORD1>DCFDU</KEYWORD1>
264                         <KEYWORD1>DCFS</KEYWORD1>
265                         <KEYWORD1>DCFSU</KEYWORD1>
266                         <KEYWORD1>DCI</KEYWORD1>
267                         <KEYWORD1>DCI.W</KEYWORD1>
268                         <KEYWORD1>DCQ</KEYWORD1>
269                         <KEYWORD1>DCQU</KEYWORD1>
270                         <KEYWORD1>DCW</KEYWORD1>
271                         <KEYWORD1>DCWU</KEYWORD1>
272                         <KEYWORD1>END</KEYWORD1>
273                         <KEYWORD1>ENDFUNC</KEYWORD1>
274                         <KEYWORD1>ENDP</KEYWORD1>
275                         <KEYWORD1>ENTRY</KEYWORD1>
276                         <KEYWORD1>EQU</KEYWORD1>
277                         <KEYWORD2>ARM</KEYWORD2>
278                         <KEYWORD2>CODE32</KEYWORD2>
279                         <KEYWORD2>DATA</KEYWORD2>
280                         <KEYWORD1>EXPORT</KEYWORD1>
281                         <KEYWORD1>GLOBAL</KEYWORD1>
282                         <KEYWORD2>ELFTYPE</KEYWORD2>
283                         <KEYWORD1>EXPORTAS</KEYWORD1>
284                         <KEYWORD1>FIELD</KEYWORD1>
285                         <KEYWORD1>FUNCTION</KEYWORD1>
286                         <KEYWORD1>PROC</KEYWORD1>
287                         <KEYWORD1>GBLA</KEYWORD1>
288                         <KEYWORD1>GBLL</KEYWORD1>
289                         <KEYWORD1>GBLS</KEYWORD1>
290                         <KEYWORD1>GET</KEYWORD1>
291                         <KEYWORD1>INCLUDE</KEYWORD1>
292                         <KEYWORD1>IF</KEYWORD1>
293                         <KEYWORD1>ELSE</KEYWORD1>
294                         <KEYWORD1>ENDIF</KEYWORD1>
295                         <KEYWORD1>ELIF</KEYWORD1>
296                         <KEYWORD1>IMPORT</KEYWORD1>
297                         <KEYWORD1>EXTERN</KEYWORD1>
298                         <KEYWORD1>INCBIN</KEYWORD1>
299                         <KEYWORD1>INFO</KEYWORD1>
300                         <KEYWORD1>KEEP</KEYWORD1>
301                         <KEYWORD1>LCLA</KEYWORD1>
302                         <KEYWORD1>LCLL</KEYWORD1>
303                         <KEYWORD1>LCLS</KEYWORD1>
304                         <KEYWORD1>LTORG</KEYWORD1>
305                         <KEYWORD1>MACRO</KEYWORD1>
306                         <KEYWORD1>MEND</KEYWORD1>
307                         <KEYWORD1>MAP</KEYWORD1>
308                         <KEYWORD1>MEXIT</KEYWORD1>
309                         <KEYWORD1>NOFP</KEYWORD1>
310                         <KEYWORD1>OPT</KEYWORD1>
311                         <KEYWORD1>QN</KEYWORD1>
312                         <KEYWORD1>DN</KEYWORD1>
313                         <KEYWORD1>SN</KEYWORD1>
314                         <KEYWORD1>RELOC</KEYWORD1>
315                         <KEYWORD1>REQUIRE</KEYWORD1>
316                         <KEYWORD1>REQUIRE8</KEYWORD1>
317                         <KEYWORD1>PRESERVE8</KEYWORD1>
318                         <KEYWORD1>RLIST</KEYWORD1>
319                         <KEYWORD1>RN</KEYWORD1>
320                         <KEYWORD1>ROUT</KEYWORD1>
321                         <KEYWORD1>SETA</KEYWORD1>
322                         <KEYWORD1>SETL</KEYWORD1>
323                         <KEYWORD1>SETS</KEYWORD1>
324                         <KEYWORD1>SPACE</KEYWORD1>
325                         <KEYWORD1>FILL</KEYWORD1>
326                         <KEYWORD1>THUMB</KEYWORD1>
327                         <KEYWORD1>TTL</KEYWORD1>
328                         <KEYWORD1>SUBT</KEYWORD1>
329                         <KEYWORD1>WHILE</KEYWORD1>
330                         <KEYWORD1>WEND</KEYWORD1>
331                         <KEYWORD1>WN</KEYWORD1>
332
333                         <!-- non-numbered registers -->
334                         <KEYWORD4>sb</KEYWORD4>
335                         <KEYWORD4>ip</KEYWORD4>
336                         <KEYWORD4>sp</KEYWORD4>
337                         <KEYWORD4>lr</KEYWORD4>
338                         <KEYWORD4>pc</KEYWORD4>
339                         <KEYWORD4>APSR</KEYWORD4>
340                         <KEYWORD4>CPSR</KEYWORD4>
341                         <KEYWORD4>SPSR</KEYWORD4>
342                         <KEYWORD4>IPSR</KEYWORD4>
343                         <KEYWORD4>EPSR</KEYWORD4>
344                         <KEYWORD4>IEPSR</KEYWORD4>
345                         <KEYWORD4>IAPSR</KEYWORD4>
346                         <KEYWORD4>EAPSR</KEYWORD4>
347                         <KEYWORD4>MSP</KEYWORD4>
348                         <KEYWORD4>PSP</KEYWORD4>
349                         <KEYWORD4>XPSR</KEYWORD4>
350                         <KEYWORD4>PRIMASK</KEYWORD4>
351                         <KEYWORD4>BASEPRI</KEYWORD4>
352                         <KEYWORD4>BASEPRI_MAX</KEYWORD4>
353                         <KEYWORD4>FAULTMASK</KEYWORD4>
354                         <KEYWORD4>CONTROL</KEYWORD4>
355
356                         <!-- flags for the MSR instruction -->
357                         <KEYWORD4>n</KEYWORD4>
358                         <KEYWORD4>z</KEYWORD4>
359                         <KEYWORD4>c</KEYWORD4>
360                         <KEYWORD4>v</KEYWORD4>
361                         <KEYWORD4>q</KEYWORD4>
362                         <KEYWORD4>g</KEYWORD4>
363
364                         <!-- specifier for the SETEND instruction -->
365                         <KEYWORD4>BE</KEYWORD4>
366                         <KEYWORD4>LE</KEYWORD4>
367
368                         <!-- options for the DMB/DSB/ISB instructions -->
369                         <KEYWORD4>ISHLD</KEYWORD4>
370                         <KEYWORD4>ISHST</KEYWORD4>
371                         <KEYWORD4>ISH</KEYWORD4>
372                         <KEYWORD4>NSHLD</KEYWORD4>
373                         <KEYWORD4>NSHST</KEYWORD4>
374                         <KEYWORD4>NSH</KEYWORD4>
375                         <KEYWORD4>OSHLD</KEYWORD4>
376                         <KEYWORD4>OSHST</KEYWORD4>
377                         <KEYWORD4>OSH</KEYWORD4>
378                         <KEYWORD4>SH</KEYWORD4>
379                         <KEYWORD4>SY</KEYWORD4>
380                         <KEYWORD4>LD</KEYWORD4>
381                         <KEYWORD4>ST</KEYWORD4>
382
383                         <!-- instruction that can have no parameters, so that SEQ & -->
384                         <!-- SEQ_REGEXP can miss them if followed by \n -->
385                         <KEYWORD3>CLREXEQ</KEYWORD3>
386                         <KEYWORD3>CLREXNE</KEYWORD3>
387                         <KEYWORD3>CLREXCS</KEYWORD3>
388                         <KEYWORD3>CLREXHS</KEYWORD3>
389                         <KEYWORD3>CLREXCC</KEYWORD3>
390                         <KEYWORD3>CLREXLO</KEYWORD3>
391                         <KEYWORD3>CLREXMI</KEYWORD3>
392                         <KEYWORD3>CLREXPL</KEYWORD3>
393                         <KEYWORD3>CLREXVS</KEYWORD3>
394                         <KEYWORD3>CLREXVC</KEYWORD3>
395                         <KEYWORD3>CLREXHI</KEYWORD3>
396                         <KEYWORD3>CLREXLS</KEYWORD3>
397                         <KEYWORD3>CLREXGE</KEYWORD3>
398                         <KEYWORD3>CLREXLT</KEYWORD3>
399                         <KEYWORD3>CLREXGT</KEYWORD3>
400                         <KEYWORD3>CLREXLE</KEYWORD3>
401                         <KEYWORD3>CLREXAL</KEYWORD3>
402                         <KEYWORD3>CLREX</KEYWORD3>
403                         <KEYWORD3>DBGEQ</KEYWORD3>
404                         <KEYWORD3>DBGNE</KEYWORD3>
405                         <KEYWORD3>DBGCS</KEYWORD3>
406                         <KEYWORD3>DBGHS</KEYWORD3>
407                         <KEYWORD3>DBGCC</KEYWORD3>
408                         <KEYWORD3>DBGLO</KEYWORD3>
409                         <KEYWORD3>DBGMI</KEYWORD3>
410                         <KEYWORD3>DBGPL</KEYWORD3>
411                         <KEYWORD3>DBGVS</KEYWORD3>
412                         <KEYWORD3>DBGVC</KEYWORD3>
413                         <KEYWORD3>DBGHI</KEYWORD3>
414                         <KEYWORD3>DBGLS</KEYWORD3>
415                         <KEYWORD3>DBGGE</KEYWORD3>
416                         <KEYWORD3>DBGLT</KEYWORD3>
417                         <KEYWORD3>DBGGT</KEYWORD3>
418                         <KEYWORD3>DBGLE</KEYWORD3>
419                         <KEYWORD3>DBGAL</KEYWORD3>
420                         <KEYWORD3>DBG</KEYWORD3>
421                         <KEYWORD3>DMBEQ</KEYWORD3>
422                         <KEYWORD3>DMBNE</KEYWORD3>
423                         <KEYWORD3>DMBCS</KEYWORD3>
424                         <KEYWORD3>DMBHS</KEYWORD3>
425                         <KEYWORD3>DMBCC</KEYWORD3>
426                         <KEYWORD3>DMBLO</KEYWORD3>
427                         <KEYWORD3>DMBMI</KEYWORD3>
428                         <KEYWORD3>DMBPL</KEYWORD3>
429                         <KEYWORD3>DMBVS</KEYWORD3>
430                         <KEYWORD3>DMBVC</KEYWORD3>
431                         <KEYWORD3>DMBHI</KEYWORD3>
432                         <KEYWORD3>DMBLS</KEYWORD3>
433                         <KEYWORD3>DMBGE</KEYWORD3>
434                         <KEYWORD3>DMBLT</KEYWORD3>
435                         <KEYWORD3>DMBGT</KEYWORD3>
436                         <KEYWORD3>DMBLE</KEYWORD3>
437                         <KEYWORD3>DMBAL</KEYWORD3>
438                         <KEYWORD3>DMB</KEYWORD3>
439                         <KEYWORD3>DSBEQ</KEYWORD3>
440                         <KEYWORD3>DSBNE</KEYWORD3>
441                         <KEYWORD3>DSBCS</KEYWORD3>
442                         <KEYWORD3>DSBHS</KEYWORD3>
443                         <KEYWORD3>DSBCC</KEYWORD3>
444                         <KEYWORD3>DSBLO</KEYWORD3>
445                         <KEYWORD3>DSBMI</KEYWORD3>
446                         <KEYWORD3>DSBPL</KEYWORD3>
447                         <KEYWORD3>DSBVS</KEYWORD3>
448                         <KEYWORD3>DSBVC</KEYWORD3>
449                         <KEYWORD3>DSBHI</KEYWORD3>
450                         <KEYWORD3>DSBLS</KEYWORD3>
451                         <KEYWORD3>DSBGE</KEYWORD3>
452                         <KEYWORD3>DSBLT</KEYWORD3>
453                         <KEYWORD3>DSBGT</KEYWORD3>
454                         <KEYWORD3>DSBLE</KEYWORD3>
455                         <KEYWORD3>DSBAL</KEYWORD3>
456                         <KEYWORD3>DSB</KEYWORD3>
457                         <KEYWORD3>ERETEQ</KEYWORD3>
458                         <KEYWORD3>ERETNE</KEYWORD3>
459                         <KEYWORD3>ERETCS</KEYWORD3>
460                         <KEYWORD3>ERETHS</KEYWORD3>
461                         <KEYWORD3>ERETCC</KEYWORD3>
462                         <KEYWORD3>ERETLO</KEYWORD3>
463                         <KEYWORD3>ERETMI</KEYWORD3>
464                         <KEYWORD3>ERETPL</KEYWORD3>
465                         <KEYWORD3>ERETVS</KEYWORD3>
466                         <KEYWORD3>ERETVC</KEYWORD3>
467                         <KEYWORD3>ERETHI</KEYWORD3>
468                         <KEYWORD3>ERETLS</KEYWORD3>
469                         <KEYWORD3>ERETGE</KEYWORD3>
470                         <KEYWORD3>ERETLT</KEYWORD3>
471                         <KEYWORD3>ERETGT</KEYWORD3>
472                         <KEYWORD3>ERETLE</KEYWORD3>
473                         <KEYWORD3>ERETAL</KEYWORD3>
474                         <KEYWORD3>ERET</KEYWORD3>
475                         <KEYWORD3>ISBEQ</KEYWORD3>
476                         <KEYWORD3>ISBNE</KEYWORD3>
477                         <KEYWORD3>ISBCS</KEYWORD3>
478                         <KEYWORD3>ISBHS</KEYWORD3>
479                         <KEYWORD3>ISBCC</KEYWORD3>
480                         <KEYWORD3>ISBLO</KEYWORD3>
481                         <KEYWORD3>ISBMI</KEYWORD3>
482                         <KEYWORD3>ISBPL</KEYWORD3>
483                         <KEYWORD3>ISBVS</KEYWORD3>
484                         <KEYWORD3>ISBVC</KEYWORD3>
485                         <KEYWORD3>ISBHI</KEYWORD3>
486                         <KEYWORD3>ISBLS</KEYWORD3>
487                         <KEYWORD3>ISBGE</KEYWORD3>
488                         <KEYWORD3>ISBLT</KEYWORD3>
489                         <KEYWORD3>ISBGT</KEYWORD3>
490                         <KEYWORD3>ISBLE</KEYWORD3>
491                         <KEYWORD3>ISBAL</KEYWORD3>
492                         <KEYWORD3>ISB</KEYWORD3>
493                         <KEYWORD3>NOPEQ</KEYWORD3>
494                         <KEYWORD3>NOPNE</KEYWORD3>
495                         <KEYWORD3>NOPCS</KEYWORD3>
496                         <KEYWORD3>NOPHS</KEYWORD3>
497                         <KEYWORD3>NOPCC</KEYWORD3>
498                         <KEYWORD3>NOPLO</KEYWORD3>
499                         <KEYWORD3>NOPMI</KEYWORD3>
500                         <KEYWORD3>NOPPL</KEYWORD3>
501                         <KEYWORD3>NOPVS</KEYWORD3>
502                         <KEYWORD3>NOPVC</KEYWORD3>
503                         <KEYWORD3>NOPHI</KEYWORD3>
504                         <KEYWORD3>NOPLS</KEYWORD3>
505                         <KEYWORD3>NOPGE</KEYWORD3>
506                         <KEYWORD3>NOPLT</KEYWORD3>
507                         <KEYWORD3>NOPGT</KEYWORD3>
508                         <KEYWORD3>NOPLE</KEYWORD3>
509                         <KEYWORD3>NOPAL</KEYWORD3>
510                         <KEYWORD3>NOP</KEYWORD3>
511                         <KEYWORD3>SEVEQ</KEYWORD3>
512                         <KEYWORD3>SEVNE</KEYWORD3>
513                         <KEYWORD3>SEVCS</KEYWORD3>
514                         <KEYWORD3>SEVHS</KEYWORD3>
515                         <KEYWORD3>SEVCC</KEYWORD3>
516                         <KEYWORD3>SEVLO</KEYWORD3>
517                         <KEYWORD3>SEVMI</KEYWORD3>
518                         <KEYWORD3>SEVPL</KEYWORD3>
519                         <KEYWORD3>SEVVS</KEYWORD3>
520                         <KEYWORD3>SEVVC</KEYWORD3>
521                         <KEYWORD3>SEVHI</KEYWORD3>
522                         <KEYWORD3>SEVLS</KEYWORD3>
523                         <KEYWORD3>SEVGE</KEYWORD3>
524                         <KEYWORD3>SEVLT</KEYWORD3>
525                         <KEYWORD3>SEVGT</KEYWORD3>
526                         <KEYWORD3>SEVLE</KEYWORD3>
527                         <KEYWORD3>SEVAL</KEYWORD3>
528                         <KEYWORD3>SEV</KEYWORD3>
529                         <KEYWORD3>SEVLEQ</KEYWORD3>
530                         <KEYWORD3>SEVLNE</KEYWORD3>
531                         <KEYWORD3>SEVLCS</KEYWORD3>
532                         <KEYWORD3>SEVLHS</KEYWORD3>
533                         <KEYWORD3>SEVLCC</KEYWORD3>
534                         <KEYWORD3>SEVLLO</KEYWORD3>
535                         <KEYWORD3>SEVLMI</KEYWORD3>
536                         <KEYWORD3>SEVLPL</KEYWORD3>
537                         <KEYWORD3>SEVLVS</KEYWORD3>
538                         <KEYWORD3>SEVLVC</KEYWORD3>
539                         <KEYWORD3>SEVLHI</KEYWORD3>
540                         <KEYWORD3>SEVLLS</KEYWORD3>
541                         <KEYWORD3>SEVLGE</KEYWORD3>
542                         <KEYWORD3>SEVLLT</KEYWORD3>
543                         <KEYWORD3>SEVLGT</KEYWORD3>
544                         <KEYWORD3>SEVLLE</KEYWORD3>
545                         <KEYWORD3>SEVLAL</KEYWORD3>
546                         <KEYWORD3>SEVL</KEYWORD3>
547                         <KEYWORD3>WFEEQ</KEYWORD3>
548                         <KEYWORD3>WFENE</KEYWORD3>
549                         <KEYWORD3>WFECS</KEYWORD3>
550                         <KEYWORD3>WFEHS</KEYWORD3>
551                         <KEYWORD3>WFECC</KEYWORD3>
552                         <KEYWORD3>WFELO</KEYWORD3>
553                         <KEYWORD3>WFEMI</KEYWORD3>
554                         <KEYWORD3>WFEPL</KEYWORD3>
555                         <KEYWORD3>WFEVS</KEYWORD3>
556                         <KEYWORD3>WFEVC</KEYWORD3>
557                         <KEYWORD3>WFEHI</KEYWORD3>
558                         <KEYWORD3>WFELS</KEYWORD3>
559                         <KEYWORD3>WFEGE</KEYWORD3>
560                         <KEYWORD3>WFELT</KEYWORD3>
561                         <KEYWORD3>WFEGT</KEYWORD3>
562                         <KEYWORD3>WFELE</KEYWORD3>
563                         <KEYWORD3>WFEAL</KEYWORD3>
564                         <KEYWORD3>WFE</KEYWORD3>
565                         <KEYWORD3>WFIEQ</KEYWORD3>
566                         <KEYWORD3>WFINE</KEYWORD3>
567                         <KEYWORD3>WFICS</KEYWORD3>
568                         <KEYWORD3>WFIHS</KEYWORD3>
569                         <KEYWORD3>WFICC</KEYWORD3>
570                         <KEYWORD3>WFILO</KEYWORD3>
571                         <KEYWORD3>WFIMI</KEYWORD3>
572                         <KEYWORD3>WFIPL</KEYWORD3>
573                         <KEYWORD3>WFIVS</KEYWORD3>
574                         <KEYWORD3>WFIVC</KEYWORD3>
575                         <KEYWORD3>WFIHI</KEYWORD3>
576                         <KEYWORD3>WFILS</KEYWORD3>
577                         <KEYWORD3>WFIGE</KEYWORD3>
578                         <KEYWORD3>WFILT</KEYWORD3>
579                         <KEYWORD3>WFIGT</KEYWORD3>
580                         <KEYWORD3>WFILE</KEYWORD3>
581                         <KEYWORD3>WFIAL</KEYWORD3>
582                         <KEYWORD3>WFI</KEYWORD3>
583                         <KEYWORD3>YIELDEQ</KEYWORD3>
584                         <KEYWORD3>YIELDNE</KEYWORD3>
585                         <KEYWORD3>YIELDCS</KEYWORD3>
586                         <KEYWORD3>YIELDHS</KEYWORD3>
587                         <KEYWORD3>YIELDCC</KEYWORD3>
588                         <KEYWORD3>YIELDLO</KEYWORD3>
589                         <KEYWORD3>YIELDMI</KEYWORD3>
590                         <KEYWORD3>YIELDPL</KEYWORD3>
591                         <KEYWORD3>YIELDVS</KEYWORD3>
592                         <KEYWORD3>YIELDVC</KEYWORD3>
593                         <KEYWORD3>YIELDHI</KEYWORD3>
594                         <KEYWORD3>YIELDLS</KEYWORD3>
595                         <KEYWORD3>YIELDGE</KEYWORD3>
596                         <KEYWORD3>YIELDLT</KEYWORD3>
597                         <KEYWORD3>YIELDGT</KEYWORD3>
598                         <KEYWORD3>YIELDLE</KEYWORD3>
599                         <KEYWORD3>YIELDAL</KEYWORD3>
600                         <KEYWORD3>YIELD</KEYWORD3>
601                         <KEYWORD3>DCPS1</KEYWORD3>
602                         <KEYWORD3>DCPS2</KEYWORD3>
603                         <KEYWORD3>DCPS3</KEYWORD3>
604                         <KEYWORD3>SG</KEYWORD3>
605                         <KEYWORD3>ESBEQ.W</KEYWORD3>
606                         <KEYWORD3>ESBNE.W</KEYWORD3>
607                         <KEYWORD3>ESBCS.W</KEYWORD3>
608                         <KEYWORD3>ESBHS.W</KEYWORD3>
609                         <KEYWORD3>ESBCC.W</KEYWORD3>
610                         <KEYWORD3>ESBLO.W</KEYWORD3>
611                         <KEYWORD3>ESBMI.W</KEYWORD3>
612                         <KEYWORD3>ESBPL.W</KEYWORD3>
613                         <KEYWORD3>ESBVS.W</KEYWORD3>
614                         <KEYWORD3>ESBVC.W</KEYWORD3>
615                         <KEYWORD3>ESBHI.W</KEYWORD3>
616                         <KEYWORD3>ESBLS.W</KEYWORD3>
617                         <KEYWORD3>ESBGE.W</KEYWORD3>
618                         <KEYWORD3>ESBLT.W</KEYWORD3>
619                         <KEYWORD3>ESBGT.W</KEYWORD3>
620                         <KEYWORD3>ESBLE.W</KEYWORD3>
621                         <KEYWORD3>ESBAL.W</KEYWORD3>
622                         <KEYWORD3>ESB.W</KEYWORD3>
623                         <KEYWORD3>UNDEQ.W</KEYWORD3>
624                         <KEYWORD3>UNDNE.W</KEYWORD3>
625                         <KEYWORD3>UNDCS.W</KEYWORD3>
626                         <KEYWORD3>UNDHS.W</KEYWORD3>
627                         <KEYWORD3>UNDCC.W</KEYWORD3>
628                         <KEYWORD3>UNDLO.W</KEYWORD3>
629                         <KEYWORD3>UNDMI.W</KEYWORD3>
630                         <KEYWORD3>UNDPL.W</KEYWORD3>
631                         <KEYWORD3>UNDVS.W</KEYWORD3>
632                         <KEYWORD3>UNDVC.W</KEYWORD3>
633                         <KEYWORD3>UNDHI.W</KEYWORD3>
634                         <KEYWORD3>UNDLS.W</KEYWORD3>
635                         <KEYWORD3>UNDGE.W</KEYWORD3>
636                         <KEYWORD3>UNDLT.W</KEYWORD3>
637                         <KEYWORD3>UNDGT.W</KEYWORD3>
638                         <KEYWORD3>UNDLE.W</KEYWORD3>
639                         <KEYWORD3>UNDAL.W</KEYWORD3>
640                         <KEYWORD3>UND.W</KEYWORD3>
641                         <KEYWORD3>ESBEQ.N</KEYWORD3>
642                         <KEYWORD3>ESBNE.N</KEYWORD3>
643                         <KEYWORD3>ESBCS.N</KEYWORD3>
644                         <KEYWORD3>ESBHS.N</KEYWORD3>
645                         <KEYWORD3>ESBCC.N</KEYWORD3>
646                         <KEYWORD3>ESBLO.N</KEYWORD3>
647                         <KEYWORD3>ESBMI.N</KEYWORD3>
648                         <KEYWORD3>ESBPL.N</KEYWORD3>
649                         <KEYWORD3>ESBVS.N</KEYWORD3>
650                         <KEYWORD3>ESBVC.N</KEYWORD3>
651                         <KEYWORD3>ESBHI.N</KEYWORD3>
652                         <KEYWORD3>ESBLS.N</KEYWORD3>
653                         <KEYWORD3>ESBGE.N</KEYWORD3>
654                         <KEYWORD3>ESBLT.N</KEYWORD3>
655                         <KEYWORD3>ESBGT.N</KEYWORD3>
656                         <KEYWORD3>ESBLE.N</KEYWORD3>
657                         <KEYWORD3>ESBAL.N</KEYWORD3>
658                         <KEYWORD3>ESB.N</KEYWORD3>
659                         <KEYWORD3>UNDEQ.N</KEYWORD3>
660                         <KEYWORD3>UNDNE.N</KEYWORD3>
661                         <KEYWORD3>UNDCS.N</KEYWORD3>
662                         <KEYWORD3>UNDHS.N</KEYWORD3>
663                         <KEYWORD3>UNDCC.N</KEYWORD3>
664                         <KEYWORD3>UNDLO.N</KEYWORD3>
665                         <KEYWORD3>UNDMI.N</KEYWORD3>
666                         <KEYWORD3>UNDPL.N</KEYWORD3>
667                         <KEYWORD3>UNDVS.N</KEYWORD3>
668                         <KEYWORD3>UNDVC.N</KEYWORD3>
669                         <KEYWORD3>UNDHI.N</KEYWORD3>
670                         <KEYWORD3>UNDLS.N</KEYWORD3>
671                         <KEYWORD3>UNDGE.N</KEYWORD3>
672                         <KEYWORD3>UNDLT.N</KEYWORD3>
673                         <KEYWORD3>UNDGT.N</KEYWORD3>
674                         <KEYWORD3>UNDLE.N</KEYWORD3>
675                         <KEYWORD3>UNDAL.N</KEYWORD3>
676                         <KEYWORD3>UND.N</KEYWORD3>
677                         <KEYWORD3>ESBEQ</KEYWORD3>
678                         <KEYWORD3>ESBNE</KEYWORD3>
679                         <KEYWORD3>ESBCS</KEYWORD3>
680                         <KEYWORD3>ESBHS</KEYWORD3>
681                         <KEYWORD3>ESBCC</KEYWORD3>
682                         <KEYWORD3>ESBLO</KEYWORD3>
683                         <KEYWORD3>ESBMI</KEYWORD3>
684                         <KEYWORD3>ESBPL</KEYWORD3>
685                         <KEYWORD3>ESBVS</KEYWORD3>
686                         <KEYWORD3>ESBVC</KEYWORD3>
687                         <KEYWORD3>ESBHI</KEYWORD3>
688                         <KEYWORD3>ESBLS</KEYWORD3>
689                         <KEYWORD3>ESBGE</KEYWORD3>
690                         <KEYWORD3>ESBLT</KEYWORD3>
691                         <KEYWORD3>ESBGT</KEYWORD3>
692                         <KEYWORD3>ESBLE</KEYWORD3>
693                         <KEYWORD3>ESBAL</KEYWORD3>
694                         <KEYWORD3>ESB</KEYWORD3>
695                         <KEYWORD3>UNDEQ</KEYWORD3>
696                         <KEYWORD3>UNDNE</KEYWORD3>
697                         <KEYWORD3>UNDCS</KEYWORD3>
698                         <KEYWORD3>UNDHS</KEYWORD3>
699                         <KEYWORD3>UNDCC</KEYWORD3>
700                         <KEYWORD3>UNDLO</KEYWORD3>
701                         <KEYWORD3>UNDMI</KEYWORD3>
702                         <KEYWORD3>UNDPL</KEYWORD3>
703                         <KEYWORD3>UNDVS</KEYWORD3>
704                         <KEYWORD3>UNDVC</KEYWORD3>
705                         <KEYWORD3>UNDHI</KEYWORD3>
706                         <KEYWORD3>UNDLS</KEYWORD3>
707                         <KEYWORD3>UNDGE</KEYWORD3>
708                         <KEYWORD3>UNDLT</KEYWORD3>
709                         <KEYWORD3>UNDGT</KEYWORD3>
710                         <KEYWORD3>UNDLE</KEYWORD3>
711                         <KEYWORD3>UNDAL</KEYWORD3>
712                         <KEYWORD3>UND</KEYWORD3>
713                         <KEYWORD3>ITTTT</KEYWORD3>
714                         <KEYWORD3>ITTTE</KEYWORD3>
715                         <KEYWORD3>ITTET</KEYWORD3>
716                         <KEYWORD3>ITTEE</KEYWORD3>
717                         <KEYWORD3>ITETT</KEYWORD3>
718                         <KEYWORD3>ITETE</KEYWORD3>
719                         <KEYWORD3>ITEET</KEYWORD3>
720                         <KEYWORD3>ITEEE</KEYWORD3>
721                         <KEYWORD3>ITTT</KEYWORD3>
722                         <KEYWORD3>ITTE</KEYWORD3>
723                         <KEYWORD3>ITET</KEYWORD3>
724                         <KEYWORD3>ITEE</KEYWORD3>
725                         <KEYWORD3>ITT</KEYWORD3>
726                         <KEYWORD3>ITE</KEYWORD3>
727                         <KEYWORD3>IT</KEYWORD3>
728                 </KEYWORDS>
729         </RULES>
730 </MODE>