Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Syntax / Highlight / Engine / Kate / CMake.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 'cmake.xml' file of the syntax highlight
6 # engine of the kate text editor (http://www.kate-editor.org
7
8 #kate xml version 1.02
9 #kate version 2.4
10 #generated: Sun Feb  3 22:02:04 2008, localtime
11
12 package Syntax::Highlight::Engine::Kate::CMake;
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       'Commands' => 'Keyword',
26       'Comment' => 'Comment',
27       'Macros' => 'Keyword',
28       'Normal Text' => 'Normal',
29       'Region Marker' => 'RegionMarker',
30       'Special Args' => 'Others',
31       'Variable' => 'DecVal',
32    });
33    $self->listAdd('commands',
34       'ABSTRACT_FILES',
35       'ADD_CUSTOM_COMMAND',
36       'ADD_CUSTOM_TARGET',
37       'ADD_DEFINITIONS',
38       'ADD_DEPENDENCIES',
39       'ADD_EXECUTABLE',
40       'ADD_LIBRARY',
41       'ADD_TEST',
42       'AUX_SOURCE_DIRECTORY',
43       'BUILD_COMMAND',
44       'BUILD_NAME',
45       'CMAKE_MINIMUM_REQUIRED',
46       'CONFIGURE_FILE',
47       'CREATE_TEST_SOURCELIST',
48       'ELSE',
49       'ENABLE_TESTING',
50       'ENDFOREACH',
51       'ENDIF',
52       'ENDMACRO',
53       'EXEC_PROGRAM',
54       'EXPORT_LIBRARY_DEPENDENCIES',
55       'FILE',
56       'FIND_FILE',
57       'FIND_LIBRARY',
58       'FIND_PACKAGE',
59       'FIND_PATH',
60       'FIND_PROGRAM',
61       'FLTK_WRAP_UI',
62       'FOREACH',
63       'GET_CMAKE_PROPERTY',
64       'GET_DIRECTORY_PROPERTY',
65       'GET_FILENAME_COMPONENT',
66       'GET_SOURCE_FILE_PROPERTY',
67       'GET_TARGET_PROPERTY',
68       'IF',
69       'INCLUDE',
70       'INCLUDE_DIRECTORIES',
71       'INCLUDE_EXTERNAL_MSPROJECT',
72       'INCLUDE_REGULAR_EXPRESSION',
73       'INSTALL_FILES',
74       'INSTALL_PROGRAMS',
75       'INSTALL_TARGETS',
76       'ITK_WRAP_TCL',
77       'LINK_DIRECTORIE',
78       'LINK_LIBRARIES',
79       'LOAD_CACHE',
80       'LOAD_COMMAND',
81       'MACRO',
82       'MAKE_DIRECTORY',
83       'MARK_AS_ADVANCED',
84       'MESSAGE',
85       'OPTION',
86       'OUTPUT_REQUIRED_FILES',
87       'PROJECT',
88       'QT_WRAP_CPP',
89       'QT_WRAP_UI',
90       'REMOVE',
91       'REMOVE_DEFINITIONS',
92       'SEPARATE_ARGUMENTS',
93       'SET',
94       'SET_DIRECTORY_PROPERTIES',
95       'SET_SOURCE_FILES_PROPERTIES',
96       'SET_TARGET_PROPERTIES',
97       'SITE_NAME',
98       'SOURCE_FILES',
99       'SOURCE_FILES_REMOVE',
100       'SOURCE_GROUP',
101       'STRING',
102       'SUBDIRS',
103       'SUBDIR_DEPENDS',
104       'TARGET_LINK_LIBRARIES',
105       'TRY_COMPILE',
106       'TRY_RUN',
107       'USE_MANGLED_MESA',
108       'UTILITY_SOURCE',
109       'VARIABLE_REQUIRES',
110       'VTK_MAKE_INSTANTIATOR',
111       'VTK_WRAP_JAVA',
112       'VTK_WRAP_PYTHON',
113       'VTK_WRAP_TCL',
114       'WRAP_EXCLUDE_FILES',
115       'WRITE_FILE',
116    );
117    $self->listAdd('special_args',
118       'ABSOLUTE',
119       'ABSTRACT',
120       'ADDITIONAL_MAKE_CLEAN_FILES',
121       'ALL',
122       'AND',
123       'APPEND',
124       'ARGS',
125       'ASCII',
126       'BEFORE',
127       'CACHE',
128       'CACHE_VARIABLES',
129       'CLEAR',
130       'COMMAND',
131       'COMMANDS',
132       'COMMAND_NAME',
133       'COMMENT',
134       'COMPARE',
135       'COMPILE_FLAGS',
136       'COPYONLY',
137       'DEFINED',
138       'DEFINE_SYMBOL',
139       'DEPENDS',
140       'DOC',
141       'EQUAL',
142       'ESCAPE_QUOTES',
143       'EXCLUDE',
144       'EXCLUDE_FROM_ALL',
145       'EXISTS',
146       'EXPORT_MACRO',
147       'EXT',
148       'EXTRA_INCLUDE',
149       'FATAL_ERROR',
150       'FILE',
151       'FILES',
152       'FORCE',
153       'FUNCTION',
154       'GENERATED',
155       'GLOB',
156       'GLOB_RECURSE',
157       'GREATER',
158       'GROUP_SIZE',
159       'HEADER_FILE_ONLY',
160       'HEADER_LOCATION',
161       'IMMEDIATE',
162       'INCLUDES',
163       'INCLUDE_DIRECTORIES',
164       'INCLUDE_INTERNALS',
165       'INCLUDE_REGULAR_EXPRESSION',
166       'LESS',
167       'LINK_DIRECTORIES',
168       'LINK_FLAGS',
169       'LOCATION',
170       'MACOSX_BUNDLE',
171       'MACROS',
172       'MAIN_DEPENDENCY',
173       'MAKE_DIRECTORY',
174       'MATCH',
175       'MATCHALL',
176       'MATCHES',
177       'MODULE',
178       'NAME',
179       'NAME_WE',
180       'NOT',
181       'NOTEQUAL',
182       'NO_SYSTEM_PATH',
183       'OBJECT_DEPENDS',
184       'OPTIONAL',
185       'OR',
186       'OUTPUT',
187       'OUTPUT_VARIABLE',
188       'PATH',
189       'PATHS',
190       'POST_BUILD',
191       'POST_INSTALL_SCRIPT',
192       'PREFIX',
193       'PREORDER',
194       'PRE_BUILD',
195       'PRE_INSTALL_SCRIPT',
196       'PRE_LINK',
197       'PROGRAM',
198       'PROGRAM_ARGS',
199       'PROPERTIES',
200       'QUIET',
201       'RANGE',
202       'READ',
203       'REGEX',
204       'REGULAR_EXPRESSION',
205       'REPLACE',
206       'REQUIRED',
207       'RETURN_VALUE',
208       'RUNTIME_DIRECTORY',
209       'SEND_ERROR',
210       'SHARED',
211       'SOURCES',
212       'STATIC',
213       'STATUS',
214       'STREQUAL',
215       'STRGREATER',
216       'STRLESS',
217       'SUFFIX',
218       'TARGET',
219       'TOLOWER',
220       'TOUPPER',
221       'VAR',
222       'VARIABLES',
223       'VERSION',
224       'WIN32',
225       'WRAP_EXCLUDE',
226       'WRITE',
227    );
228    $self->contextdata({
229       'Function Args' => {
230          callback => \&parseFunctionArgs,
231          attribute => 'Normal Text',
232       },
233       'Normal Text' => {
234          callback => \&parseNormalText,
235          attribute => 'Normal Text',
236       },
237    });
238    $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
239    $self->basecontext('Normal Text');
240    $self->keywordscase(0);
241    $self->initialize;
242    bless ($self, $class);
243    return $self;
244 }
245
246 sub language {
247    return 'CMake';
248 }
249
250 sub parseFunctionArgs {
251    my ($self, $text) = @_;
252    # attribute => 'Normal Text'
253    # char => ')'
254    # context => '#pop'
255    # type => 'DetectChar'
256    if ($self->testDetectChar($text, ')', 0, 0, 0, undef, 0, '#pop', 'Normal Text')) {
257       return 1
258    }
259    # String => 'special_args'
260    # attribute => 'Special Args'
261    # context => '#stay'
262    # type => 'keyword'
263    if ($self->testKeyword($text, 'special_args', 0, undef, 0, '#stay', 'Special Args')) {
264       return 1
265    }
266    # String => '#.*$'
267    # attribute => 'Comment'
268    # context => '#stay'
269    # type => 'RegExpr'
270    if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
271       return 1
272    }
273    # String => '\$\{\s*\w+\s*\}'
274    # attribute => 'Variable'
275    # context => '#stay'
276    # type => 'RegExpr'
277    if ($self->testRegExpr($text, '\\$\\{\\s*\\w+\\s*\\}', 0, 0, 0, undef, 0, '#stay', 'Variable')) {
278       return 1
279    }
280    return 0;
281 };
282
283 sub parseNormalText {
284    my ($self, $text) = @_;
285    # String => 'commands'
286    # attribute => 'Commands'
287    # context => 'Function Args'
288    # type => 'keyword'
289    if ($self->testKeyword($text, 'commands', 0, undef, 0, 'Function Args', 'Commands')) {
290       return 1
291    }
292    # String => '#\s*BEGIN.*$'
293    # attribute => 'Region Marker'
294    # beginRegion => 'block'
295    # context => '#stay'
296    # firstNonSpace => 'true'
297    # type => 'RegExpr'
298    if ($self->testRegExpr($text, '#\\s*BEGIN.*$', 0, 0, 0, undef, 1, '#stay', 'Region Marker')) {
299       return 1
300    }
301    # String => '#\s*END.*$'
302    # attribute => 'Region Marker'
303    # context => '#stay'
304    # endRegion => 'block'
305    # firstNonSpace => 'true'
306    # type => 'RegExpr'
307    if ($self->testRegExpr($text, '#\\s*END.*$', 0, 0, 0, undef, 1, '#stay', 'Region Marker')) {
308       return 1
309    }
310    # String => '#.*$'
311    # attribute => 'Comment'
312    # context => '#stay'
313    # type => 'RegExpr'
314    if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
315       return 1
316    }
317    # String => '\$\{\s*\w+\s*\}'
318    # attribute => 'Variable'
319    # context => '#stay'
320    # type => 'RegExpr'
321    if ($self->testRegExpr($text, '\\$\\{\\s*\\w+\\s*\\}', 0, 0, 0, undef, 0, '#stay', 'Variable')) {
322       return 1
323    }
324    # String => '\s*\w+\s*(?=\(.*\))'
325    # attribute => 'Macros'
326    # context => '#stay'
327    # type => 'RegExpr'
328    if ($self->testRegExpr($text, '\\s*\\w+\\s*(?=\\(.*\\))', 0, 0, 0, undef, 0, '#stay', 'Macros')) {
329       return 1
330    }
331    return 0;
332 };
333
334
335 1;
336
337 __END__
338
339 =head1 NAME
340
341 Syntax::Highlight::Engine::Kate::CMake - a Plugin for CMake syntax highlighting
342
343 =head1 SYNOPSIS
344
345  require Syntax::Highlight::Engine::Kate::CMake;
346  my $sh = new Syntax::Highlight::Engine::Kate::CMake([
347  ]);
348
349 =head1 DESCRIPTION
350
351 Syntax::Highlight::Engine::Kate::CMake is a  plugin module that provides syntax highlighting
352 for CMake to the Syntax::Haghlight::Engine::Kate highlighting engine.
353
354 This code is generated from the syntax definition files used
355 by the Kate project.
356 It works quite fine, but can use refinement and optimization.
357
358 It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
359
360 =cut
361
362 =head1 AUTHOR
363
364 Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
365
366 =cut
367
368 =head1 BUGS
369
370 Unknown. If you find any, please contact the author
371
372 =cut
373