| Syntax-Highlight-Engine-Kate documentation | Contained in the Syntax-Highlight-Engine-Kate distribution. |
Syntax::Highlight::Engine::Kate::RSI_IDL - a Plugin for RSI IDL syntax highlighting
require Syntax::Highlight::Engine::Kate::RSI_IDL; my $sh = new Syntax::Highlight::Engine::Kate::RSI_IDL([ ]);
Syntax::Highlight::Engine::Kate::RSI_IDL is a plugin module that provides syntax highlighting for RSI IDL to the Syntax::Haghlight::Engine::Kate highlighting engine.
This code is generated from the syntax definition files used by the Kate project. It works quite fine, but can use refinement and optimization.
It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
Unknown. If you find any, please contact the author
| Syntax-Highlight-Engine-Kate documentation | Contained in the Syntax-Highlight-Engine-Kate distribution. |
# Copyright (c) 2005 - 2006 Hans Jeuken. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # This file was generated from the 'rsiidl.xml' file of the syntax highlight # engine of the kate text editor (http://www.kate-editor.org #kate xml version 1.04 #kate version 2.1 #kate author Markus Fraenz (fraenz@linmpi.mpg.de) #generated: Sun Feb 3 22:02:06 2008, localtime package Syntax::Highlight::Engine::Kate::RSI_IDL; our $VERSION = '0.06'; use strict; use warnings; use base('Syntax::Highlight::Engine::Kate::Template'); sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = $class->SUPER::new(@_); $self->attributes({ 'Char' => 'Char', 'Command' => 'BaseN', 'Comment' => 'Comment', 'Data Type' => 'DataType', 'Decimal' => 'DecVal', 'Float' => 'DecVal', 'Hex' => 'DecVal', 'IOCommand' => 'DataType', 'Keyword' => 'Keyword', 'Normal Text' => 'Normal', 'Octal' => 'DecVal', 'String' => 'String', 'String Char' => 'Char', 'bracketed' => 'Float', }); $self->listAdd('commands', 'ABS', 'ACOS', 'ADAPT_HIST_EQUAL', 'ALOG', 'ALOG10', 'ARG_PRESENT', 'ASIN', 'ASSOC', 'ATAN', 'AXIS', 'BESELI', 'BESELJ', 'BESELY', 'BLAS_AXPY', 'BREAKPOINT', 'BROYDEN', 'BYTEORDER', 'CALL_EXTERNAL', 'CALL_FUNCTION', 'CALL_METHOD', 'CALL_PROCEDURE', 'CATCH', 'CEIL', 'CHECK_MATH', 'CHOLDC', 'CHOLSOL', 'COLOR_CONVERT', 'COLOR_QUAN', 'COMPILE_OPT', 'COMPUTE_MESH_NORMALS', 'CONJ', 'CONSTRAINED_MIN', 'CONTOUR', 'CONVERT_COORD', 'CONVOL', 'CORRELATE', 'COS', 'COSH', 'CREATE_STRUCT', 'CURSOR', 'DEFINE_KEY', 'DEFSYSV', 'DELVAR', 'DEVICE', 'DFPMIN', 'DIALOG_MESSAGE', 'DIALOG_PICKFILE', 'DIALOG_PRINTERSETUP', 'DIALOG_PRINTJOB', 'DILATE', 'DLM_LOAD', 'DRAW_ROI', 'ELMHES', 'EMPTY', 'ENABLE_SYSRTN', 'ERASE', 'ERODE', 'ERRORF', 'EXECUTE', 'EXIT', 'EXP', 'EXPAND_PATH', 'EXPINT', 'FINDFILE', 'FINITE', 'FLOOR', 'FORMAT_AXIS_VALUES', 'FORWARD_FUNCTION', 'FSTAT', 'FULSTR', 'FZ_ROOTS', 'GAUSSINT', 'GETENV', 'GET_KBRD', 'GRID3', 'GRID_TPS', 'HEAP_GC', 'HELP', 'HISTOGRAM', 'HQR', 'IMAGE_STATISTICS', 'IMAGINARY', 'INTERPOLATE', 'INVERT', 'ISHFT', 'ISOCONTOUR', 'ISOSURFACE', 'JOURNAL', 'KEYWORD_SET', 'LABEL_REGION', 'LINBCG', 'LINKIMAGE', 'LMGR', 'LNGAMMA', 'LNP_TEST', 'LOADCT', 'LOCALE_GET', 'LSODE', 'LUDC', 'LUMPROVE', 'LUSOL', 'MACHAR', 'MAKE_ARRAY', 'MAP_PROJ_INFO', 'MAX', 'MEDIAN', 'MESH_CLIP', 'MESH_DECIMATE', 'MESH_ISSOLID', 'MESH_MERGE', 'MESH_NUMTRIANGLES', 'MESH_SMOOTH', 'MESH_SURFACEAREA', 'MESH_VALIDATE', 'MESH_VOLUME', 'MESSAGE', 'MIN', 'NEWTON', 'N_ELEMENTS', 'N_PARAMS', 'N_TAGS', 'OBJ_CLASS', 'OBJ_DESTROY', 'OBJ_ISA', 'OBJ_NEW', 'OBJ_VALID', 'ON_ERROR', 'OPLOT', 'PARTICLE_TRACE', 'PLOT', 'PLOTS', 'POLYFILL', 'POLYFILLV', 'POLYSHADE', 'POLY_2D', 'POWELL', 'PROFILER', 'PTR_FREE', 'PTR_NEW', 'PTR_VALID', 'QROMB', 'QROMO', 'QSIMP', 'RANDOMN', 'RANDOMU', 'REBIN', 'REFORM', 'RETALL', 'RETURN', 'RIEMANN', 'RK4', 'ROBERTS', 'ROTATE', 'ROUND', 'SETENV', 'SET_PLOT', 'SET_SHADING', 'SHADE_SURF', 'SHADE_VOLUME', 'SHIFT', 'SIN', 'SINH', 'SIZE', 'SMOOTH', 'SOBEL', 'SORT', 'SPL_INIT', 'SPL_INTERP', 'SPRSAB', 'SPRSAX', 'SPRSIN', 'SQRT', 'STOP', 'STRCMP', 'STRCOMPRESS', 'STREGEX', 'STRJOIN', 'STRLEN', 'STRLOWCASE', 'STRMATCH', 'STRMESSAGE', 'STRMID', 'STRPOS', 'STRPUT', 'STRTRIM', 'STRUCT_ASSIGN', 'STRUCT_HIDE', 'STRUPCASE', 'SURFACE', 'SVDC', 'SVSOL', 'SYSTIME', 'TAG_NAMES', 'TAN', 'TANH', 'TEMPORARY', 'TETRA_CLIP', 'TETRA_SURFACE', 'TETRA_VOLUME', 'THIN', 'THREED', 'TOTAL', 'TRANSPOSE', 'TRIANGULATE', 'TRIGRID', 'TRIQL', 'TRIRED', 'TRISOL', 'TV', 'TVCRS', 'TVLCT', 'TVRD', 'TVSCLU', 'USERSYM', 'VALUE_LOCATE', 'VOIGT', 'VOXEL_PROJ', 'WAIT', 'WATERSHED', 'WDELETE', 'WHERE', 'WIDGET_BASE', 'WIDGET_BUTTON', 'WIDGET_CONTROL', 'WIDGET_DRAW', 'WIDGET_DROPLIST', 'WIDGET_EVENT', 'WIDGET_INFO', 'WIDGET_LABEL', 'WIDGET_LIST', 'WIDGET_SLIDER', 'WIDGET_TABLE', 'WIDGET_TEXT', 'WINDOW', 'WSET', 'WSHOW', 'WTN', 'XYOUTS', ); $self->listAdd('io commands', 'Close', 'FLUSH', 'Free_lun', 'IOCTL', 'Open', 'Openr', 'Openu', 'Openw', 'POINT_LUN', 'RESTORE', 'SAVE', 'assoc', 'catch', 'cd', 'eof', 'get_lun', 'print', 'printf', 'prints', 'read', 'readf', 'reads', 'spawn', 'writu', ); $self->listAdd('reserved words', 'And', 'Begin', 'Case', 'Common', 'Do', 'Else', 'End', 'Endcase', 'Endelse', 'Endfor', 'Endif', 'Endrep', 'Endwhile', 'Eq', 'For', 'Function', 'Ge', 'Goto', 'Gt', 'If', 'Le', 'Lt', 'Mod', 'Ne', 'Not', 'Of', 'On_ioerror', 'Or', 'Pro', 'Repeat', 'Return', 'Then', 'Then', 'Until', 'While', 'Xor', ); $self->listAdd('system variables', 'c', 'd', 'dir', 'dlm_path', 'dpi', 'dtor', 'edit_input', 'err', 'err_string', 'error', 'error_state', 'except', 'help_path', 'journal', 'map', 'more', 'mouse', 'msg_prefix', 'order', 'p', 'path', 'pi', 'prompt', 'quiet', 'radeg', 'stime', 'syserr_string', 'syserror', 'values', 'version', 'warn', 'x', 'y', 'z', ); $self->listAdd('types', 'Bytarr', 'Byte', 'Bytscl', 'Dblarr', 'Dcindgen', 'Dindgen', 'Double', 'Findgen', 'Fix', 'Float', 'Fltarr', 'Indgen', 'Intarr', 'Long', 'Long64', 'Objarr', 'Ptrarr', 'Replicate', 'Strarr', 'String', 'bindgen', 'cindgen', 'complex', 'complexarr', 'dcomplex', 'dcomplexarr', 'l64indgen', 'lindgen', 'lon64arr', 'lonarr', 'sindgen', 'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen', 'ulon64arr', 'ulonarr', 'ulong', ); $self->contextdata({ 'Comment' => { callback => \&parseComment, attribute => 'Comment', lineending => '#pop', }, 'Normal' => { callback => \&parseNormal, attribute => 'Normal Text', }, 'systemvarcontext' => { callback => \&parsesystemvarcontext, attribute => 'Char', lineending => '#pop', }, }); $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\'); $self->basecontext('Normal'); $self->keywordscase(0); $self->initialize; bless ($self, $class); return $self; } sub language { return 'RSI IDL'; } sub parseComment { my ($self, $text) = @_; return 0; }; sub parseNormal { my ($self, $text) = @_; # String => 'reserved words' # attribute => 'Keyword' # context => '#stay' # type => 'keyword' if ($self->testKeyword($text, 'reserved words', 0, undef, 0, '#stay', 'Keyword')) { return 1 } # String => 'types' # attribute => 'Data Type' # context => '#stay' # type => 'keyword' if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) { return 1 } # String => 'commands' # attribute => 'Command' # context => '#stay' # type => 'keyword' if ($self->testKeyword($text, 'commands', 0, undef, 0, '#stay', 'Command')) { return 1 } # String => 'io commands' # attribute => 'IOCommand' # context => '#stay' # type => 'keyword' if ($self->testKeyword($text, 'io commands', 0, undef, 0, '#stay', 'IOCommand')) { return 1 } # attribute => 'Octal' # context => '#stay' # type => 'Float' if ($self->testFloat($text, 0, undef, 0, '#stay', 'Octal')) { return 1 } # attribute => 'Decimal' # context => '#stay' # type => 'Int' if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) { return 1 } # attribute => 'String' # char => ''' # char1 => ''' # context => '#stay' # type => 'RangeDetect' if ($self->testRangeDetect($text, '\'', '\'', 0, 0, undef, 0, '#stay', 'String')) { return 1 } # attribute => 'String' # char => '"' # char1 => '"' # context => '#stay' # type => 'RangeDetect' if ($self->testRangeDetect($text, '"', '"', 0, 0, undef, 0, '#stay', 'String')) { return 1 } # attribute => 'Hex' # char => '(' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, '#stay', 'Hex')) { return 1 } # attribute => 'Hex' # char => ')' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#stay', 'Hex')) { return 1 } # attribute => 'Char' # char => '[' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '[', 0, 0, 0, undef, 0, '#stay', 'Char')) { return 1 } # attribute => 'Char' # char => ']' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, ']', 0, 0, 0, undef, 0, '#stay', 'Char')) { return 1 } # attribute => 'Float' # char => '{' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, '#stay', 'Float')) { return 1 } # attribute => 'Float' # char => '}' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#stay', 'Float')) { return 1 } # attribute => 'Char' # char => '$' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '$', 0, 0, 0, undef, 0, '#stay', 'Char')) { return 1 } # attribute => 'Char' # char => '@' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, '@', 0, 0, 0, undef, 0, '#stay', 'Char')) { return 1 } # attribute => 'Char' # char => ':' # context => '#stay' # type => 'DetectChar' if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, '#stay', 'Char')) { return 1 } # attribute => 'Char' # char => ';' # context => 'Comment' # type => 'DetectChar' if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, 'Comment', 'Char')) { return 1 } # attribute => 'Char' # char => '!' # context => 'systemvarcontext' # type => 'DetectChar' if ($self->testDetectChar($text, '!', 0, 0, 0, undef, 0, 'systemvarcontext', 'Char')) { return 1 } return 0; }; sub parsesystemvarcontext { my ($self, $text) = @_; # attribute => 'Hex' # char => '(' # context => '#pop' # type => 'DetectChar' if ($self->testDetectChar($text, '(', 0, 0, 0, undef, 0, '#pop', 'Hex')) { return 1 } # attribute => 'Char' # char => '.' # context => '#pop' # type => 'DetectChar' if ($self->testDetectChar($text, '.', 0, 0, 0, undef, 0, '#pop', 'Char')) { return 1 } # attribute => 'Hex' # char => ' ' # context => '#pop' # type => 'DetectChar' if ($self->testDetectChar($text, ' ', 0, 0, 0, undef, 0, '#pop', 'Hex')) { return 1 } # String => 'system variables' # attribute => 'Float' # context => '#pop' # type => 'keyword' if ($self->testKeyword($text, 'system variables', 0, undef, 0, '#pop', 'Float')) { return 1 } return 0; }; 1; __END__