Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / MIPS_Assembler.pm
1 # Copyright (c) 2005 - 2006 Hans Jeuken. All rights reserved.
2 # This program is free software; you can redistribute it and/or
3 # modify it under the same terms as Perl itself.
4
5 # This file was generated from the 'mips.xml' file of the syntax highlight
6 # engine of the kate text editor (http://www.kate-editor.org
7
8 #kate xml version 1.03
9 #kate version 2.4
10 #kate author Dominik Haumann (dhdev@gmx.de)
11 #generated: Sun Feb  3 22:02:05 2008, localtime
12
13 package Syntax::Highlight::Engine::Kate::MIPS_Assembler;
14
15 our $VERSION = '0.06';
16
17 use strict;
18 use warnings;
19 use base('Syntax::Highlight::Engine::Kate::Template');
20
21 sub new {
22    my $proto = shift;
23    my $class = ref($proto) || $proto;
24    my $self = $class->SUPER::new(@_);
25    $self->attributes({
26       'Char' => 'Char',
27       'Comment' => 'Comment',
28       'Decimal' => 'DecVal',
29       'Float' => 'Float',
30       'Floating Point Register' => 'Float',
31       'Hardware Instruction' => 'Keyword',
32       'Hex' => 'BaseN',
33       'Label' => 'Others',
34       'Main Register' => 'DataType',
35       'Normal Text' => 'Normal',
36       'Octal' => 'BaseN',
37       'Other Register' => 'DataType',
38       'Pseudo Instruction' => 'Function',
39       'Region Marker' => 'RegionMarker',
40       'Section' => 'DataType',
41       'String' => 'String',
42       'Type' => 'Keyword',
43    });
44    $self->listAdd('fp',
45       '$f0',
46       '$f1',
47       '$f10',
48       '$f11',
49       '$f12',
50       '$f13',
51       '$f14',
52       '$f15',
53       '$f16',
54       '$f17',
55       '$f18',
56       '$f19',
57       '$f2',
58       '$f20',
59       '$f21',
60       '$f22',
61       '$f23',
62       '$f24',
63       '$f25',
64       '$f26',
65       '$f27',
66       '$f28',
67       '$f29',
68       '$f3',
69       '$f30',
70       '$f31',
71       '$f4',
72       '$f5',
73       '$f6',
74       '$f7',
75       '$f8',
76       '$f9',
77    );
78    $self->listAdd('hardware',
79       'abs.d',
80       'abs.s',
81       'add',
82       'add.d',
83       'add.s',
84       'addi',
85       'addiu',
86       'addu',
87       'and',
88       'andi',
89       'bc0f',
90       'bc0t',
91       'bc1f',
92       'bc1t',
93       'bc2f',
94       'bc2t',
95       'bc3f',
96       'bc3t',
97       'beq',
98       'bgez',
99       'bgezal',
100       'bgtz',
101       'blez',
102       'bltz',
103       'bltzal',
104       'bne',
105       'break',
106       'c.eq.d',
107       'c.eq.s',
108       'c.le.d',
109       'c.le.s',
110       'c.lt.d',
111       'c.lt.s',
112       'c.ole.d',
113       'c.ole.s',
114       'c.olt.d',
115       'c.olt.s',
116       'c.seq.d',
117       'c.seq.s',
118       'c.ueq.d',
119       'c.ueq.s',
120       'c.ule.d',
121       'c.ule.s',
122       'c.ult.d',
123       'c.ult.s',
124       'c.un.d',
125       'c.un.s',
126       'cvt.d.s',
127       'cvt.d.w',
128       'cvt.s.d',
129       'cvt.s.w',
130       'cvt.w.d',
131       'cvt.w.s',
132       'div.d',
133       'div.s',
134       'j',
135       'jal',
136       'jalr',
137       'jr',
138       'lb',
139       'lbu',
140       'lh',
141       'lhu',
142       'lui',
143       'lw',
144       'lwc0',
145       'lwc1',
146       'lwc2',
147       'lwc3',
148       'lwl',
149       'lwr',
150       'mfc0',
151       'mfc1',
152       'mfc2',
153       'mfc3',
154       'mfhi',
155       'mflo',
156       'mtc0',
157       'mtc1',
158       'mtc2',
159       'mtc3',
160       'mthi',
161       'mtlo',
162       'mul.d',
163       'mul.s',
164       'mult',
165       'multu',
166       'nor',
167       'or',
168       'ori',
169       'rfe',
170       'sb',
171       'sh',
172       'sll',
173       'sllv',
174       'slt',
175       'slti',
176       'sltiu',
177       'sra',
178       'srav',
179       'srl',
180       'srlv',
181       'sub',
182       'sub.d',
183       'sub.s',
184       'subu',
185       'sw',
186       'sw',
187       'swc0',
188       'swc1',
189       'swc2',
190       'swc3',
191       'swcl',
192       'swl',
193       'swl',
194       'swr',
195       'swr',
196       'syscall',
197       'xor',
198       'xori',
199    );
200    $self->listAdd('pseudo',
201       'abs',
202       'b',
203       'beqz',
204       'bge',
205       'bgeu',
206       'bgt',
207       'bgtu',
208       'ble',
209       'bleu',
210       'blt',
211       'bltu',
212       'bnez',
213       'div',
214       'divu',
215       'l.d',
216       'l.s',
217       'la',
218       'ld',
219       'li',
220       'li.d',
221       'li.s',
222       'mfc0.d',
223       'mfc1.d',
224       'mfc2.d',
225       'mfc3.d',
226       'mov.d',
227       'mov.s',
228       'move',
229       'mul',
230       'mulo',
231       'mulou',
232       'neg',
233       'neg.d',
234       'neg.s',
235       'negu',
236       'nop',
237       'not',
238       'rem',
239       'remu',
240       'rol',
241       'ror',
242       's.d',
243       's.s',
244       'sd',
245       'seq',
246       'sge',
247       'sgeu',
248       'sgt',
249       'sgtu',
250       'sle',
251       'sleu',
252       'sne',
253       'ulh',
254       'ulhu',
255       'ulw',
256       'ush',
257       'usw',
258    );
259    $self->listAdd('register1',
260       '$0',
261       '$1',
262       '$10',
263       '$11',
264       '$12',
265       '$13',
266       '$14',
267       '$15',
268       '$16',
269       '$17',
270       '$18',
271       '$19',
272       '$2',
273       '$20',
274       '$21',
275       '$22',
276       '$23',
277       '$24',
278       '$25',
279       '$26',
280       '$27',
281       '$28',
282       '$29',
283       '$3',
284       '$30',
285       '$31',
286       '$4',
287       '$5',
288       '$6',
289       '$7',
290       '$8',
291       '$9',
292       '$t0',
293       '$t1',
294       '$t2',
295       '$t3',
296       '$t4',
297       '$t5',
298       '$t6',
299       '$t7',
300       '$t8',
301       '$t9',
302       '$zero',
303    );
304    $self->listAdd('register2',
305       '$a0',
306       '$a1',
307       '$a2',
308       '$a3',
309       '$at',
310       '$fp',
311       '$gp',
312       '$k0',
313       '$k1',
314       '$ra',
315       '$s0',
316       '$s1',
317       '$s2',
318       '$s3',
319       '$s4',
320       '$s5',
321       '$s6',
322       '$s7',
323       '$sp',
324       '$v0',
325       '$v1',
326    );
327    $self->listAdd('section',
328       '.data',
329       '.kdata',
330       '.ktext',
331       '.text',
332    );
333    $self->listAdd('type',
334       '.align',
335       '.ascii',
336       '.asciiz',
337       '.byte',
338       '.double',
339       '.extern',
340       '.float',
341       '.globl',
342       '.half',
343       '.sdata',
344       '.set',
345       '.space',
346       '.word',
347    );
348    $self->contextdata({
349       'normal' => {
350          callback => \&parsenormal,
351          attribute => 'Normal Text',
352       },
353       'string' => {
354          callback => \&parsestring,
355          attribute => 'String',
356       },
357    });
358    $self->deliminators('\\s||\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\|\\.');
359    $self->basecontext('normal');
360    $self->keywordscase(0);
361    $self->initialize;
362    bless ($self, $class);
363    return $self;
364 }
365
366 sub language {
367    return 'MIPS Assembler';
368 }
369
370 sub parsenormal {
371    my ($self, $text) = @_;
372    # String => 'hardware'
373    # attribute => 'Hardware Instruction'
374    # context => '#stay'
375    # type => 'keyword'
376    if ($self->testKeyword($text, 'hardware', 0, undef, 0, '#stay', 'Hardware Instruction')) {
377       return 1
378    }
379    # String => 'pseudo'
380    # attribute => 'Pseudo Instruction'
381    # context => '#stay'
382    # type => 'keyword'
383    if ($self->testKeyword($text, 'pseudo', 0, undef, 0, '#stay', 'Pseudo Instruction')) {
384       return 1
385    }
386    # String => 'register1'
387    # attribute => 'Other Register'
388    # context => '#stay'
389    # type => 'keyword'
390    if ($self->testKeyword($text, 'register1', 0, undef, 0, '#stay', 'Other Register')) {
391       return 1
392    }
393    # String => 'register2'
394    # attribute => 'Main Register'
395    # context => '#stay'
396    # type => 'keyword'
397    if ($self->testKeyword($text, 'register2', 0, undef, 0, '#stay', 'Main Register')) {
398       return 1
399    }
400    # String => 'fp'
401    # attribute => 'Floating Point Register'
402    # context => '#stay'
403    # type => 'keyword'
404    if ($self->testKeyword($text, 'fp', 0, undef, 0, '#stay', 'Floating Point Register')) {
405       return 1
406    }
407    # String => 'section'
408    # attribute => 'Type'
409    # context => '#stay'
410    # type => 'keyword'
411    if ($self->testKeyword($text, 'section', 0, undef, 0, '#stay', 'Type')) {
412       return 1
413    }
414    # String => 'type'
415    # attribute => 'Section'
416    # context => '#stay'
417    # type => 'keyword'
418    if ($self->testKeyword($text, 'type', 0, undef, 0, '#stay', 'Section')) {
419       return 1
420    }
421    # String => '#\s*BEGIN.*$'
422    # attribute => 'Region Marker'
423    # beginRegion => 'region'
424    # context => '#stay'
425    # firstNonSpace => 'true'
426    # type => 'RegExpr'
427    if ($self->testRegExpr($text, '#\\s*BEGIN.*$', 0, 0, 0, undef, 1, '#stay', 'Region Marker')) {
428       return 1
429    }
430    # String => '#\s*END.*$'
431    # attribute => 'Region Marker'
432    # context => '#stay'
433    # endRegion => 'region'
434    # firstNonSpace => 'true'
435    # type => 'RegExpr'
436    if ($self->testRegExpr($text, '#\\s*END.*$', 0, 0, 0, undef, 1, '#stay', 'Region Marker')) {
437       return 1
438    }
439    # String => '#.*$'
440    # attribute => 'Comment'
441    # context => '#stay'
442    # type => 'RegExpr'
443    if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
444       return 1
445    }
446    # String => '[\w_\.]+:'
447    # attribute => 'Label'
448    # context => '#stay'
449    # firstNonSpace => 'true'
450    # type => 'RegExpr'
451    if ($self->testRegExpr($text, '[\\w_\\.]+:', 0, 0, 0, undef, 1, '#stay', 'Label')) {
452       return 1
453    }
454    # attribute => 'String'
455    # char => '"'
456    # context => 'string'
457    # type => 'DetectChar'
458    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'string', 'String')) {
459       return 1
460    }
461    # attribute => 'Float'
462    # context => '#stay'
463    # type => 'Float'
464    if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) {
465       return 1
466    }
467    # attribute => 'Octal'
468    # context => '#stay'
469    # type => 'HlCOct'
470    if ($self->testHlCOct($text, 0, undef, 0, '#stay', 'Octal')) {
471       return 1
472    }
473    # attribute => 'Hex'
474    # context => '#stay'
475    # type => 'HlCHex'
476    if ($self->testHlCHex($text, 0, undef, 0, '#stay', 'Hex')) {
477       return 1
478    }
479    # attribute => 'Decimal'
480    # context => '#stay'
481    # type => 'Int'
482    if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
483       return 1
484    }
485    return 0;
486 };
487
488 sub parsestring {
489    my ($self, $text) = @_;
490    # String => '\\.'
491    # attribute => 'Char'
492    # context => '#stay'
493    # type => 'RegExpr'
494    if ($self->testRegExpr($text, '\\\\.', 0, 0, 0, undef, 0, '#stay', 'Char')) {
495       return 1
496    }
497    # attribute => 'String'
498    # char => '"'
499    # context => '#pop'
500    # type => 'DetectChar'
501    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) {
502       return 1
503    }
504    return 0;
505 };
506
507
508 1;
509
510 __END__
511
512 =head1 NAME
513
514 Syntax::Highlight::Engine::Kate::MIPS_Assembler - a Plugin for MIPS Assembler syntax highlighting
515
516 =head1 SYNOPSIS
517
518  require Syntax::Highlight::Engine::Kate::MIPS_Assembler;
519  my $sh = new Syntax::Highlight::Engine::Kate::MIPS_Assembler([
520  ]);
521
522 =head1 DESCRIPTION
523
524 Syntax::Highlight::Engine::Kate::MIPS_Assembler is a  plugin module that provides syntax highlighting
525 for MIPS Assembler to the Syntax::Haghlight::Engine::Kate highlighting engine.
526
527 This code is generated from the syntax definition files used
528 by the Kate project.
529 It works quite fine, but can use refinement and optimization.
530
531 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
532
533 =cut
534
535 =head1 AUTHOR
536
537 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
538
539 =cut
540
541 =head1 BUGS
542
543 Unknown. If you find any, please contact the author
544
545 =cut
546