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 'ilerpg.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.1 10#generated: Sun Feb 3 22:02:05 2008, localtime 11 12package Syntax::Highlight::Engine::Kate::ILERPG; 13 14our $VERSION = '0.14'; 15 16use strict; 17use warnings; 18use base('Syntax::Highlight::Engine::Kate::Template'); 19 20sub new { 21 my $proto = shift; 22 my $class = ref($proto) || $proto; 23 my $self = $class->SUPER::new(@_); 24 $self->attributes({ 25 'Base-N' => 'BaseN', 26 'Biff' => 'Keyword', 27 'BoldComment' => 'Alert', 28 'Char' => 'Char', 29 'Comment' => 'Comment', 30 'Constant' => 'DataType', 31 'Decimal' => 'DecVal', 32 'Directive' => 'Others', 33 'DivideComment' => 'Alert', 34 'Fill' => 'Reserved', 35 'Float' => 'Float', 36 'Hex' => 'BaseN', 37 'Keyword' => 'Keyword', 38 'Normal Text' => 'Normal', 39 'Octal' => 'BaseN', 40 'RegExpr' => 'BaseN', 41 'Symbol' => 'Normal', 42 }); 43 $self->listAdd('biffs', 44 'ABS', 45 'ADDR', 46 'CHAR', 47 'DEC', 48 'DECH', 49 'DECPOS', 50 'EDITC', 51 'EDITFLT', 52 'EDITW', 53 'ELEM', 54 'EOF', 55 'EQUAL', 56 'ERROR', 57 'FLOAT', 58 'FOUND', 59 'INT', 60 'INTH', 61 'LEN', 62 'NULLIND', 63 'OPEN', 64 'PADDR', 65 'PARMS', 66 'REPLACE', 67 'SCAN', 68 'SIZE', 69 'STATUS', 70 'STR', 71 'SUBST', 72 'TRIM', 73 'TRIML', 74 'TRIMR', 75 'UNS', 76 'UNSH', 77 ); 78 $self->listAdd('opcodes', 79 '*BLANKS', 80 'ACQ', 81 'ADD', 82 'ADDDUR', 83 'ALLOC', 84 'AND', 85 'ANDEQ', 86 'ANDGE', 87 'ANDGT', 88 'ANDLE', 89 'ANDLT', 90 'ANDNE', 91 'BEGSR', 92 'BITOFF', 93 'BITON', 94 'CAB', 95 'CABEQ', 96 'CABGE', 97 'CABGT', 98 'CABLE', 99 'CABLT', 100 'CABNE', 101 'CALL', 102 'CALLB', 103 'CALLP', 104 'CAS', 105 'CASEQ', 106 'CASGE', 107 'CASGT', 108 'CASLE', 109 'CASLT', 110 'CASNE', 111 'CAT', 112 'CHAIN', 113 'CHECK', 114 'CHECKR', 115 'CLEAR', 116 'CLOSE', 117 'COMMIT', 118 'COMP', 119 'DEALLOC', 120 'DEFINE', 121 'DELETE', 122 'DIV', 123 'DO', 124 'DOU', 125 'DOUEQ', 126 'DOUGE', 127 'DOUGT', 128 'DOULE', 129 'DOULT', 130 'DOUNE', 131 'DOW', 132 'DOWEQ', 133 'DOWGE', 134 'DOWGT', 135 'DOWLE', 136 'DOWLT', 137 'DOWNE', 138 'DSPLY', 139 'DUMP', 140 'ELSE', 141 'END', 142 'ENDCS', 143 'ENDDO', 144 'ENDIF', 145 'ENDSL', 146 'ENDSR', 147 'EVAL', 148 'EXCEPT', 149 'EXFMT', 150 'EXSR', 151 'EXTRCT', 152 'FEOD', 153 'FORCE', 154 'GOTO', 155 'IF', 156 'IFEQ', 157 'IFGE', 158 'IFGT', 159 'IFLE', 160 'IFLT', 161 'IFNE', 162 'IN', 163 'ITER', 164 'KFLD', 165 'KLIST', 166 'LEAVE', 167 'LOOKUP', 168 'MHHZO', 169 'MHLZO', 170 'MLHZO', 171 'MLLZO', 172 'MOVE', 173 'MOVEA', 174 'MOVEL', 175 'MULT', 176 'MVR', 177 'NEXT', 178 'OCCUR', 179 'OPEN', 180 'OR', 181 'OREQ', 182 'ORGE', 183 'ORGT', 184 'ORLE', 185 'ORLT', 186 'ORNE', 187 'OTHER', 188 'OUT', 189 'PARM', 190 'PLIST', 191 'POST', 192 'READ', 193 'READC', 194 'READE', 195 'READP', 196 'READPE', 197 'REALLOC', 198 'REL', 199 'RESET', 200 'RETURN', 201 'ROLBK', 202 'SCAN', 203 'SELECT', 204 'SETGT', 205 'SETLL', 206 'SETOFF', 207 'SETON', 208 'SHTDN', 209 'SORTA', 210 'SQRT', 211 'SUB', 212 'SUBDUR', 213 'SUBST', 214 'TAG', 215 'TEST', 216 'TESTB', 217 'TESTN', 218 'TESTZ', 219 'TIME', 220 'UNLOCK', 221 'UPDATE', 222 'WHEN', 223 'WHENEQ', 224 'WHENGE', 225 'WHENGT', 226 'WHENLE', 227 'WHENLT', 228 'WHENNR', 229 'WRITE', 230 'XFOOT', 231 'XLATE', 232 'Z-ADD', 233 'Z-SUB', 234 ); 235 $self->contextdata({ 236 'Default' => { 237 callback => \&parseDefault, 238 attribute => 'Normal Text', 239 }, 240 'context1' => { 241 callback => \&parsecontext1, 242 attribute => 'Normal Text', 243 lineending => '#pop', 244 }, 245 'context3' => { 246 callback => \&parsecontext3, 247 attribute => 'Comment', 248 lineending => '#pop', 249 }, 250 'context4' => { 251 callback => \&parsecontext4, 252 attribute => 'Constant', 253 }, 254 'context5' => { 255 callback => \&parsecontext5, 256 attribute => 'Constant', 257 }, 258 'context6' => { 259 callback => \&parsecontext6, 260 attribute => 'Keyword', 261 lineending => '#pop#pop', 262 }, 263 'context7' => { 264 callback => \&parsecontext7, 265 attribute => 'BoldComment', 266 lineending => 'Default', 267 }, 268 'context8' => { 269 callback => \&parsecontext8, 270 attribute => 'Biff', 271 lineending => '#pop#pop#pop', 272 }, 273 }); 274 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\'); 275 $self->basecontext('Default'); 276 $self->keywordscase(0); 277 $self->initialize; 278 bless ($self, $class); 279 return $self; 280} 281 282sub language { 283 return 'ILERPG'; 284} 285 286sub parseDefault { 287 my ($self, $text) = @_; 288 # String => '[POIHFDC ]?\*' 289 # attribute => 'Comment' 290 # context => 'context3' 291 # type => 'RegExpr' 292 if ($self->testRegExpr($text, '[POIHFDC ]?\\*', 0, 0, 0, undef, 0, 'context3', 'Comment')) { 293 return 1 294 } 295 # String => 'POIHFDC' 296 # attribute => 'Keyword' 297 # context => 'context1' 298 # type => 'AnyChar' 299 if ($self->testAnyChar($text, 'POIHFDC', 0, 0, undef, 0, 'context1', 'Keyword')) { 300 return 1 301 } 302 return 0; 303}; 304 305sub parsecontext1 { 306 my ($self, $text) = @_; 307 # String => 'opcodes' 308 # attribute => 'Keyword' 309 # context => '#stay' 310 # type => 'keyword' 311 if ($self->testKeyword($text, 'opcodes', 0, undef, 0, '#stay', 'Keyword')) { 312 return 1 313 } 314 # attribute => 'Biff' 315 # char => '%' 316 # context => 'context7' 317 # type => 'DetectChar' 318 if ($self->testDetectChar($text, '%', 0, 0, 0, undef, 0, 'context7', 'Biff')) { 319 return 1 320 } 321 # attribute => 'Constant' 322 # char => ''' 323 # context => 'context3' 324 # type => 'DetectChar' 325 if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'context3', 'Constant')) { 326 return 1 327 } 328 # attribute => 'Float' 329 # context => '#stay' 330 # type => 'Float' 331 if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) { 332 return 1 333 } 334 # String => '[Xx]'[0-9a-fA-F]{2,}'' 335 # attribute => 'Hex' 336 # context => '#stay' 337 # type => 'RegExpr' 338 if ($self->testRegExpr($text, '[Xx]\'[0-9a-fA-F]{2,}\'', 0, 0, 0, undef, 0, '#stay', 'Hex')) { 339 return 1 340 } 341 # attribute => 'Decimal' 342 # context => '#stay' 343 # items => 'ARRAY(0x1190f00)' 344 # type => 'Int' 345 if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) { 346 # String => 'ULL' 347 # attribute => 'Decimal' 348 # context => '#stay' 349 # insensitive => 'TRUE' 350 # type => 'StringDetect' 351 if ($self->testStringDetect($text, 'ULL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 352 return 1 353 } 354 # String => 'LUL' 355 # attribute => 'Decimal' 356 # context => '#stay' 357 # insensitive => 'TRUE' 358 # type => 'StringDetect' 359 if ($self->testStringDetect($text, 'LUL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 360 return 1 361 } 362 # String => 'LLU' 363 # attribute => 'Decimal' 364 # context => '#stay' 365 # insensitive => 'TRUE' 366 # type => 'StringDetect' 367 if ($self->testStringDetect($text, 'LLU', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 368 return 1 369 } 370 # String => 'UL' 371 # attribute => 'Decimal' 372 # context => '#stay' 373 # insensitive => 'TRUE' 374 # type => 'StringDetect' 375 if ($self->testStringDetect($text, 'UL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 376 return 1 377 } 378 # String => 'LU' 379 # attribute => 'Decimal' 380 # context => '#stay' 381 # insensitive => 'TRUE' 382 # type => 'StringDetect' 383 if ($self->testStringDetect($text, 'LU', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 384 return 1 385 } 386 # String => 'LL' 387 # attribute => 'Decimal' 388 # context => '#stay' 389 # insensitive => 'TRUE' 390 # type => 'StringDetect' 391 if ($self->testStringDetect($text, 'LL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 392 return 1 393 } 394 # String => 'U' 395 # attribute => 'Decimal' 396 # context => '#stay' 397 # insensitive => 'TRUE' 398 # type => 'StringDetect' 399 if ($self->testStringDetect($text, 'U', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 400 return 1 401 } 402 # String => 'L' 403 # attribute => 'Decimal' 404 # context => '#stay' 405 # insensitive => 'TRUE' 406 # type => 'StringDetect' 407 if ($self->testStringDetect($text, 'L', 1, 0, 0, undef, 0, '#stay', 'Decimal')) { 408 return 1 409 } 410 } 411 return 0; 412}; 413 414sub parsecontext3 { 415 my ($self, $text) = @_; 416 # String => '\(*(FIXME|TODO)\)*' 417 # attribute => 'BoldComment' 418 # context => '#stay' 419 # type => 'RegExpr' 420 if ($self->testRegExpr($text, '\\(*(FIXME|TODO)\\)*', 0, 0, 0, undef, 0, '#stay', 'BoldComment')) { 421 return 1 422 } 423 # String => '\(*(NOTE:)\)*' 424 # attribute => 'BoldComment' 425 # context => '#stay' 426 # type => 'RegExpr' 427 if ($self->testRegExpr($text, '\\(*(NOTE:)\\)*', 0, 0, 0, undef, 0, '#stay', 'BoldComment')) { 428 return 1 429 } 430 # attribute => 'BoldComment' 431 # char => '!' 432 # context => 'context6' 433 # type => 'DetectChar' 434 if ($self->testDetectChar($text, '!', 0, 0, 0, undef, 0, 'context6', 'BoldComment')) { 435 return 1 436 } 437 # String => '-|=' 438 # attribute => 'DivideComment' 439 # context => '#stay' 440 # type => 'RegExpr' 441 if ($self->testRegExpr($text, '-|=', 0, 0, 0, undef, 0, '#stay', 'DivideComment')) { 442 return 1 443 } 444 return 0; 445}; 446 447sub parsecontext4 { 448 my ($self, $text) = @_; 449 # attribute => 'Constant' 450 # char => ''' 451 # context => '#pop' 452 # type => 'DetectChar' 453 if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop', 'Constant')) { 454 return 1 455 } 456 return 0; 457}; 458 459sub parsecontext5 { 460 my ($self, $text) = @_; 461 # String => 'FHDICO' 462 # attribute => 'Normal Text' 463 # context => '#stay' 464 # type => 'AnyChar' 465 if ($self->testAnyChar($text, 'FHDICO', 0, 0, undef, 0, '#stay', 'Normal Text')) { 466 return 1 467 } 468 # attribute => 'Constant' 469 # char => ' ' 470 # context => '#pop' 471 # type => 'DetectChar' 472 if ($self->testDetectChar($text, ' ', 0, 0, 0, undef, 0, '#pop', 'Constant')) { 473 return 1 474 } 475 return 0; 476}; 477 478sub parsecontext6 { 479 my ($self, $text) = @_; 480 return 0; 481}; 482 483sub parsecontext7 { 484 my ($self, $text) = @_; 485 # attribute => 'BoldComment' 486 # char => '!' 487 # context => 'context3' 488 # type => 'DetectChar' 489 if ($self->testDetectChar($text, '!', 0, 0, 0, undef, 0, 'context3', 'BoldComment')) { 490 return 1 491 } 492 return 0; 493}; 494 495sub parsecontext8 { 496 my ($self, $text) = @_; 497 # String => 'biffs' 498 # attribute => 'Biff' 499 # context => '#pop#pop' 500 # type => 'keyword' 501 if ($self->testKeyword($text, 'biffs', 0, undef, 0, '#pop#pop', 'Biff')) { 502 return 1 503 } 504 # attribute => 'Biff' 505 # char => ' ' 506 # context => '#pop#pop' 507 # type => 'DetectChar' 508 if ($self->testDetectChar($text, ' ', 0, 0, 0, undef, 0, '#pop#pop', 'Biff')) { 509 return 1 510 } 511 return 0; 512}; 513 514 5151; 516 517__END__ 518 519=head1 NAME 520 521Syntax::Highlight::Engine::Kate::ILERPG - a Plugin for ILERPG syntax highlighting 522 523=head1 SYNOPSIS 524 525 require Syntax::Highlight::Engine::Kate::ILERPG; 526 my $sh = new Syntax::Highlight::Engine::Kate::ILERPG([ 527 ]); 528 529=head1 DESCRIPTION 530 531Syntax::Highlight::Engine::Kate::ILERPG is a plugin module that provides syntax highlighting 532for ILERPG to the Syntax::Haghlight::Engine::Kate highlighting engine. 533 534This code is generated from the syntax definition files used 535by the Kate project. 536It works quite fine, but can use refinement and optimization. 537 538It inherits Syntax::Higlight::Engine::Kate::Template. See also there. 539 540=head1 AUTHOR 541 542Hans Jeuken (haje <at> toneel <dot> demon <dot> nl) 543 544=head1 BUGS 545 546Unknown. If you find any, please contact the author