Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / RSI_IDL.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 'rsiidl.xml' file of the syntax highlight
6 # engine of the kate text editor (http://www.kate-editor.org
7
8 #kate xml version 1.04
9 #kate version 2.1
10 #kate author Markus Fraenz (fraenz@linmpi.mpg.de)
11 #generated: Sun Feb  3 22:02:06 2008, localtime
12
13 package Syntax::Highlight::Engine::Kate::RSI_IDL;
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       'Command' => 'BaseN',
28       'Comment' => 'Comment',
29       'Data Type' => 'DataType',
30       'Decimal' => 'DecVal',
31       'Float' => 'DecVal',
32       'Hex' => 'DecVal',
33       'IOCommand' => 'DataType',
34       'Keyword' => 'Keyword',
35       'Normal Text' => 'Normal',
36       'Octal' => 'DecVal',
37       'String' => 'String',
38       'String Char' => 'Char',
39       'bracketed' => 'Float',
40    });
41    $self->listAdd('commands',
42       'ABS',
43       'ACOS',
44       'ADAPT_HIST_EQUAL',
45       'ALOG',
46       'ALOG10',
47       'ARG_PRESENT',
48       'ASIN',
49       'ASSOC',
50       'ATAN',
51       'AXIS',
52       'BESELI',
53       'BESELJ',
54       'BESELY',
55       'BLAS_AXPY',
56       'BREAKPOINT',
57       'BROYDEN',
58       'BYTEORDER',
59       'CALL_EXTERNAL',
60       'CALL_FUNCTION',
61       'CALL_METHOD',
62       'CALL_PROCEDURE',
63       'CATCH',
64       'CEIL',
65       'CHECK_MATH',
66       'CHOLDC',
67       'CHOLSOL',
68       'COLOR_CONVERT',
69       'COLOR_QUAN',
70       'COMPILE_OPT',
71       'COMPUTE_MESH_NORMALS',
72       'CONJ',
73       'CONSTRAINED_MIN',
74       'CONTOUR',
75       'CONVERT_COORD',
76       'CONVOL',
77       'CORRELATE',
78       'COS',
79       'COSH',
80       'CREATE_STRUCT',
81       'CURSOR',
82       'DEFINE_KEY',
83       'DEFSYSV',
84       'DELVAR',
85       'DEVICE',
86       'DFPMIN',
87       'DIALOG_MESSAGE',
88       'DIALOG_PICKFILE',
89       'DIALOG_PRINTERSETUP',
90       'DIALOG_PRINTJOB',
91       'DILATE',
92       'DLM_LOAD',
93       'DRAW_ROI',
94       'ELMHES',
95       'EMPTY',
96       'ENABLE_SYSRTN',
97       'ERASE',
98       'ERODE',
99       'ERRORF',
100       'EXECUTE',
101       'EXIT',
102       'EXP',
103       'EXPAND_PATH',
104       'EXPINT',
105       'FINDFILE',
106       'FINITE',
107       'FLOOR',
108       'FORMAT_AXIS_VALUES',
109       'FORWARD_FUNCTION',
110       'FSTAT',
111       'FULSTR',
112       'FZ_ROOTS',
113       'GAUSSINT',
114       'GETENV',
115       'GET_KBRD',
116       'GRID3',
117       'GRID_TPS',
118       'HEAP_GC',
119       'HELP',
120       'HISTOGRAM',
121       'HQR',
122       'IMAGE_STATISTICS',
123       'IMAGINARY',
124       'INTERPOLATE',
125       'INVERT',
126       'ISHFT',
127       'ISOCONTOUR',
128       'ISOSURFACE',
129       'JOURNAL',
130       'KEYWORD_SET',
131       'LABEL_REGION',
132       'LINBCG',
133       'LINKIMAGE',
134       'LMGR',
135       'LNGAMMA',
136       'LNP_TEST',
137       'LOADCT',
138       'LOCALE_GET',
139       'LSODE',
140       'LUDC',
141       'LUMPROVE',
142       'LUSOL',
143       'MACHAR',
144       'MAKE_ARRAY',
145       'MAP_PROJ_INFO',
146       'MAX',
147       'MEDIAN',
148       'MESH_CLIP',
149       'MESH_DECIMATE',
150       'MESH_ISSOLID',
151       'MESH_MERGE',
152       'MESH_NUMTRIANGLES',
153       'MESH_SMOOTH',
154       'MESH_SURFACEAREA',
155       'MESH_VALIDATE',
156       'MESH_VOLUME',
157       'MESSAGE',
158       'MIN',
159       'NEWTON',
160       'N_ELEMENTS',
161       'N_PARAMS',
162       'N_TAGS',
163       'OBJ_CLASS',
164       'OBJ_DESTROY',
165       'OBJ_ISA',
166       'OBJ_NEW',
167       'OBJ_VALID',
168       'ON_ERROR',
169       'OPLOT',
170       'PARTICLE_TRACE',
171       'PLOT',
172       'PLOTS',
173       'POLYFILL',
174       'POLYFILLV',
175       'POLYSHADE',
176       'POLY_2D',
177       'POWELL',
178       'PROFILER',
179       'PTR_FREE',
180       'PTR_NEW',
181       'PTR_VALID',
182       'QROMB',
183       'QROMO',
184       'QSIMP',
185       'RANDOMN',
186       'RANDOMU',
187       'REBIN',
188       'REFORM',
189       'RETALL',
190       'RETURN',
191       'RIEMANN',
192       'RK4',
193       'ROBERTS',
194       'ROTATE',
195       'ROUND',
196       'SETENV',
197       'SET_PLOT',
198       'SET_SHADING',
199       'SHADE_SURF',
200       'SHADE_VOLUME',
201       'SHIFT',
202       'SIN',
203       'SINH',
204       'SIZE',
205       'SMOOTH',
206       'SOBEL',
207       'SORT',
208       'SPL_INIT',
209       'SPL_INTERP',
210       'SPRSAB',
211       'SPRSAX',
212       'SPRSIN',
213       'SQRT',
214       'STOP',
215       'STRCMP',
216       'STRCOMPRESS',
217       'STREGEX',
218       'STRJOIN',
219       'STRLEN',
220       'STRLOWCASE',
221       'STRMATCH',
222       'STRMESSAGE',
223       'STRMID',
224       'STRPOS',
225       'STRPUT',
226       'STRTRIM',
227       'STRUCT_ASSIGN',
228       'STRUCT_HIDE',
229       'STRUPCASE',
230       'SURFACE',
231       'SVDC',
232       'SVSOL',
233       'SYSTIME',
234       'TAG_NAMES',
235       'TAN',
236       'TANH',
237       'TEMPORARY',
238       'TETRA_CLIP',
239       'TETRA_SURFACE',
240       'TETRA_VOLUME',
241       'THIN',
242       'THREED',
243       'TOTAL',
244       'TRANSPOSE',
245       'TRIANGULATE',
246       'TRIGRID',
247       'TRIQL',
248       'TRIRED',
249       'TRISOL',
250       'TV',
251       'TVCRS',
252       'TVLCT',
253       'TVRD',
254       'TVSCLU',
255       'USERSYM',
256       'VALUE_LOCATE',
257       'VOIGT',
258       'VOXEL_PROJ',
259       'WAIT',
260       'WATERSHED',
261       'WDELETE',
262       'WHERE',
263       'WIDGET_BASE',
264       'WIDGET_BUTTON',
265       'WIDGET_CONTROL',
266       'WIDGET_DRAW',
267       'WIDGET_DROPLIST',
268       'WIDGET_EVENT',
269       'WIDGET_INFO',
270       'WIDGET_LABEL',
271       'WIDGET_LIST',
272       'WIDGET_SLIDER',
273       'WIDGET_TABLE',
274       'WIDGET_TEXT',
275       'WINDOW',
276       'WSET',
277       'WSHOW',
278       'WTN',
279       'XYOUTS',
280    );
281    $self->listAdd('io commands',
282       'Close',
283       'FLUSH',
284       'Free_lun',
285       'IOCTL',
286       'Open',
287       'Openr',
288       'Openu',
289       'Openw',
290       'POINT_LUN',
291       'RESTORE',
292       'SAVE',
293       'assoc',
294       'catch',
295       'cd',
296       'eof',
297       'get_lun',
298       'print',
299       'printf',
300       'prints',
301       'read',
302       'readf',
303       'reads',
304       'spawn',
305       'writu',
306    );
307    $self->listAdd('reserved words',
308       'And',
309       'Begin',
310       'Case',
311       'Common',
312       'Do',
313       'Else',
314       'End',
315       'Endcase',
316       'Endelse',
317       'Endfor',
318       'Endif',
319       'Endrep',
320       'Endwhile',
321       'Eq',
322       'For',
323       'Function',
324       'Ge',
325       'Goto',
326       'Gt',
327       'If',
328       'Le',
329       'Lt',
330       'Mod',
331       'Ne',
332       'Not',
333       'Of',
334       'On_ioerror',
335       'Or',
336       'Pro',
337       'Repeat',
338       'Return',
339       'Then',
340       'Then',
341       'Until',
342       'While',
343       'Xor',
344    );
345    $self->listAdd('system variables',
346       'c',
347       'd',
348       'dir',
349       'dlm_path',
350       'dpi',
351       'dtor',
352       'edit_input',
353       'err',
354       'err_string',
355       'error',
356       'error_state',
357       'except',
358       'help_path',
359       'journal',
360       'map',
361       'more',
362       'mouse',
363       'msg_prefix',
364       'order',
365       'p',
366       'path',
367       'pi',
368       'prompt',
369       'quiet',
370       'radeg',
371       'stime',
372       'syserr_string',
373       'syserror',
374       'values',
375       'version',
376       'warn',
377       'x',
378       'y',
379       'z',
380    );
381    $self->listAdd('types',
382       'Bytarr',
383       'Byte',
384       'Bytscl',
385       'Dblarr',
386       'Dcindgen',
387       'Dindgen',
388       'Double',
389       'Findgen',
390       'Fix',
391       'Float',
392       'Fltarr',
393       'Indgen',
394       'Intarr',
395       'Long',
396       'Long64',
397       'Objarr',
398       'Ptrarr',
399       'Replicate',
400       'Strarr',
401       'String',
402       'bindgen',
403       'cindgen',
404       'complex',
405       'complexarr',
406       'dcomplex',
407       'dcomplexarr',
408       'l64indgen',
409       'lindgen',
410       'lon64arr',
411       'lonarr',
412       'sindgen',
413       'uindgen',
414       'uint',
415       'uintarr',
416       'ul64indgen',
417       'ulindgen',
418       'ulon64arr',
419       'ulonarr',
420       'ulong',
421    );
422    $self->contextdata({
423       'Comment' => {
424          callback => \&parseComment,
425          attribute => 'Comment',
426          lineending => '#pop',
427       },
428       'Normal' => {
429          callback => \&parseNormal,
430          attribute => 'Normal Text',
431       },
432       'systemvarcontext' => {
433          callback => \&parsesystemvarcontext,
434          attribute => 'Char',
435          lineending => '#pop',
436       },
437    });
438    $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
439    $self->basecontext('Normal');
440    $self->keywordscase(0);
441    $self->initialize;
442    bless ($self, $class);
443    return $self;
444 }
445
446 sub language {
447    return 'RSI IDL';
448 }
449
450 sub parseComment {
451    my ($self, $text) = @_;
452    return 0;
453 };
454
455 sub parseNormal {
456    my ($self, $text) = @_;
457    # String => 'reserved words'
458    # attribute => 'Keyword'
459    # context => '#stay'
460    # type => 'keyword'
461    if ($self->testKeyword($text, 'reserved words', 0, undef, 0, '#stay', 'Keyword')) {
462       return 1
463    }
464    # String => 'types'
465    # attribute => 'Data Type'
466    # context => '#stay'
467    # type => 'keyword'
468    if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) {
469       return 1
470    }
471    # String => 'commands'
472    # attribute => 'Command'
473    # context => '#stay'
474    # type => 'keyword'
475    if ($self->testKeyword($text, 'commands', 0, undef, 0, '#stay', 'Command')) {
476       return 1
477    }
478    # String => 'io commands'
479    # attribute => 'IOCommand'
480    # context => '#stay'
481    # type => 'keyword'
482    if ($self->testKeyword($text, 'io commands', 0, undef, 0, '#stay', 'IOCommand')) {
483       return 1
484    }
485    # attribute => 'Octal'
486    # context => '#stay'
487    # type => 'Float'
488    if ($self->testFloat($text, 0, undef, 0, '#stay', 'Octal')) {
489       return 1
490    }
491    # attribute => 'Decimal'
492    # context => '#stay'
493    # type => 'Int'
494    if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
495       return 1
496    }
497    # attribute => 'String'
498    # char => '''
499    # char1 => '''
500    # context => '#stay'
501    # type => 'RangeDetect'
502    if ($self->testRangeDetect($text, '\'', '\'', 0, 0, undef, 0, '#stay', 'String')) {
503       return 1
504    }
505    # attribute => 'String'
506    # char => '"'
507    # char1 => '"'
508    # context => '#stay'
509    # type => 'RangeDetect'
510    if ($self->testRangeDetect($text, '"', '"', 0, 0, undef, 0, '#stay', 'String')) {
511       return 1
512    }
513    # attribute => 'Hex'
514    # char => '('
515    # context => '#stay'
516    # type => 'DetectChar'
517    if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, '#stay', 'Hex')) {
518       return 1
519    }
520    # attribute => 'Hex'
521    # char => ')'
522    # context => '#stay'
523    # type => 'DetectChar'
524    if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#stay', 'Hex')) {
525       return 1
526    }
527    # attribute => 'Char'
528    # char => '['
529    # context => '#stay'
530    # type => 'DetectChar'
531    if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, '#stay', 'Char')) {
532       return 1
533    }
534    # attribute => 'Char'
535    # char => ']'
536    # context => '#stay'
537    # type => 'DetectChar'
538    if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#stay', 'Char')) {
539       return 1
540    }
541    # attribute => 'Float'
542    # char => '{'
543    # context => '#stay'
544    # type => 'DetectChar'
545    if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, '#stay', 'Float')) {
546       return 1
547    }
548    # attribute => 'Float'
549    # char => '}'
550    # context => '#stay'
551    # type => 'DetectChar'
552    if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#stay', 'Float')) {
553       return 1
554    }
555    # attribute => 'Char'
556    # char => '$'
557    # context => '#stay'
558    # type => 'DetectChar'
559    if ($self->testDetectChar($text, '$', 0, 0, 0, undef, 0, '#stay', 'Char')) {
560       return 1
561    }
562    # attribute => 'Char'
563    # char => '@'
564    # context => '#stay'
565    # type => 'DetectChar'
566    if ($self->testDetectChar($text, '@', 0, 0, 0, undef, 0, '#stay', 'Char')) {
567       return 1
568    }
569    # attribute => 'Char'
570    # char => ':'
571    # context => '#stay'
572    # type => 'DetectChar'
573    if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, '#stay', 'Char')) {
574       return 1
575    }
576    # attribute => 'Char'
577    # char => ';'
578    # context => 'Comment'
579    # type => 'DetectChar'
580    if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, 'Comment', 'Char')) {
581       return 1
582    }
583    # attribute => 'Char'
584    # char => '!'
585    # context => 'systemvarcontext'
586    # type => 'DetectChar'
587    if ($self->testDetectChar($text, '!', 0, 0, 0, undef, 0, 'systemvarcontext', 'Char')) {
588       return 1
589    }
590    return 0;
591 };
592
593 sub parsesystemvarcontext {
594    my ($self, $text) = @_;
595    # attribute => 'Hex'
596    # char => '('
597    # context => '#pop'
598    # type => 'DetectChar'
599    if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, '#pop', 'Hex')) {
600       return 1
601    }
602    # attribute => 'Char'
603    # char => '.'
604    # context => '#pop'
605    # type => 'DetectChar'
606    if ($self->testDetectChar($text, '.', 0, 0, 0, undef, 0, '#pop', 'Char')) {
607       return 1
608    }
609    # attribute => 'Hex'
610    # char => ' '
611    # context => '#pop'
612    # type => 'DetectChar'
613    if ($self->testDetectChar($text, ' ', 0, 0, 0, undef, 0, '#pop', 'Hex')) {
614       return 1
615    }
616    # String => 'system variables'
617    # attribute => 'Float'
618    # context => '#pop'
619    # type => 'keyword'
620    if ($self->testKeyword($text, 'system variables', 0, undef, 0, '#pop', 'Float')) {
621       return 1
622    }
623    return 0;
624 };
625
626
627 1;
628
629 __END__
630
631 =head1 NAME
632
633 Syntax::Highlight::Engine::Kate::RSI_IDL - a Plugin for RSI IDL syntax highlighting
634
635 =head1 SYNOPSIS
636
637  require Syntax::Highlight::Engine::Kate::RSI_IDL;
638  my $sh = new Syntax::Highlight::Engine::Kate::RSI_IDL([
639  ]);
640
641 =head1 DESCRIPTION
642
643 Syntax::Highlight::Engine::Kate::RSI_IDL is a  plugin module that provides syntax highlighting
644 for RSI IDL to the Syntax::Haghlight::Engine::Kate highlighting engine.
645
646 This code is generated from the syntax definition files used
647 by the Kate project.
648 It works quite fine, but can use refinement and optimization.
649
650 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
651
652 =cut
653
654 =head1 AUTHOR
655
656 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
657
658 =cut
659
660 =head1 BUGS
661
662 Unknown. If you find any, please contact the author
663
664 =cut
665