Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / Doxygen.pm
diff --git a/local-lib5/lib/perl5/Syntax/Highlight/Engine/Kate/Doxygen.pm b/local-lib5/lib/perl5/Syntax/Highlight/Engine/Kate/Doxygen.pm
new file mode 100755 (executable)
index 0000000..2126421
--- /dev/null
@@ -0,0 +1,1159 @@
+# 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 'doxygen.xml' file of the syntax highlight
+# engine of the kate text editor (http://www.kate-editor.org
+
+#kate xml version 1.25
+#kate version 2.4
+#kate author Dominik Haumann (dhdev@gmx.de)
+#generated: Sun Feb  3 22:02:04 2008, localtime
+
+package Syntax::Highlight::Engine::Kate::Doxygen;
+
+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({
+      'Comment' => 'Reserved',
+      'Description' => 'Function',
+      'HTML Comment' => 'Comment',
+      'HTML Tag' => 'Keyword',
+      'Identifier' => 'Others',
+      'Normal Text' => 'Normal',
+      'Tags' => 'Keyword',
+      'Types' => 'DataType',
+      'Word' => 'Operator',
+   });
+   $self->listAdd('TagOnly',
+      '@#',
+      '@$',
+      '@@',
+      '@\\\\',
+      '@arg',
+      '@attention',
+      '@author',
+      '@callgraph',
+      '@code',
+      '@dot',
+      '@else',
+      '@endcode',
+      '@enddot',
+      '@endhtmlonly',
+      '@endif',
+      '@endlatexonly',
+      '@endlink',
+      '@endmanonly',
+      '@endverbatim',
+      '@endxmlonly',
+      '@f$',
+      '@f[',
+      '@f]',
+      '@hideinitializer',
+      '@htmlonly',
+      '@interface',
+      '@internal',
+      '@invariant',
+      '@latexonly',
+      '@li',
+      '@manonly',
+      '@n',
+      '@nosubgrouping',
+      '@note',
+      '@only',
+      '@par',
+      '@post',
+      '@pre',
+      '@remarks',
+      '@return',
+      '@returns',
+      '@sa',
+      '@see',
+      '@showinitializer',
+      '@since',
+      '@test',
+      '@todo',
+      '@verbatim',
+      '@warning',
+      '@xmlonly',
+      '@~',
+      '\\\\#',
+      '\\\\$',
+      '\\\\@',
+      '\\\\\\\\',
+      '\\\\arg',
+      '\\\\attention',
+      '\\\\author',
+      '\\\\callgraph',
+      '\\\\code',
+      '\\\\dot',
+      '\\\\else',
+      '\\\\endcode',
+      '\\\\enddot',
+      '\\\\endhtmlonly',
+      '\\\\endif',
+      '\\\\endlatexonly',
+      '\\\\endlink',
+      '\\\\endmanonly',
+      '\\\\endverbatim',
+      '\\\\endxmlonly',
+      '\\\\f$',
+      '\\\\f[',
+      '\\\\f]',
+      '\\\\hideinitializer',
+      '\\\\htmlonly',
+      '\\\\interface',
+      '\\\\internal',
+      '\\\\invariant',
+      '\\\\latexonly',
+      '\\\\li',
+      '\\\\manonly',
+      '\\\\n',
+      '\\\\nosubgrouping',
+      '\\\\note',
+      '\\\\only',
+      '\\\\par',
+      '\\\\post',
+      '\\\\pre',
+      '\\\\remarks',
+      '\\\\return',
+      '\\\\returns',
+      '\\\\sa',
+      '\\\\see',
+      '\\\\showinitializer',
+      '\\\\since',
+      '\\\\test',
+      '\\\\todo',
+      '\\\\verbatim',
+      '\\\\warning',
+      '\\\\xmlonly',
+      '\\\\~',
+   );
+   $self->listAdd('TagString',
+      '@addindex',
+      '@brief',
+      '@bug',
+      '@date',
+      '@deprecated',
+      '@fn',
+      '@ingroup',
+      '@line',
+      '@mainpage',
+      '@name',
+      '@overload',
+      '@short',
+      '@skip',
+      '@skipline',
+      '@typedef',
+      '@until',
+      '@var',
+      '\\\\addindex',
+      '\\\\brief',
+      '\\\\bug',
+      '\\\\date',
+      '\\\\deprecated',
+      '\\\\fn',
+      '\\\\ingroup',
+      '\\\\line',
+      '\\\\mainpage',
+      '\\\\name',
+      '\\\\overload',
+      '\\\\short',
+      '\\\\skip',
+      '\\\\skipline',
+      '\\\\typedef',
+      '\\\\until',
+      '\\\\var',
+   );
+   $self->listAdd('TagWord',
+      '@a',
+      '@addtogroup',
+      '@anchor',
+      '@b',
+      '@c',
+      '@class',
+      '@copydoc',
+      '@def',
+      '@dontinclude',
+      '@dotfile',
+      '@e',
+      '@elseif',
+      '@em',
+      '@enum',
+      '@example',
+      '@exception',
+      '@exceptions',
+      '@file',
+      '@htmlinclude',
+      '@if',
+      '@ifnot',
+      '@include',
+      '@link',
+      '@namespace',
+      '@p',
+      '@package',
+      '@param',
+      '@ref',
+      '@relates',
+      '@relatesalso',
+      '@retval',
+      '@throw',
+      '@throws',
+      '@verbinclude',
+      '@version',
+      '@xrefitem',
+      '\\\\a',
+      '\\\\addtogroup',
+      '\\\\anchor',
+      '\\\\b',
+      '\\\\c',
+      '\\\\class',
+      '\\\\copydoc',
+      '\\\\def',
+      '\\\\dontinclude',
+      '\\\\dotfile',
+      '\\\\e',
+      '\\\\elseif',
+      '\\\\em',
+      '\\\\enum',
+      '\\\\example',
+      '\\\\exception',
+      '\\\\exceptions',
+      '\\\\file',
+      '\\\\htmlinclude',
+      '\\\\if',
+      '\\\\ifnot',
+      '\\\\include',
+      '\\\\link',
+      '\\\\namespace',
+      '\\\\p',
+      '\\\\package',
+      '\\\\param',
+      '\\\\ref',
+      '\\\\relates',
+      '\\\\relatesalso',
+      '\\\\retval',
+      '\\\\throw',
+      '\\\\throws',
+      '\\\\verbinclude',
+      '\\\\version',
+      '\\\\xrefitem',
+   );
+   $self->listAdd('TagWordString',
+      '@defgroup',
+      '@page',
+      '@paragraph',
+      '@section',
+      '@struct',
+      '@subsection',
+      '@subsubsection',
+      '@union',
+      '@weakgroup',
+      '\\\\defgroup',
+      '\\\\page',
+      '\\\\paragraph',
+      '\\\\section',
+      '\\\\struct',
+      '\\\\subsection',
+      '\\\\subsubsection',
+      '\\\\union',
+      '\\\\weakgroup',
+   );
+   $self->listAdd('TagWordWord',
+      '@image',
+      '\\\\image',
+   );
+   $self->contextdata({
+      'BlockComment' => {
+         callback => \&parseBlockComment,
+         attribute => 'Comment',
+      },
+      'LineComment' => {
+         callback => \&parseLineComment,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_Tag2ndWord' => {
+         callback => \&parseML_Tag2ndWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_TagString' => {
+         callback => \&parseML_TagString,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_TagWord' => {
+         callback => \&parseML_TagWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_TagWordString' => {
+         callback => \&parseML_TagWordString,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_TagWordWord' => {
+         callback => \&parseML_TagWordWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'ML_htmlcomment' => {
+         callback => \&parseML_htmlcomment,
+         attribute => 'HTML Comment',
+      },
+      'ML_htmltag' => {
+         callback => \&parseML_htmltag,
+         attribute => 'Identifier',
+      },
+      'ML_identifiers' => {
+         callback => \&parseML_identifiers,
+         attribute => 'Identifier',
+      },
+      'ML_types1' => {
+         callback => \&parseML_types1,
+         attribute => 'Types',
+      },
+      'ML_types2' => {
+         callback => \&parseML_types2,
+         attribute => 'Types',
+      },
+      'Normal' => {
+         callback => \&parseNormal,
+         attribute => 'Normal Text',
+      },
+      'SL_Tag2ndWord' => {
+         callback => \&parseSL_Tag2ndWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'SL_TagString' => {
+         callback => \&parseSL_TagString,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'SL_TagWord' => {
+         callback => \&parseSL_TagWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'SL_TagWordString' => {
+         callback => \&parseSL_TagWordString,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'SL_TagWordWord' => {
+         callback => \&parseSL_TagWordWord,
+         attribute => 'Comment',
+         lineending => '#pop',
+      },
+      'SL_htmlcomment' => {
+         callback => \&parseSL_htmlcomment,
+         attribute => 'HTML Comment',
+         lineending => '#pop',
+      },
+      'SL_htmltag' => {
+         callback => \&parseSL_htmltag,
+         attribute => 'Identifier',
+         lineending => '#pop',
+      },
+      'SL_identifiers' => {
+         callback => \&parseSL_identifiers,
+         attribute => 'Identifier',
+         lineending => '#pop',
+      },
+      'SL_types1' => {
+         callback => \&parseSL_types1,
+         attribute => 'Types',
+         lineending => '#pop',
+      },
+      'SL_types2' => {
+         callback => \&parseSL_types2,
+         attribute => 'Types',
+         lineending => '#pop',
+      },
+   });
+   $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\\\|\\$|\\~');
+   $self->basecontext('Normal');
+   $self->keywordscase(0);
+   $self->initialize;
+   bless ($self, $class);
+   return $self;
+}
+
+sub language {
+   return 'Doxygen';
+}
+
+sub parseBlockComment {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # endRegion => 'BlockComment'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # context => '##Alerts'
+   # type => 'IncludeRules'
+   if ($self->includePlugin('Alerts', $text)) {
+      return 1
+   }
+   # String => 'TagOnly'
+   # attribute => 'Tags'
+   # context => '#stay'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagOnly', 0, undef, 0, '#stay', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWord'
+   # attribute => 'Tags'
+   # context => 'ML_TagWord'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWord', 0, undef, 0, 'ML_TagWord', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWordWord'
+   # attribute => 'Tags'
+   # context => 'ML_TagWordWord'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWordWord', 0, undef, 0, 'ML_TagWordWord', 'Tags')) {
+      return 1
+   }
+   # String => 'TagString'
+   # attribute => 'Tags'
+   # context => 'ML_TagString'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagString', 0, undef, 0, 'ML_TagString', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWordString'
+   # attribute => 'Tags'
+   # context => 'ML_TagWordString'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWordString', 0, undef, 0, 'ML_TagWordString', 'Tags')) {
+      return 1
+   }
+   # type => 'DetectIdentifier'
+   if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\\(<|>)'
+   # attribute => 'Tags'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\\\(<|>)', 0, 0, 0, undef, 0, '#stay', 'Tags')) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '<'
+   # char1 => '<'
+   # context => '#stay'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '<', '<', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+      return 1
+   }
+   # String => '<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*'
+   # attribute => 'HTML Tag'
+   # context => 'ML_htmltag'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*', 0, 0, 0, undef, 0, 'ML_htmltag', 'HTML Tag')) {
+      return 1
+   }
+   # String => '<!--'
+   # attribute => 'HTML Comment'
+   # context => 'ML_htmlcomment'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '<!--', 0, 0, 0, undef, 0, 'ML_htmlcomment', 'HTML Comment')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseLineComment {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # context => '##Alerts'
+   # type => 'IncludeRules'
+   if ($self->includePlugin('Alerts', $text)) {
+      return 1
+   }
+   # String => 'TagOnly'
+   # attribute => 'Tags'
+   # context => '#stay'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagOnly', 0, undef, 0, '#stay', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWord'
+   # attribute => 'Tags'
+   # context => 'SL_TagWord'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWord', 0, undef, 0, 'SL_TagWord', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWordWord'
+   # attribute => 'Tags'
+   # context => 'SL_TagWordWord'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWordWord', 0, undef, 0, 'SL_TagWordWord', 'Tags')) {
+      return 1
+   }
+   # String => 'TagString'
+   # attribute => 'Tags'
+   # context => 'SL_TagString'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagString', 0, undef, 0, 'SL_TagString', 'Tags')) {
+      return 1
+   }
+   # String => 'TagWordString'
+   # attribute => 'Tags'
+   # context => 'SL_TagWordString'
+   # type => 'keyword'
+   if ($self->testKeyword($text, 'TagWordString', 0, undef, 0, 'SL_TagWordString', 'Tags')) {
+      return 1
+   }
+   # type => 'DetectIdentifier'
+   if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '<!--'
+   # attribute => 'HTML Comment'
+   # context => 'SL_htmlcomment'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '<!--', 0, 0, 0, undef, 0, 'SL_htmlcomment', 'HTML Comment')) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '<'
+   # char1 => '<'
+   # context => '#stay'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '<', '<', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+      return 1
+   }
+   # String => '<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*'
+   # attribute => 'HTML Tag'
+   # context => 'SL_htmltag'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*', 0, 0, 0, undef, 0, 'SL_htmltag', 'HTML Tag')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_Tag2ndWord {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_TagString {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # String => '<!--'
+   # attribute => 'HTML Comment'
+   # context => 'ML_htmlcomment'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '<!--', 0, 0, 0, undef, 0, 'ML_htmlcomment', 'HTML Comment')) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '<'
+   # char1 => '<'
+   # context => '#stay'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '<', '<', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+      return 1
+   }
+   # String => '<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*'
+   # attribute => 'HTML Tag'
+   # context => 'ML_htmltag'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*', 0, 0, 0, undef, 0, 'ML_htmltag', 'HTML Tag')) {
+      return 1
+   }
+   # String => '.'
+   # attribute => 'Description'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '.', 0, 0, 0, undef, 0, '#stay', 'Description')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_TagWord {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_TagWordString {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_TagWordWord {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_htmlcomment {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # context => '##Alerts'
+   # type => 'IncludeRules'
+   if ($self->includePlugin('Alerts', $text)) {
+      return 1
+   }
+   # String => '-->'
+   # attribute => 'HTML Comment'
+   # context => '#pop'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '-->', 0, 0, 0, undef, 0, '#pop', 'HTML Comment')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_htmltag {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # attribute => 'HTML Tag'
+   # char => '/'
+   # char1 => '>'
+   # context => '#pop'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '/', '>', 0, 0, 0, undef, 0, '#pop', 'HTML Tag')) {
+      return 1
+   }
+   # attribute => 'HTML Tag'
+   # char => '>'
+   # context => '#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'HTML Tag')) {
+      return 1
+   }
+   # String => '\s*=\s*'
+   # attribute => 'Identifier'
+   # context => 'ML_identifiers'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\s*=\\s*', 0, 0, 0, undef, 0, 'ML_identifiers', 'Identifier')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_identifiers {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # String => '\s*#?[a-zA-Z0-9]*'
+   # attribute => 'String'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\s*#?[a-zA-Z0-9]*', 0, 0, 0, undef, 0, '#pop', 'String')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '''
+   # context => 'ML_types1'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'ML_types1', 'Types')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '"'
+   # context => 'ML_types2'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'ML_types2', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_types1 {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '''
+   # context => '#pop#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop#pop', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseML_types2 {
+   my ($self, $text) = @_;
+   # attribute => 'Comment'
+   # char => '*'
+   # char1 => '/'
+   # context => '#pop'
+   # lookAhead => 'true'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '*', '/', 0, 0, 1, undef, 0, '#pop', 'Comment')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '"'
+   # context => '#pop#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop#pop', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseNormal {
+   my ($self, $text) = @_;
+   # String => '//(!|(/(?=[^/]|$)))<?'
+   # attribute => 'Comment'
+   # context => 'LineComment'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '//(!|(/(?=[^/]|$)))<?', 0, 0, 0, undef, 0, 'LineComment', 'Comment')) {
+      return 1
+   }
+   # String => '/\*(\*[^*/]|!|\*$)<?'
+   # attribute => 'Comment'
+   # beginRegion => 'BlockComment'
+   # context => 'BlockComment'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '/\\*(\\*[^*/]|!|\\*$)<?', 0, 0, 0, undef, 0, 'BlockComment', 'Comment')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_Tag2ndWord {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_TagString {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '<!--'
+   # attribute => 'HTML Comment'
+   # context => 'SL_htmlcomment'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '<!--', 0, 0, 0, undef, 0, 'SL_htmlcomment', 'HTML Comment')) {
+      return 1
+   }
+   # attribute => 'Comment'
+   # char => '<'
+   # char1 => '<'
+   # context => '#stay'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '<', '<', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+      return 1
+   }
+   # String => '<\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*'
+   # attribute => 'HTML Tag'
+   # context => 'SL_htmltag'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*', 0, 0, 0, undef, 0, 'SL_htmltag', 'HTML Tag')) {
+      return 1
+   }
+   # String => '.'
+   # attribute => 'Description'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '.', 0, 0, 0, undef, 0, '#stay', 'Description')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_TagWord {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_TagWordString {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_TagWordWord {
+   my ($self, $text) = @_;
+   # type => 'DetectSpaces'
+   if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
+      return 1
+   }
+   # String => '\S\s'
+   # attribute => 'Word'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S\\s', 0, 0, 0, undef, 0, '#pop', 'Word')) {
+      return 1
+   }
+   # String => '\S'
+   # attribute => 'Word'
+   # context => '#stay'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\S', 0, 0, 0, undef, 0, '#stay', 'Word')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_htmlcomment {
+   my ($self, $text) = @_;
+   # context => '##Alerts'
+   # type => 'IncludeRules'
+   if ($self->includePlugin('Alerts', $text)) {
+      return 1
+   }
+   # String => '-->'
+   # attribute => 'HTML Comment'
+   # context => '#pop'
+   # type => 'StringDetect'
+   if ($self->testStringDetect($text, '-->', 0, 0, 0, undef, 0, '#pop', 'HTML Comment')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_htmltag {
+   my ($self, $text) = @_;
+   # attribute => 'HTML Tag'
+   # char => '/'
+   # char1 => '>'
+   # context => '#pop'
+   # type => 'Detect2Chars'
+   if ($self->testDetect2Chars($text, '/', '>', 0, 0, 0, undef, 0, '#pop', 'HTML Tag')) {
+      return 1
+   }
+   # attribute => 'HTML Tag'
+   # char => '>'
+   # context => '#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '>', 0, 0, 0, undef, 0, '#pop', 'HTML Tag')) {
+      return 1
+   }
+   # String => '\s*=\s*'
+   # attribute => 'Identifier'
+   # context => 'SL_identifiers'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\s*=\\s*', 0, 0, 0, undef, 0, 'SL_identifiers', 'Identifier')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_identifiers {
+   my ($self, $text) = @_;
+   # String => '\s*#?[a-zA-Z0-9]*'
+   # attribute => 'String'
+   # context => '#pop'
+   # type => 'RegExpr'
+   if ($self->testRegExpr($text, '\\s*#?[a-zA-Z0-9]*', 0, 0, 0, undef, 0, '#pop', 'String')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '''
+   # context => 'SL_types1'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, 'SL_types1', 'Types')) {
+      return 1
+   }
+   # attribute => 'Types'
+   # char => '"'
+   # context => 'SL_types2'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'SL_types2', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_types1 {
+   my ($self, $text) = @_;
+   # attribute => 'Types'
+   # char => '''
+   # context => '#pop#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '\'', 0, 0, 0, undef, 0, '#pop#pop', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+sub parseSL_types2 {
+   my ($self, $text) = @_;
+   # attribute => 'Types'
+   # char => '"'
+   # context => '#pop#pop'
+   # type => 'DetectChar'
+   if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop#pop', 'Types')) {
+      return 1
+   }
+   return 0;
+};
+
+
+1;
+
+__END__
+
+=head1 NAME
+
+Syntax::Highlight::Engine::Kate::Doxygen - a Plugin for Doxygen syntax highlighting
+
+=head1 SYNOPSIS
+
+ require Syntax::Highlight::Engine::Kate::Doxygen;
+ my $sh = new Syntax::Highlight::Engine::Kate::Doxygen([
+ ]);
+
+=head1 DESCRIPTION
+
+Syntax::Highlight::Engine::Kate::Doxygen is a  plugin module that provides syntax highlighting
+for Doxygen 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.
+
+=cut
+
+=head1 AUTHOR
+
+Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
+
+=cut
+
+=head1 BUGS
+
+Unknown. If you find any, please contact the author
+
+=cut
+