File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/LDIF.pm
Criterion Covered Total %
statement 22 75 29.3
branch 0 42 0.0
condition 1 3 33.3
subroutine 4 10 40.0
pod 0 7 0.0
total 27 137 19.7


line stmt bran cond sub pod time code
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 'ldif.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             #kate author Andreas Hochsteger (e9625392@student.tuwien.ac.at)
11             #generated: Sun Feb 3 22:02:05 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::LDIF;
14              
15             our $VERSION = '0.12';
16              
17 1     1   594 use strict;
  1         3  
  1         32  
18 1     1   5 use warnings;
  1         1  
  1         27  
19 1     1   5 use base('Syntax::Highlight::Engine::Kate::Template');
  1         2  
  1         850  
20              
21             sub new {
22 1     1 0 718 my $proto = shift;
23 1   33     7 my $class = ref($proto) || $proto;
24 1         9 my $self = $class->SUPER::new(@_);
25 1         13 $self->attributes({
26             'AttributeType' => 'DataType',
27             'Comment' => 'Comment',
28             'Description Keyword' => 'Keyword',
29             'Normal Text' => 'Normal',
30             'ObjectClass' => 'Reserved',
31             'Value (Encoded)' => 'BString',
32             'Value (Encrypted)' => 'BaseN',
33             'Value (Keyword)' => 'Float',
34             'Value (Standard)' => 'String',
35             'Value (URL)' => 'Others',
36             });
37 1         8 $self->listAdd('attributetypes',
38             'IPPhone',
39             'URL',
40             'aRecord',
41             'aliasedEntryName',
42             'aliasedObjectName',
43             'associatedDomain',
44             'associatedName',
45             'audio',
46             'authorityRevocationList',
47             'bootFile',
48             'bootParameter',
49             'buildingName',
50             'businessCategory',
51             'c',
52             'cACertificate',
53             'cNAMERecord',
54             'certificateRevocationList',
55             'cn',
56             'comment',
57             'commonName',
58             'conferenceInformation',
59             'corbaContainer',
60             'corbaRepositoryId',
61             'countryName',
62             'crossCertificatePair',
63             'custom1',
64             'custom2',
65             'custom3',
66             'custom4',
67             'dITRedirect',
68             'dSAQuality',
69             'dc',
70             'deltaRevocationList',
71             'description',
72             'destinationIndicator',
73             'distinguishedName',
74             'dmdName',
75             'dnQualifier',
76             'documentAuthor',
77             'documentIdentifier',
78             'documentLocation',
79             'documentPublisher',
80             'documentTitle',
81             'documentVersion',
82             'domainComponent',
83             'enhancedSearchGuide',
84             'facsimileTelephoneNumber',
85             'fax',
86             'gecos',
87             'generationQualifier',
88             'gidNumber',
89             'givenName',
90             'gn',
91             'homeDirectory',
92             'homePostalAddress',
93             'homeUrl',
94             'host',
95             'houseIdentifier',
96             'info',
97             'initials',
98             'internationaliSDNNumber',
99             'ipHostNumber',
100             'ipNetmaskNumber',
101             'ipNetworkNumber',
102             'ipProtocolNumber',
103             'ipServicePort',
104             'ipServiceProtocol',
105             'janetMailbox',
106             'javaClassNames',
107             'javaCodebase',
108             'javaContainer',
109             'javaDoc',
110             'javaFactory',
111             'javaReferenceAddress',
112             'javaSerializedData',
113             'knowledgeInformation',
114             'l',
115             'labeledURI',
116             'lastModifiedBy',
117             'lastModifiedTime',
118             'lmpassword',
119             'localityName',
120             'loginShell',
121             'mDRecord',
122             'mXRecord',
123             'macAddress',
124             'mail',
125             'manager',
126             'member',
127             'memberNisNetgroup',
128             'memberUid',
129             'mozillaHomeCountryName',
130             'mozillaHomeFriendlyCountryName',
131             'mozillaHomeLocalityName',
132             'mozillaHomePostalAddress2',
133             'mozillaHomePostalCode',
134             'mozillaHomeState',
135             'mozillaPostalAddress2',
136             'mozillaSecondemail',
137             'nSRecord',
138             'name',
139             'nisMapEntry',
140             'nisMapName',
141             'nisNetgroupTriple',
142             'ntpasswd',
143             'o',
144             'objectClass',
145             'oncRpcNumber',
146             'organizationName',
147             'organizationalStatus',
148             'organizationalUnitName',
149             'otherFacsimiletelephoneNumber',
150             'otherMailbox',
151             'ou',
152             'owner',
153             'personalSignature',
154             'personalTitle',
155             'photo',
156             'physicalDeliveryOfficeName',
157             'postOfficeBox',
158             'postalAddress',
159             'postalCode',
160             'preferredDeliveryMethod',
161             'presentationAddress',
162             'protocolInformation',
163             'rdn',
164             'registeredAddress',
165             'reports',
166             'rfc822Mailbox',
167             'roleOccupant',
168             'roomNumber',
169             'sOARecord',
170             'searchGuide',
171             'secretary',
172             'seeAlso',
173             'serialNumber',
174             'shadowExpire',
175             'shadowFlag',
176             'shadowInactive',
177             'shadowLastChange',
178             'shadowMax',
179             'shadowMin',
180             'shadowWarning',
181             'singleLevelQuality',
182             'sn',
183             'st',
184             'stateOrProvinceName',
185             'street',
186             'streetAddress',
187             'subtreeMaximumQuality',
188             'subtreeMinimumQuality',
189             'supportedAlgorithms',
190             'supportedApplicationContext',
191             'surname',
192             'telephoneNumber',
193             'teletexTerminalIdentifier',
194             'telexNumber',
195             'textEncodedORAddress',
196             'title',
197             'uid',
198             'uidNumber',
199             'uniqueIdentifier',
200             'uniqueMember',
201             'userCertificate',
202             'userClass',
203             'userPassword',
204             'userid',
205             'workUrl',
206             'x121Address',
207             'x500UniqueIdentifier',
208             'xmozillaNickname',
209             'xmozillaUseHtmlMail',
210             'xmozillanickname',
211             'xmozillausehtmlmail',
212             );
213 1         4 $self->listAdd('objectclasses',
214             'RFC822localPart',
215             'SUP',
216             'account',
217             'alias',
218             'applicationEntity',
219             'applicationProcess',
220             'bootableDevice',
221             'cRLDistributionPoint',
222             'certificationAuthority',
223             'certificationAuthority-V2',
224             'corbaObject',
225             'corbaObjectReference',
226             'country',
227             'dNSDomain',
228             'dSA',
229             'dcObject',
230             'deltaCRL',
231             'device',
232             'dmd',
233             'document',
234             'documentSeries',
235             'domain',
236             'domainRelatedObject',
237             'friendlyCountry',
238             'groupOfNames',
239             'groupOfUniqueNames',
240             'ieee802Device',
241             'inetOrgPerson',
242             'ipHost',
243             'ipNetwork',
244             'ipProtocol',
245             'ipService',
246             'javaClassName',
247             'javaMarshalledObject',
248             'javaNamingReference',
249             'javaObject',
250             'javaSerializedObject',
251             'labeledURIObject',
252             'locality',
253             'mozillaAbPersonObsolete',
254             'nisMap',
255             'nisNetgroup',
256             'nisObject',
257             'officePerson',
258             'oncRpc',
259             'organization',
260             'organizationalPerson',
261             'organizationalRole',
262             'organizationalUnit',
263             'pager',
264             'pagerTelephoneNumber',
265             'person',
266             'pilotDSA',
267             'pilotObject',
268             'pilotOrganization',
269             'pkiCA',
270             'pkiUser',
271             'posixAccount',
272             'posixGroup',
273             'qualityLabelledData',
274             'residentialPerson',
275             'rid',
276             'room',
277             'sambaAccount',
278             'shadowAccount',
279             'simpleSecurityObject',
280             'strongAuthenticationUser',
281             'telephoneNumber',
282             'top',
283             'uid',
284             'uidNumber',
285             'uidObject',
286             'userSecurityInformation',
287             'userid',
288             'xmozillaanyphone',
289             'zillaPerson',
290             );
291 1         13 $self->contextdata({
292             'ctxEncoded' => {
293             callback => \&parsectxEncoded,
294             attribute => 'Value (Encoded)',
295             },
296             'ctxEncrypted' => {
297             callback => \&parsectxEncrypted,
298             attribute => 'Value (Encrypted)',
299             },
300             'ctxStandard' => {
301             callback => \&parsectxStandard,
302             attribute => 'Value (Standard)',
303             },
304             'ctxStart' => {
305             callback => \&parsectxStart,
306             attribute => 'Value (Standard)',
307             },
308             'ctxURL' => {
309             callback => \&parsectxURL,
310             attribute => 'Value (URL)',
311             },
312             });
313 1         4 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
314 1         3 $self->basecontext('ctxStart');
315 1         5 $self->keywordscase(1);
316 1         8 $self->initialize;
317 1         2 bless ($self, $class);
318 1         3 return $self;
319             }
320              
321             sub language {
322 0     0 0   return 'LDIF';
323             }
324              
325             sub parsectxEncoded {
326 0     0 0   my ($self, $text) = @_;
327             # String => '#.*$'
328             # attribute => 'Comment'
329             # context => '#stay'
330             # type => 'RegExpr'
331 0 0         if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
332 0           return 1
333             }
334             # String => '\s.*$'
335             # attribute => 'Value (Encoded)'
336             # context => '#stay'
337             # type => 'RegExpr'
338 0 0         if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (Encoded)')) {
339 0           return 1
340             }
341             # String => '[\w\-]+((;[\w\-]+)+)?:'
342             # attribute => 'Description Keyword'
343             # column => '0'
344             # context => '#pop'
345             # type => 'RegExpr'
346 0 0         if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
347 0           return 1
348             }
349 0           return 0;
350             };
351              
352             sub parsectxEncrypted {
353 0     0 0   my ($self, $text) = @_;
354             # String => '#.*$'
355             # attribute => 'Comment'
356             # context => '#stay'
357             # type => 'RegExpr'
358 0 0         if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
359 0           return 1
360             }
361             # String => '\s.*$'
362             # attribute => 'Value (Encrypted)'
363             # context => '#stay'
364             # type => 'RegExpr'
365 0 0         if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (Encrypted)')) {
366 0           return 1
367             }
368             # String => '[\w\-]+((;[\w\-]+)+)?:'
369             # attribute => 'Description Keyword'
370             # column => '0'
371             # context => '#pop#pop'
372             # type => 'RegExpr'
373 0 0         if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop#pop', 'Description Keyword')) {
374 0           return 1
375             }
376 0           return 0;
377             };
378              
379             sub parsectxStandard {
380 0     0 0   my ($self, $text) = @_;
381             # String => '#.*$'
382             # attribute => 'Comment'
383             # context => '#stay'
384             # type => 'RegExpr'
385 0 0         if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
386 0           return 1
387             }
388             # String => '\{\w+\}.*$'
389             # attribute => 'Value (Encrypted)'
390             # context => 'ctxEncrypted'
391             # type => 'RegExpr'
392 0 0         if ($self->testRegExpr($text, '\\{\\w+\\}.*$', 0, 0, 0, undef, 0, 'ctxEncrypted', 'Value (Encrypted)')) {
393 0           return 1
394             }
395             # String => 'attributetypes'
396             # attribute => 'AttributeType'
397             # context => '#stay'
398             # type => 'keyword'
399 0 0         if ($self->testKeyword($text, 'attributetypes', 0, undef, 0, '#stay', 'AttributeType')) {
400 0           return 1
401             }
402             # String => 'objectclasses'
403             # attribute => 'ObjectClass'
404             # context => '#stay'
405             # type => 'keyword'
406 0 0         if ($self->testKeyword($text, 'objectclasses', 0, undef, 0, '#stay', 'ObjectClass')) {
407 0           return 1
408             }
409             # String => '[\w\-]+((;[\w\-]+)+)?:'
410             # attribute => 'Description Keyword'
411             # column => '0'
412             # context => '#pop'
413             # type => 'RegExpr'
414 0 0         if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
415 0           return 1
416             }
417             # String => '[a-zA-Z0-9\-]+='
418             # attribute => 'Value (Keyword)'
419             # context => '#stay'
420             # type => 'RegExpr'
421 0 0         if ($self->testRegExpr($text, '[a-zA-Z0-9\\-]+=', 0, 0, 0, undef, 0, '#stay', 'Value (Keyword)')) {
422 0           return 1
423             }
424 0           return 0;
425             };
426              
427             sub parsectxStart {
428 0     0 0   my ($self, $text) = @_;
429             # String => '#.*$'
430             # attribute => 'Comment'
431             # context => '#stay'
432             # type => 'RegExpr'
433 0 0         if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
434 0           return 1
435             }
436             # attribute => 'Description Keyword'
437             # char => ':'
438             # context => 'ctxEncoded'
439             # type => 'DetectChar'
440 0 0         if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, 'ctxEncoded', 'Description Keyword')) {
441 0           return 1
442             }
443             # attribute => 'Description Keyword'
444             # char => '<'
445             # context => 'ctxURL'
446             # type => 'DetectChar'
447 0 0         if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'ctxURL', 'Description Keyword')) {
448 0           return 1
449             }
450             # String => '[^:<]'
451             # attribute => 'Value (Standard)'
452             # context => 'ctxStandard'
453             # type => 'RegExpr'
454 0 0         if ($self->testRegExpr($text, '[^:<]', 0, 0, 0, undef, 0, 'ctxStandard', 'Value (Standard)')) {
455 0           return 1
456             }
457             # String => '[\w\-]+((;[\w\-]+)+)?:'
458             # attribute => 'Description Keyword'
459             # column => '0'
460             # context => '#stay'
461             # type => 'RegExpr'
462 0 0         if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#stay', 'Description Keyword')) {
463 0           return 1
464             }
465 0           return 0;
466             };
467              
468             sub parsectxURL {
469 0     0 0   my ($self, $text) = @_;
470             # String => '#.*$'
471             # attribute => 'Comment'
472             # context => '#stay'
473             # type => 'RegExpr'
474 0 0         if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
475 0           return 1
476             }
477             # String => '\s+[\w]+://[\w/.]+'
478             # attribute => 'Value (URL)'
479             # context => '#stay'
480             # type => 'RegExpr'
481 0 0         if ($self->testRegExpr($text, '\\s+[\\w]+://[\\w/.]+', 0, 0, 0, undef, 0, '#stay', 'Value (URL)')) {
482 0           return 1
483             }
484             # String => '\s.*$'
485             # attribute => 'Value (URL)'
486             # context => '#stay'
487             # type => 'RegExpr'
488 0 0         if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (URL)')) {
489 0           return 1
490             }
491             # String => '[\w\-]+((;[\w\-]+)+)?:'
492             # attribute => 'Description Keyword'
493             # column => '0'
494             # context => '#pop'
495             # type => 'RegExpr'
496 0 0         if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
497 0           return 1
498             }
499 0           return 0;
500             };
501              
502              
503             1;
504              
505             __END__