Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / Cplusplus.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 'cpp.xml' file of the syntax highlight
6 # engine of the kate text editor (http://www.kate-editor.org
7
8 #kate xml version 1.37
9 #kate version 2.4
10 #generated: Sun Feb  3 22:02:04 2008, localtime
11
12 package Syntax::Highlight::Engine::Kate::Cplusplus;
13
14 our $VERSION = '0.06';
15
16 use strict;
17 use warnings;
18 use base('Syntax::Highlight::Engine::Kate::Template');
19
20 sub new {
21    my $proto = shift;
22    my $class = ref($proto) || $proto;
23    my $self = $class->SUPER::new(@_);
24    $self->attributes({
25       'Char' => 'Char',
26       'Comment' => 'Comment',
27       'Data Type' => 'DataType',
28       'Decimal' => 'DecVal',
29       'Extensions' => 'Keyword',
30       'Float' => 'Float',
31       'Hex' => 'BaseN',
32       'Keyword' => 'Keyword',
33       'Normal Text' => 'Normal',
34       'Octal' => 'BaseN',
35       'Prep. Lib' => 'Others',
36       'Preprocessor' => 'Others',
37       'Region Marker' => 'RegionMarker',
38       'String' => 'String',
39       'String Char' => 'Char',
40       'Symbol' => 'Normal',
41    });
42    $self->listAdd('extensions',
43       'FALSE',
44       'K_DCOP',
45       'Q_ARG',
46       'Q_ASSERT',
47       'Q_ASSERT_X',
48       'Q_CLASSINFO',
49       'Q_CLEANUP_RESOURCE',
50       'Q_D',
51       'Q_DECLARE_FLAGS',
52       'Q_DECLARE_FLAGS',
53       'Q_DECLARE_INTERFACE',
54       'Q_DECLARE_OPERATORS_FOR_FLAGS',
55       'Q_DECLARE_PRIVATE',
56       'Q_DECLARE_PUBLIC',
57       'Q_DECLARE_SHARED',
58       'Q_DECLARE_TYPEINFO',
59       'Q_DISABLE_COPY',
60       'Q_ENUMS',
61       'Q_EXPORT',
62       'Q_FLAGS',
63       'Q_FOREACH',
64       'Q_FOREVER',
65       'Q_GADGET',
66       'Q_GLOBAL_STATIC',
67       'Q_GLOBAL_STATIC_WITH_ARGS',
68       'Q_INIT_RESOURCE',
69       'Q_INTERFACES',
70       'Q_INVOKABLE',
71       'Q_OBJECT',
72       'Q_OVERRIDE',
73       'Q_PROPERTY',
74       'Q_Q',
75       'Q_RETURN_ARG',
76       'Q_SCRIPTABLE',
77       'Q_SETS',
78       'Q_SIGNALS',
79       'Q_SLOTS',
80       'SIGNAL',
81       'SLOT',
82       'TRUE',
83       'connect',
84       'disconnect',
85       'emit',
86       'foreach',
87       'forever',
88       'signals',
89       'slots',
90    );
91    $self->listAdd('keywords',
92       'and',
93       'and_eq',
94       'asm',
95       'bad_cast',
96       'bad_typeid',
97       'bitand',
98       'bitor',
99       'break',
100       'case',
101       'catch',
102       'class',
103       'compl',
104       'const_cast',
105       'continue',
106       'default',
107       'delete',
108       'do',
109       'dynamic_cast',
110       'else',
111       'enum',
112       'except',
113       'explicit',
114       'export',
115       'extern',
116       'false',
117       'finally',
118       'for',
119       'friend',
120       'goto',
121       'if',
122       'inline',
123       'namespace',
124       'new',
125       'not',
126       'not_eq',
127       'operator',
128       'or',
129       'or_eq',
130       'private',
131       'protected',
132       'public',
133       'qobject_cast',
134       'reinterpret_cast',
135       'return',
136       'sizeof',
137       'static_cast',
138       'struct',
139       'switch',
140       'template',
141       'this',
142       'throw',
143       'true',
144       'try',
145       'type_info',
146       'typedef',
147       'typeid',
148       'typename',
149       'union',
150       'using',
151       'virtual',
152       'while',
153       'xalloc',
154       'xor',
155       'xor_eq',
156    );
157    $self->listAdd('types',
158       'auto',
159       'bool',
160       'char',
161       'const',
162       'double',
163       'float',
164       'int',
165       'int16_t',
166       'int32_t',
167       'int64_t',
168       'int8_t',
169       'long',
170       'mutable',
171       'register',
172       'short',
173       'signed',
174       'static',
175       'uchar',
176       'uint',
177       'uint16_t',
178       'uint32_t',
179       'uint64_t',
180       'uint8_t',
181       'unsigned',
182       'void',
183       'volatile',
184       'wchar_t',
185    );
186    $self->contextdata({
187       'Commentar 1' => {
188          callback => \&parseCommentar1,
189          attribute => 'Comment',
190          lineending => '#pop',
191       },
192       'Commentar 2' => {
193          callback => \&parseCommentar2,
194          attribute => 'Comment',
195       },
196       'Commentar/Preprocessor' => {
197          callback => \&parseCommentarPreprocessor,
198          attribute => 'Comment',
199       },
200       'Define' => {
201          callback => \&parseDefine,
202          attribute => 'Preprocessor',
203          lineending => '#pop',
204       },
205       'Normal' => {
206          callback => \&parseNormal,
207          attribute => 'Normal Text',
208       },
209       'Outscoped' => {
210          callback => \&parseOutscoped,
211          attribute => 'Comment',
212       },
213       'Outscoped intern' => {
214          callback => \&parseOutscopedintern,
215          attribute => 'Comment',
216       },
217       'Preprocessor' => {
218          callback => \&parsePreprocessor,
219          attribute => 'Preprocessor',
220          lineending => '#pop',
221       },
222       'Region Marker' => {
223          callback => \&parseRegionMarker,
224          attribute => 'Region Marker',
225          lineending => '#pop',
226       },
227       'String' => {
228          callback => \&parseString,
229          attribute => 'String',
230          lineending => '#pop',
231       },
232    });
233    $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
234    $self->basecontext('Normal');
235    $self->keywordscase(0);
236    $self->initialize;
237    bless ($self, $class);
238    return $self;
239 }
240
241 sub language {
242    return 'C++';
243 }
244
245 sub parseCommentar1 {
246    my ($self, $text) = @_;
247    # type => 'DetectSpaces'
248    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
249       return 1
250    }
251    # context => '##Alerts'
252    # type => 'IncludeRules'
253    if ($self->includePlugin('Alerts', $text)) {
254       return 1
255    }
256    # type => 'DetectIdentifier'
257    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
258       return 1
259    }
260    return 0;
261 };
262
263 sub parseCommentar2 {
264    my ($self, $text) = @_;
265    # type => 'DetectSpaces'
266    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
267       return 1
268    }
269    # attribute => 'Comment'
270    # char => '*'
271    # char1 => '/'
272    # context => '#pop'
273    # endRegion => 'Comment'
274    # type => 'Detect2Chars'
275    if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
276       return 1
277    }
278    # context => '##Alerts'
279    # type => 'IncludeRules'
280    if ($self->includePlugin('Alerts', $text)) {
281       return 1
282    }
283    # type => 'DetectIdentifier'
284    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
285       return 1
286    }
287    return 0;
288 };
289
290 sub parseCommentarPreprocessor {
291    my ($self, $text) = @_;
292    # type => 'DetectSpaces'
293    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
294       return 1
295    }
296    # attribute => 'Comment'
297    # char => '*'
298    # char1 => '/'
299    # context => '#pop'
300    # type => 'Detect2Chars'
301    if ($self->testDetect2Chars($text, '*', '/', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
302       return 1
303    }
304    # type => 'DetectIdentifier'
305    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
306       return 1
307    }
308    return 0;
309 };
310
311 sub parseDefine {
312    my ($self, $text) = @_;
313    # attribute => 'Preprocessor'
314    # context => '#stay'
315    # type => 'LineContinue'
316    if ($self->testLineContinue($text, 0, undef, 0, '#stay', 'Preprocessor')) {
317       return 1
318    }
319    return 0;
320 };
321
322 sub parseNormal {
323    my ($self, $text) = @_;
324    # type => 'DetectSpaces'
325    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
326       return 1
327    }
328    # String => '#\s*if\s+0'
329    # attribute => 'Preprocessor'
330    # beginRegion => 'Outscoped'
331    # context => 'Outscoped'
332    # firstNonSpace => 'true'
333    # type => 'RegExpr'
334    if ($self->testRegExpr($text, '#\\s*if\\s+0', 0, 0, 0, undef, 1, 'Outscoped', 'Preprocessor')) {
335       return 1
336    }
337    # attribute => 'Preprocessor'
338    # char => '#'
339    # context => 'Preprocessor'
340    # firstNonSpace => 'true'
341    # type => 'DetectChar'
342    if ($self->testDetectChar($text, '#', 0, 0, 0, undef, 1, 'Preprocessor', 'Preprocessor')) {
343       return 1
344    }
345    # String => '//BEGIN'
346    # attribute => 'Region Marker'
347    # beginRegion => 'Region1'
348    # context => 'Region Marker'
349    # firstNonSpace => 'true'
350    # type => 'StringDetect'
351    if ($self->testStringDetect($text, '//BEGIN', 0, 0, 0, undef, 1, 'Region Marker', 'Region Marker')) {
352       return 1
353    }
354    # String => '//END'
355    # attribute => 'Region Marker'
356    # context => 'Region Marker'
357    # endRegion => 'Region1'
358    # firstNonSpace => 'true'
359    # type => 'StringDetect'
360    if ($self->testStringDetect($text, '//END', 0, 0, 0, undef, 1, 'Region Marker', 'Region Marker')) {
361       return 1
362    }
363    # String => 'keywords'
364    # attribute => 'Keyword'
365    # context => '#stay'
366    # type => 'keyword'
367    if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
368       return 1
369    }
370    # String => 'extensions'
371    # attribute => 'Extensions'
372    # context => '#stay'
373    # type => 'keyword'
374    if ($self->testKeyword($text, 'extensions', 0, undef, 0, '#stay', 'Extensions')) {
375       return 1
376    }
377    # String => 'types'
378    # attribute => 'Data Type'
379    # context => '#stay'
380    # type => 'keyword'
381    if ($self->testKeyword($text, 'types', 0, undef, 0, '#stay', 'Data Type')) {
382       return 1
383    }
384    # attribute => 'Char'
385    # context => '#stay'
386    # type => 'HlCChar'
387    if ($self->testHlCChar($text, 0, undef, 0, '#stay', 'Char')) {
388       return 1
389    }
390    # attribute => 'String'
391    # char => '"'
392    # context => 'String'
393    # type => 'DetectChar'
394    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) {
395       return 1
396    }
397    # type => 'DetectIdentifier'
398    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
399       return 1
400    }
401    # attribute => 'Float'
402    # context => '#stay'
403    # items => 'ARRAY(0x1255cd0)'
404    # type => 'Float'
405    if ($self->testFloat($text, 0, undef, 0, '#stay', 'Float')) {
406       # String => 'fF'
407       # attribute => 'Float'
408       # context => '#stay'
409       # type => 'AnyChar'
410       if ($self->testAnyChar($text, 'fF', 0, 0, undef, 0, '#stay', 'Float')) {
411          return 1
412       }
413    }
414    # attribute => 'Octal'
415    # context => '#stay'
416    # type => 'HlCOct'
417    if ($self->testHlCOct($text, 0, undef, 0, '#stay', 'Octal')) {
418       return 1
419    }
420    # attribute => 'Hex'
421    # context => '#stay'
422    # type => 'HlCHex'
423    if ($self->testHlCHex($text, 0, undef, 0, '#stay', 'Hex')) {
424       return 1
425    }
426    # attribute => 'Decimal'
427    # context => '#stay'
428    # items => 'ARRAY(0x132c920)'
429    # type => 'Int'
430    if ($self->testInt($text, 0, undef, 0, '#stay', 'Decimal')) {
431       # String => 'ULL'
432       # attribute => 'Decimal'
433       # context => '#stay'
434       # insensitive => 'TRUE'
435       # type => 'StringDetect'
436       if ($self->testStringDetect($text, 'ULL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
437          return 1
438       }
439       # String => 'LUL'
440       # attribute => 'Decimal'
441       # context => '#stay'
442       # insensitive => 'TRUE'
443       # type => 'StringDetect'
444       if ($self->testStringDetect($text, 'LUL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
445          return 1
446       }
447       # String => 'LLU'
448       # attribute => 'Decimal'
449       # context => '#stay'
450       # insensitive => 'TRUE'
451       # type => 'StringDetect'
452       if ($self->testStringDetect($text, 'LLU', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
453          return 1
454       }
455       # String => 'UL'
456       # attribute => 'Decimal'
457       # context => '#stay'
458       # insensitive => 'TRUE'
459       # type => 'StringDetect'
460       if ($self->testStringDetect($text, 'UL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
461          return 1
462       }
463       # String => 'LU'
464       # attribute => 'Decimal'
465       # context => '#stay'
466       # insensitive => 'TRUE'
467       # type => 'StringDetect'
468       if ($self->testStringDetect($text, 'LU', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
469          return 1
470       }
471       # String => 'LL'
472       # attribute => 'Decimal'
473       # context => '#stay'
474       # insensitive => 'TRUE'
475       # type => 'StringDetect'
476       if ($self->testStringDetect($text, 'LL', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
477          return 1
478       }
479       # String => 'U'
480       # attribute => 'Decimal'
481       # context => '#stay'
482       # insensitive => 'TRUE'
483       # type => 'StringDetect'
484       if ($self->testStringDetect($text, 'U', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
485          return 1
486       }
487       # String => 'L'
488       # attribute => 'Decimal'
489       # context => '#stay'
490       # insensitive => 'TRUE'
491       # type => 'StringDetect'
492       if ($self->testStringDetect($text, 'L', 1, 0, 0, undef, 0, '#stay', 'Decimal')) {
493          return 1
494       }
495    }
496    # context => '##Doxygen'
497    # type => 'IncludeRules'
498    if ($self->includePlugin('Doxygen', $text)) {
499       return 1
500    }
501    # attribute => 'Comment'
502    # char => '/'
503    # char1 => '/'
504    # context => 'Commentar 1'
505    # type => 'Detect2Chars'
506    if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'Commentar 1', 'Comment')) {
507       return 1
508    }
509    # attribute => 'Comment'
510    # beginRegion => 'Comment'
511    # char => '/'
512    # char1 => '*'
513    # context => 'Commentar 2'
514    # type => 'Detect2Chars'
515    if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Commentar 2', 'Comment')) {
516       return 1
517    }
518    # attribute => 'Symbol'
519    # beginRegion => 'Brace1'
520    # char => '{'
521    # context => '#stay'
522    # type => 'DetectChar'
523    if ($self->testDetectChar($text, '{', 0, 0, 0, undef, 0, '#stay', 'Symbol')) {
524       return 1
525    }
526    # attribute => 'Symbol'
527    # char => '}'
528    # context => '#stay'
529    # endRegion => 'Brace1'
530    # type => 'DetectChar'
531    if ($self->testDetectChar($text, '}', 0, 0, 0, undef, 0, '#stay', 'Symbol')) {
532       return 1
533    }
534    # String => ':!%&()+,-/.*<=>?[]{|}~^;'
535    # attribute => 'Symbol'
536    # context => '#stay'
537    # type => 'AnyChar'
538    if ($self->testAnyChar($text, ':!%&()+,-/.*<=>?[]{|}~^;', 0, 0, undef, 0, '#stay', 'Symbol')) {
539       return 1
540    }
541    return 0;
542 };
543
544 sub parseOutscoped {
545    my ($self, $text) = @_;
546    # type => 'DetectSpaces'
547    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
548       return 1
549    }
550    # context => '##Alerts'
551    # type => 'IncludeRules'
552    if ($self->includePlugin('Alerts', $text)) {
553       return 1
554    }
555    # type => 'DetectIdentifier'
556    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
557       return 1
558    }
559    # attribute => 'String'
560    # char => '"'
561    # context => 'String'
562    # type => 'DetectChar'
563    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) {
564       return 1
565    }
566    # context => '##Doxygen'
567    # type => 'IncludeRules'
568    if ($self->includePlugin('Doxygen', $text)) {
569       return 1
570    }
571    # attribute => 'Comment'
572    # char => '/'
573    # char1 => '/'
574    # context => 'Commentar 1'
575    # type => 'Detect2Chars'
576    if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'Commentar 1', 'Comment')) {
577       return 1
578    }
579    # attribute => 'Comment'
580    # beginRegion => 'Comment'
581    # char => '/'
582    # char1 => '*'
583    # context => 'Commentar 2'
584    # type => 'Detect2Chars'
585    if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Commentar 2', 'Comment')) {
586       return 1
587    }
588    # String => '#\s*if'
589    # attribute => 'Comment'
590    # beginRegion => 'Outscoped'
591    # context => 'Outscoped intern'
592    # firstNonSpace => 'true'
593    # type => 'RegExpr'
594    if ($self->testRegExpr($text, '#\\s*if', 0, 0, 0, undef, 1, 'Outscoped intern', 'Comment')) {
595       return 1
596    }
597    # String => '#\s*(endif|else|elif)'
598    # attribute => 'Preprocessor'
599    # context => '#pop'
600    # endRegion => 'Outscoped'
601    # firstNonSpace => 'true'
602    # type => 'RegExpr'
603    if ($self->testRegExpr($text, '#\\s*(endif|else|elif)', 0, 0, 0, undef, 1, '#pop', 'Preprocessor')) {
604       return 1
605    }
606    return 0;
607 };
608
609 sub parseOutscopedintern {
610    my ($self, $text) = @_;
611    # type => 'DetectSpaces'
612    if ($self->testDetectSpaces($text, 0, undef, 0, '#stay', undef)) {
613       return 1
614    }
615    # context => '##Alerts'
616    # type => 'IncludeRules'
617    if ($self->includePlugin('Alerts', $text)) {
618       return 1
619    }
620    # type => 'DetectIdentifier'
621    if ($self->testDetectIdentifier($text, 0, undef, 0, '#stay', undef)) {
622       return 1
623    }
624    # attribute => 'String'
625    # char => '"'
626    # context => 'String'
627    # type => 'DetectChar'
628    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) {
629       return 1
630    }
631    # context => '##Doxygen'
632    # type => 'IncludeRules'
633    if ($self->includePlugin('Doxygen', $text)) {
634       return 1
635    }
636    # attribute => 'Comment'
637    # char => '/'
638    # char1 => '/'
639    # context => 'Commentar 1'
640    # type => 'Detect2Chars'
641    if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'Commentar 1', 'Comment')) {
642       return 1
643    }
644    # attribute => 'Comment'
645    # beginRegion => 'Comment'
646    # char => '/'
647    # char1 => '*'
648    # context => 'Commentar 2'
649    # type => 'Detect2Chars'
650    if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Commentar 2', 'Comment')) {
651       return 1
652    }
653    # String => '#\s*if'
654    # attribute => 'Comment'
655    # beginRegion => 'Outscoped'
656    # context => 'Outscoped intern'
657    # firstNonSpace => 'true'
658    # type => 'RegExpr'
659    if ($self->testRegExpr($text, '#\\s*if', 0, 0, 0, undef, 1, 'Outscoped intern', 'Comment')) {
660       return 1
661    }
662    # String => '#\s*endif'
663    # attribute => 'Comment'
664    # context => '#pop'
665    # endRegion => 'Outscoped'
666    # firstNonSpace => 'true'
667    # type => 'RegExpr'
668    if ($self->testRegExpr($text, '#\\s*endif', 0, 0, 0, undef, 1, '#pop', 'Comment')) {
669       return 1
670    }
671    return 0;
672 };
673
674 sub parsePreprocessor {
675    my ($self, $text) = @_;
676    # attribute => 'Preprocessor'
677    # context => '#stay'
678    # type => 'LineContinue'
679    if ($self->testLineContinue($text, 0, undef, 0, '#stay', 'Preprocessor')) {
680       return 1
681    }
682    # String => 'define.*((?=\\))'
683    # attribute => 'Preprocessor'
684    # context => 'Define'
685    # type => 'RegExpr'
686    if ($self->testRegExpr($text, 'define.*((?=\\\\))', 0, 0, 0, undef, 0, 'Define', 'Preprocessor')) {
687       return 1
688    }
689    # String => 'define.*'
690    # attribute => 'Preprocessor'
691    # context => '#stay'
692    # type => 'RegExpr'
693    if ($self->testRegExpr($text, 'define.*', 0, 0, 0, undef, 0, '#stay', 'Preprocessor')) {
694       return 1
695    }
696    # attribute => 'Prep. Lib'
697    # char => '"'
698    # char1 => '"'
699    # context => '#stay'
700    # type => 'RangeDetect'
701    if ($self->testRangeDetect($text, '"', '"', 0, 0, undef, 0, '#stay', 'Prep. Lib')) {
702       return 1
703    }
704    # attribute => 'Prep. Lib'
705    # char => '<'
706    # char1 => '>'
707    # context => '#stay'
708    # type => 'RangeDetect'
709    if ($self->testRangeDetect($text, '<', '>', 0, 0, undef, 0, '#stay', 'Prep. Lib')) {
710       return 1
711    }
712    # context => '##Doxygen'
713    # type => 'IncludeRules'
714    if ($self->includePlugin('Doxygen', $text)) {
715       return 1
716    }
717    # attribute => 'Comment'
718    # char => '/'
719    # char1 => '/'
720    # context => 'Commentar 1'
721    # type => 'Detect2Chars'
722    if ($self->testDetect2Chars($text, '/', '/', 0, 0, 0, undef, 0, 'Commentar 1', 'Comment')) {
723       return 1
724    }
725    # attribute => 'Comment'
726    # char => '/'
727    # char1 => '*'
728    # context => 'Commentar/Preprocessor'
729    # type => 'Detect2Chars'
730    if ($self->testDetect2Chars($text, '/', '*', 0, 0, 0, undef, 0, 'Commentar/Preprocessor', 'Comment')) {
731       return 1
732    }
733    return 0;
734 };
735
736 sub parseRegionMarker {
737    my ($self, $text) = @_;
738    return 0;
739 };
740
741 sub parseString {
742    my ($self, $text) = @_;
743    # attribute => 'String'
744    # context => '#stay'
745    # type => 'LineContinue'
746    if ($self->testLineContinue($text, 0, undef, 0, '#stay', 'String')) {
747       return 1
748    }
749    # attribute => 'String Char'
750    # context => '#stay'
751    # type => 'HlCStringChar'
752    if ($self->testHlCStringChar($text, 0, undef, 0, '#stay', 'String Char')) {
753       return 1
754    }
755    # attribute => 'String'
756    # char => '"'
757    # context => '#pop'
758    # type => 'DetectChar'
759    if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) {
760       return 1
761    }
762    return 0;
763 };
764
765
766 1;
767
768 __END__
769
770 =head1 NAME
771
772 Syntax::Highlight::Engine::Kate::Cplusplus - a Plugin for C++ syntax highlighting
773
774 =head1 SYNOPSIS
775
776  require Syntax::Highlight::Engine::Kate::Cplusplus;
777  my $sh = new Syntax::Highlight::Engine::Kate::Cplusplus([
778  ]);
779
780 =head1 DESCRIPTION
781
782 Syntax::Highlight::Engine::Kate::Cplusplus is a  plugin module that provides syntax highlighting
783 for C++ to the Syntax::Haghlight::Engine::Kate highlighting engine.
784
785 This code is generated from the syntax definition files used
786 by the Kate project.
787 It works quite fine, but can use refinement and optimization.
788
789 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
790
791 =cut
792
793 =head1 AUTHOR
794
795 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
796
797 =cut
798
799 =head1 BUGS
800
801 Unknown. If you find any, please contact the author
802
803 =cut
804