]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/bcel.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / bcel.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--
6     Java bytecode mode. Used by Andre Kaplan's JavaInsight plugin.
7 -->
8
9 <MODE>
10     <PROPS>
11         <PROPERTY NAME="commentStart" VALUE="/*" />
12         <PROPERTY NAME="commentEnd" VALUE="*/" />
13         <PROPERTY NAME="lineComment" VALUE="//" />
14     </PROPS>
15
16
17     <RULES HIGHLIGHT_DIGITS="TRUE">
18         <!-- Silly comment -->
19         <SEQ TYPE="COMMENT1">/**/</SEQ>
20
21         <!-- Javadoc comment -->
22         <SPAN TYPE="COMMENT3" DELEGATE="java::JAVADOC">
23             <BEGIN>/**</BEGIN>
24             <END>*/</END>
25         </SPAN>
26
27         <!-- Java comment (C style) -->
28         <SPAN TYPE="COMMENT1">
29             <BEGIN>/*</BEGIN>
30             <END>*/</END>
31         </SPAN>
32
33         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
34
35         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
36             <BEGIN>'</BEGIN>
37             <END>'</END>
38         </SPAN>
39
40         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
41             <BEGIN>"</BEGIN>
42             <END>"</END>
43         </SPAN>
44
45         <MARK_FOLLOWING TYPE="KEYWORD2" AT_LINE_START="FALSE">%</MARK_FOLLOWING>
46         <MARK_FOLLOWING TYPE="KEYWORD2" AT_LINE_START="FALSE">#</MARK_FOLLOWING>
47
48         <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
49             AT_LINE_START="TRUE">:</MARK_PREVIOUS>
50
51         <SEQ TYPE="OPERATOR">&gt;</SEQ>
52         <SEQ TYPE="OPERATOR">&lt;</SEQ>
53
54         <KEYWORDS>
55             <!-- Some java keywords -->
56             <KEYWORD1>abstract</KEYWORD1>
57             <!-- <KEYWORD1>break</KEYWORD1> -->
58             <!-- <KEYWORD1>case</KEYWORD1> -->
59             <!-- <KEYWORD1>catch</KEYWORD1> -->
60             <!-- <KEYWORD1>continue</KEYWORD1> -->
61             <!-- <KEYWORD1>default</KEYWORD1> -->
62             <!-- <KEYWORD1>do</KEYWORD1> -->
63             <!-- <KEYWORD1>else</KEYWORD1> -->
64             <KEYWORD1>extends</KEYWORD1>
65             <KEYWORD1>final</KEYWORD1>
66             <!-- <KEYWORD1>finally</KEYWORD1> -->
67             <!-- <KEYWORD1>for</KEYWORD1> -->
68             <!-- <KEYWORD1>if</KEYWORD1> -->
69             <KEYWORD1>implements</KEYWORD1>
70             <!-- <KEYWORD1>instanceof</KEYWORD1> -->
71             <KEYWORD1>native</KEYWORD1>
72             <!-- <KEYWORD1>new</KEYWORD1> -->
73             <KEYWORD1>private</KEYWORD1>
74             <KEYWORD1>protected</KEYWORD1>
75             <KEYWORD1>public</KEYWORD1>
76             <!-- <KEYWORD1>return</KEYWORD1> -->
77             <KEYWORD1>static</KEYWORD1>
78             <!-- <KEYWORD1>switch</KEYWORD1> -->
79             <KEYWORD1>synchronized</KEYWORD1>
80             <KEYWORD1>throw</KEYWORD1>
81             <KEYWORD1>throws</KEYWORD1>
82             <KEYWORD1>transient</KEYWORD1>
83             <!-- <KEYWORD1>try</KEYWORD1> -->
84             <KEYWORD1>volatile</KEYWORD1>
85             <!-- <KEYWORD1>while</KEYWORD1> -->
86
87             <!-- <KEYWORD2>package</KEYWORD2> -->
88             <!-- <KEYWORD2>import</KEYWORD2> -->
89
90             <KEYWORD3>boolean</KEYWORD3>
91             <KEYWORD3>byte</KEYWORD3>
92             <KEYWORD3>char</KEYWORD3>
93             <KEYWORD3>class</KEYWORD3>
94             <KEYWORD3>double</KEYWORD3>
95             <KEYWORD3>float</KEYWORD3>
96             <KEYWORD3>int</KEYWORD3>
97             <KEYWORD3>interface</KEYWORD3>
98             <KEYWORD3>long</KEYWORD3>
99             <KEYWORD3>short</KEYWORD3>
100             <KEYWORD3>void</KEYWORD3>
101
102             <!-- <LITERAL2>false</LITERAL2> -->
103             <!-- <LITERAL2>null</LITERAL2> -->
104             <!-- <LITERAL2>super</LITERAL2> -->
105             <!-- <LITERAL2>this</LITERAL2> -->
106             <!-- <LITERAL2>true</LITERAL2> -->
107
108             <KEYWORD1>clinit</KEYWORD1>
109             <KEYWORD1>init</KEYWORD1>
110
111             <!-- 00 (0x00) --><KEYWORD1>nop</KEYWORD1>
112             <!-- 01 (0x01) --><KEYWORD1>aconst_null</KEYWORD1>
113             <!-- 02 (0x02) --><KEYWORD1>iconst_m1</KEYWORD1>
114             <!-- 03 (0x03) --><KEYWORD1>iconst_0</KEYWORD1>
115             <!-- 04 (0x04) --><KEYWORD1>iconst_1</KEYWORD1>
116             <!-- 05 (0x05) --><KEYWORD1>iconst_2</KEYWORD1>
117             <!-- 06 (0x06) --><KEYWORD1>iconst_3</KEYWORD1>
118             <!-- 07 (0x07) --><KEYWORD1>iconst_4</KEYWORD1>
119             <!-- 08 (0x08) --><KEYWORD1>iconst_5</KEYWORD1>
120             <!-- 09 (0x09) --><KEYWORD1>lconst_0</KEYWORD1>
121             <!-- 10 (0x0a) --><KEYWORD1>lconst_1</KEYWORD1>
122             <!-- 11 (0x0b) --><KEYWORD1>fconst_0</KEYWORD1>
123             <!-- 12 (0x0c) --><KEYWORD1>fconst_1</KEYWORD1>
124             <!-- 13 (0x0d) --><KEYWORD1>fconst_2</KEYWORD1>
125             <!-- 14 (0x0e) --><KEYWORD1>dconst_0</KEYWORD1>
126             <!-- 15 (0x0f) --><KEYWORD1>dconst_1</KEYWORD1>
127             <!-- 16 (0x10) --><KEYWORD1>bipush</KEYWORD1>
128             <!-- 17 (0x11) --><KEYWORD1>sipush</KEYWORD1>
129             <!-- 18 (0x12) --><KEYWORD1>ldc</KEYWORD1>
130             <!-- 19 (0x13) --><KEYWORD1>ldc_w</KEYWORD1>
131             <!-- 20 (0x14) --><KEYWORD1>ldc2_w</KEYWORD1>
132             <!-- 21 (0x15) --><KEYWORD1>iload</KEYWORD1>
133             <!-- 22 (0x16) --><KEYWORD1>lload</KEYWORD1>
134             <!-- 23 (0x17) --><KEYWORD1>fload</KEYWORD1>
135             <!-- 24 (0x18) --><KEYWORD1>dload</KEYWORD1>
136             <!-- 25 (0x19) --><KEYWORD1>aload</KEYWORD1>
137             <!-- 26 (0x1a) --><KEYWORD1>iload_0</KEYWORD1>
138             <!-- 27 (0x1b) --><KEYWORD1>iload_1</KEYWORD1>
139             <!-- 28 (0x1c) --><KEYWORD1>iload_2</KEYWORD1>
140             <!-- 29 (0x1d) --><KEYWORD1>iload_3</KEYWORD1>
141             <!-- 30 (0x1e) --><KEYWORD1>lload_0</KEYWORD1>
142             <!-- 31 (0x1f) --><KEYWORD1>lload_1</KEYWORD1>
143             <!-- 32 (0x20) --><KEYWORD1>lload_2</KEYWORD1>
144             <!-- 33 (0x21) --><KEYWORD1>lload_3</KEYWORD1>
145             <!-- 34 (0x22) --><KEYWORD1>fload_0</KEYWORD1>
146             <!-- 35 (0x23) --><KEYWORD1>fload_1</KEYWORD1>
147             <!-- 36 (0x24) --><KEYWORD1>fload_2</KEYWORD1>
148             <!-- 37 (0x25) --><KEYWORD1>fload_3</KEYWORD1>
149             <!-- 38 (0x26) --><KEYWORD1>dload_0</KEYWORD1>
150             <!-- 39 (0x27) --><KEYWORD1>dload_1</KEYWORD1>
151             <!-- 40 (0x28) --><KEYWORD1>dload_2</KEYWORD1>
152             <!-- 41 (0x29) --><KEYWORD1>dload_3</KEYWORD1>
153             <!-- 42 (0x2a) --><KEYWORD1>aload_0</KEYWORD1>
154             <!-- 43 (0x2b) --><KEYWORD1>aload_1</KEYWORD1>
155             <!-- 44 (0x2c) --><KEYWORD1>aload_2</KEYWORD1>
156             <!-- 45 (0x2d) --><KEYWORD1>aload_3</KEYWORD1>
157             <!-- 46 (0x2e) --><KEYWORD1>iaload</KEYWORD1>
158             <!-- 47 (0x2f) --><KEYWORD1>laload</KEYWORD1>
159             <!-- 48 (0x30) --><KEYWORD1>faload</KEYWORD1>
160             <!-- 49 (0x31) --><KEYWORD1>daload</KEYWORD1>
161             <!-- 50 (0x32) --><KEYWORD1>aaload</KEYWORD1>
162             <!-- 51 (0x33) --><KEYWORD1>baload</KEYWORD1>
163             <!-- 52 (0x34) --><KEYWORD1>caload</KEYWORD1>
164             <!-- 53 (0x35) --><KEYWORD1>saload</KEYWORD1>
165             <!-- 54 (0x36) --><KEYWORD1>istore</KEYWORD1>
166             <!-- 55 (0x37) --><KEYWORD1>lstore</KEYWORD1>
167             <!-- 56 (0x38) --><KEYWORD1>fstore</KEYWORD1>
168             <!-- 57 (0x39) --><KEYWORD1>dstore</KEYWORD1>
169             <!-- 58 (0x3a) --><KEYWORD1>astore</KEYWORD1>
170             <!-- 59 (0x3b) --><KEYWORD1>istore_0</KEYWORD1>
171             <!-- 60 (0x3c) --><KEYWORD1>istore_1</KEYWORD1>
172             <!-- 61 (0x3d) --><KEYWORD1>istore_2</KEYWORD1>
173             <!-- 62 (0x3e) --><KEYWORD1>istore_3</KEYWORD1>
174             <!-- 63 (0x3f) --><KEYWORD1>lstore_0</KEYWORD1>
175             <!-- 64 (0x40) --><KEYWORD1>lstore_1</KEYWORD1>
176             <!-- 65 (0x41) --><KEYWORD1>lstore_2</KEYWORD1>
177             <!-- 66 (0x42) --><KEYWORD1>lstore_3</KEYWORD1>
178             <!-- 67 (0x43) --><KEYWORD1>fstore_0</KEYWORD1>
179             <!-- 68 (0x44) --><KEYWORD1>fstore_1</KEYWORD1>
180             <!-- 69 (0x45) --><KEYWORD1>fstore_2</KEYWORD1>
181             <!-- 70 (0x46) --><KEYWORD1>fstore_3</KEYWORD1>
182             <!-- 71 (0x47) --><KEYWORD1>dstore_0</KEYWORD1>
183             <!-- 72 (0x48) --><KEYWORD1>dstore_1</KEYWORD1>
184             <!-- 73 (0x49) --><KEYWORD1>dstore_2</KEYWORD1>
185             <!-- 74 (0x4a) --><KEYWORD1>dstore_3</KEYWORD1>
186             <!-- 75 (0x4b) --><KEYWORD1>astore_0</KEYWORD1>
187             <!-- 76 (0x4c) --><KEYWORD1>astore_1</KEYWORD1>
188             <!-- 77 (0x4d) --><KEYWORD1>astore_2</KEYWORD1>
189             <!-- 78 (0x4e) --><KEYWORD1>astore_3</KEYWORD1>
190             <!-- 79 (0x4f) --><KEYWORD1>iastore</KEYWORD1>
191             <!-- 80 (0x50) --><KEYWORD1>lastore</KEYWORD1>
192             <!-- 81 (0x51) --><KEYWORD1>fastore</KEYWORD1>
193             <!-- 82 (0x52) --><KEYWORD1>dastore</KEYWORD1>
194             <!-- 83 (0x53) --><KEYWORD1>aastore</KEYWORD1>
195             <!-- 84 (0x54) --><KEYWORD1>bastore</KEYWORD1>
196             <!-- 85 (0x55) --><KEYWORD1>castore</KEYWORD1>
197             <!-- 86 (0x56) --><KEYWORD1>sastore</KEYWORD1>
198             <!-- 87 (0x57) --><KEYWORD1>pop</KEYWORD1>
199             <!-- 88 (0x58) --><KEYWORD1>pop2</KEYWORD1>
200             <!-- 089 (0x59) --><KEYWORD1>dup</KEYWORD1>
201             <!-- 090 (0x5a) --><KEYWORD1>dup_x1</KEYWORD1>
202             <!-- 091 (0x5b) --><KEYWORD1>dup_x2</KEYWORD1>
203             <!-- 092 (0x5c) --><KEYWORD1>dup2</KEYWORD1>
204             <!-- 093 (0x5d) --><KEYWORD1>dup2_x1</KEYWORD1>
205             <!-- 094 (0x5e) --><KEYWORD1>dup2_x2</KEYWORD1>
206             <!-- 095 (0x5f) --><KEYWORD1>swap</KEYWORD1>
207             <!-- 096 (0x60) --><KEYWORD1>iadd</KEYWORD1>
208             <!-- 097 (0x61) --><KEYWORD1>ladd</KEYWORD1>
209             <!-- 098 (0x62) --><KEYWORD1>fadd</KEYWORD1>
210             <!-- 099 (0x63) --><KEYWORD1>dadd</KEYWORD1>
211             <!-- 100 (0x64) --><KEYWORD1>isub</KEYWORD1>
212             <!-- 101 (0x65) --><KEYWORD1>lsub</KEYWORD1>
213             <!-- 102 (0x66) --><KEYWORD1>fsub</KEYWORD1>
214             <!-- 103 (0x67) --><KEYWORD1>dsub</KEYWORD1>
215             <!-- 104 (0x68) --><KEYWORD1>imul</KEYWORD1>
216             <!-- 105 (0x69) --><KEYWORD1>lmul</KEYWORD1>
217             <!-- 106 (0x6a) --><KEYWORD1>fmul</KEYWORD1>
218             <!-- 107 (0x6b) --><KEYWORD1>dmul</KEYWORD1>
219             <!-- 108 (0x6c) --><KEYWORD1>idiv</KEYWORD1>
220             <!-- 109 (0x6d) --><KEYWORD1>ldiv</KEYWORD1>
221             <!-- 110 (0x6e) --><KEYWORD1>fdiv</KEYWORD1>
222             <!-- 111 (0x6f) --><KEYWORD1>ddiv</KEYWORD1>
223             <!-- 112 (0x70) --><KEYWORD1>irem</KEYWORD1>
224             <!-- 113 (0x71) --><KEYWORD1>lrem</KEYWORD1>
225             <!-- 114 (0x72) --><KEYWORD1>frem</KEYWORD1>
226             <!-- 115 (0x73) --><KEYWORD1>drem</KEYWORD1>
227             <!-- 116 (0x74) --><KEYWORD1>ineg</KEYWORD1>
228             <!-- 117 (0x75) --><KEYWORD1>lneg</KEYWORD1>
229             <!-- 118 (0x76) --><KEYWORD1>fneg</KEYWORD1>
230             <!-- 119 (0x77) --><KEYWORD1>dneg</KEYWORD1>
231             <!-- 120 (0x78) --><KEYWORD1>ishl</KEYWORD1>
232             <!-- 121 (0x79) --><KEYWORD1>lshl</KEYWORD1>
233             <!-- 122 (0x7a) --><KEYWORD1>ishr</KEYWORD1>
234             <!-- 123 (0x7b) --><KEYWORD1>lshr</KEYWORD1>
235             <!-- 124 (0x7c) --><KEYWORD1>iushr</KEYWORD1>
236             <!-- 125 (0x7d) --><KEYWORD1>lushr</KEYWORD1>
237             <!-- 126 (0x7e) --><KEYWORD1>iand</KEYWORD1>
238             <!-- 127 (0x7f) --><KEYWORD1>land</KEYWORD1>
239             <!-- 128 (0x80) --><KEYWORD1>ior</KEYWORD1>
240             <!-- 129 (0x81) --><KEYWORD1>lor</KEYWORD1>
241             <!-- 130 (0x82) --><KEYWORD1>ixor</KEYWORD1>
242             <!-- 131 (0x83) --><KEYWORD1>lxor</KEYWORD1>
243             <!-- 132 (0x84) --><KEYWORD1>iinc</KEYWORD1>
244             <!-- 133 (0x85) --><KEYWORD1>i2l</KEYWORD1>
245             <!-- 134 (0x86) --><KEYWORD1>i2f</KEYWORD1>
246             <!-- 135 (0x87) --><KEYWORD1>i2d</KEYWORD1>
247             <!-- 136 (0x88) --><KEYWORD1>l2i</KEYWORD1>
248             <!-- 137 (0x89) --><KEYWORD1>l2f</KEYWORD1>
249             <!-- 138 (0x8a) --><KEYWORD1>l2d</KEYWORD1>
250             <!-- 139 (0x8b) --><KEYWORD1>f2i</KEYWORD1>
251             <!-- 140 (0x8c) --><KEYWORD1>f2l</KEYWORD1>
252             <!-- 141 (0x8d) --><KEYWORD1>f2d</KEYWORD1>
253             <!-- 142 (0x8e) --><KEYWORD1>d2i</KEYWORD1>
254             <!-- 143 (0x8f) --><KEYWORD1>d2l</KEYWORD1>
255             <!-- 144 (0x90) --><KEYWORD1>d2f</KEYWORD1>
256             <!-- 145 (0x91) --><KEYWORD1>i2b</KEYWORD1>
257             <!-- 146 (0x92) --><KEYWORD1>i2c</KEYWORD1>
258             <!-- 147 (0x93) --><KEYWORD1>i2s</KEYWORD1>
259             <!-- 148 (0x94) --><KEYWORD1>lcmp</KEYWORD1>
260             <!-- 149 (0x95) --><KEYWORD1>fcmpl</KEYWORD1>
261             <!-- 150 (0x96) --><KEYWORD1>fcmpg</KEYWORD1>
262             <!-- 151 (0x97) --><KEYWORD1>dcmpl</KEYWORD1>
263             <!-- 152 (0x98) --><KEYWORD1>dcmpg</KEYWORD1>
264             <!-- 153 (0x99) --><KEYWORD1>ifeq</KEYWORD1>
265             <!-- 154 (0x9a) --><KEYWORD1>ifne</KEYWORD1>
266             <!-- 155 (0x9b) --><KEYWORD1>iflt</KEYWORD1>
267             <!-- 156 (0x9c) --><KEYWORD1>ifge</KEYWORD1>
268             <!-- 157 (0x9d) --><KEYWORD1>ifgt</KEYWORD1>
269             <!-- 158 (0x9e) --><KEYWORD1>ifle</KEYWORD1>
270             <!-- 159 (0x9f) --><KEYWORD1>if_icmpeq</KEYWORD1>
271             <!-- 160 (0xa0) --><KEYWORD1>if_icmpne</KEYWORD1>
272             <!-- 161 (0xa1) --><KEYWORD1>if_icmplt</KEYWORD1>
273             <!-- 162 (0xa2) --><KEYWORD1>if_icmpge</KEYWORD1>
274             <!-- 163 (0xa3) --><KEYWORD1>if_icmpgt</KEYWORD1>
275             <!-- 164 (0xa4) --><KEYWORD1>if_icmple</KEYWORD1>
276             <!-- 165 (0xa5) --><KEYWORD1>if_acmpeq</KEYWORD1>
277             <!-- 166 (0xa6) --><KEYWORD1>if_acmpne</KEYWORD1>
278             <!-- 167 (0xa7) --><KEYWORD1>goto</KEYWORD1>
279             <!-- 168 (0xa8) --><KEYWORD1>jsr</KEYWORD1>
280             <!-- 169 (0xa9) --><KEYWORD1>ret</KEYWORD1>
281             <!-- 170 (0xaa) --><KEYWORD1>tableswitch</KEYWORD1>
282             <!-- 171 (0xab) --><KEYWORD1>lookupswitch</KEYWORD1>
283             <!-- 172 (0xac) --><KEYWORD1>ireturn</KEYWORD1>
284             <!-- 173 (0xad) --><KEYWORD1>lreturn</KEYWORD1>
285             <!-- 174 (0xae) --><KEYWORD1>freturn</KEYWORD1>
286             <!-- 175 (0xaf) --><KEYWORD1>dreturn</KEYWORD1>
287             <!-- 176 (0xb0) --><KEYWORD1>areturn</KEYWORD1>
288             <!-- 177 (0xb1) --><KEYWORD1>return</KEYWORD1>
289             <!-- 178 (0xb2) --><KEYWORD1>getstatic</KEYWORD1>
290             <!-- 179 (0xb3) --><KEYWORD1>putstatic</KEYWORD1>
291             <!-- 180 (0xb4) --><KEYWORD1>getfield</KEYWORD1>
292             <!-- 181 (0xb5) --><KEYWORD1>putfield</KEYWORD1>
293             <!-- 182 (0xb6) --><KEYWORD1>invokevirtual</KEYWORD1>
294             <!-- 183 (0xb7) --><KEYWORD1>invokespecial</KEYWORD1>
295             <!-- 184 (0xb8) --><KEYWORD1>invokestatic</KEYWORD1>
296             <!-- 185 (0xb9) --><KEYWORD1>invokeinterface</KEYWORD1>
297             <!-- 186 (0xba) --><!-- xxxunusedxxx -->
298             <!-- 187 (0xbb) --><KEYWORD1>new</KEYWORD1>
299             <!-- 188 (0xbc) --><KEYWORD1>newarray</KEYWORD1>
300             <!-- 189 (0xbd) --><KEYWORD1>anewarray</KEYWORD1>
301             <!-- 190 (0xbe) --><KEYWORD1>arraylength</KEYWORD1>
302             <!-- 191 (0xbf) --><KEYWORD1>athrow</KEYWORD1>
303             <!-- 192 (0xc0) --><KEYWORD1>checkcast</KEYWORD1>
304             <!-- 193 (0xc1) --><KEYWORD1>instanceof</KEYWORD1>
305             <!-- 194 (0xc2) --><KEYWORD1>monitorenter</KEYWORD1>
306             <!-- 195 (0xc3) --><KEYWORD1>monitorexit</KEYWORD1>
307             <!-- 196 (0xc4) --><KEYWORD1>wide</KEYWORD1>
308             <!-- 197 (0xc5) --><KEYWORD1>multianewarray</KEYWORD1>
309             <!-- 198 (0xc6) --><KEYWORD1>ifnull</KEYWORD1>
310             <!-- 199 (0xc7) --><KEYWORD1>ifnonnull</KEYWORD1>
311             <!-- 200 (0xc8) --><KEYWORD1>goto_w</KEYWORD1>
312             <!-- 201 (0xc9) --><KEYWORD1>jsr_w</KEYWORD1>
313
314             <!-- Reserved opcodes: -->
315             <!-- 202 (0xca) --><KEYWORD1>breakpoint</KEYWORD1>
316             <!-- 254 (0xfe) --><KEYWORD1>impdep1</KEYWORD1>
317             <!-- 255 (0xff) --><KEYWORD1>impdep2</KEYWORD1>
318         </KEYWORDS>
319     </RULES>
320 </MODE>