File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/FourGL.pm
Criterion Covered Total %
statement 22 29 75.8
branch 0 4 0.0
condition 1 3 33.3
subroutine 4 6 66.6
pod 0 3 0.0
total 27 45 60.0


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 'fgl-4gl.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 1.01
9             #kate version 2.3
10             #kate author Andrej Falout (andrej@falout.org)
11             #generated: Sun Feb 3 22:02:04 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::FourGL;
14              
15             our $VERSION = '0.12';
16              
17 1     1   516 use strict;
  1         2  
  1         34  
18 1     1   5 use warnings;
  1         3  
  1         31  
19 1     1   5 use base('Syntax::Highlight::Engine::Kate::Template');
  1         2  
  1         549  
20              
21             sub new {
22 1     1 0 477 my $proto = shift;
23 1   33     6 my $class = ref($proto) || $proto;
24 1         8 my $self = $class->SUPER::new(@_);
25 1         12 $self->attributes({
26             'Alert' => 'Alert',
27             'Char' => 'Char',
28             'Comment' => 'Comment',
29             'Data Type' => 'DataType',
30             'Decimal' => 'DecVal',
31             'Float' => 'Float',
32             'Hex' => 'BaseN',
33             'Keyword' => 'Keyword',
34             'Normal Text' => 'Normal',
35             'Octal' => 'BaseN',
36             'Prep. Lib' => 'Others',
37             'Preprocessor' => 'Others',
38             'String' => 'String',
39             'String Char' => 'Char',
40             'Symbol' => 'Normal',
41             });
42 1         11 $self->listAdd('keywords',
43             'ABSOLUTE',
44             'ACCEPT',
45             'ALL',
46             'ANY',
47             'BEGIN',
48             'BOLD',
49             'CONSTRAINT',
50             'CURRENT',
51             'DEFER',
52             'DIRTY',
53             'DISTINCT',
54             'DROP',
55             'ESC',
56             'ESCAPE',
57             'EXTERNAL',
58             'FREE',
59             'GROUP',
60             'HAVING',
61             'HIDE',
62             'HOLD',
63             'HOUR',
64             'INTERRUPT',
65             'INT_FLAG',
66             'ISOLATION',
67             'LOCK',
68             'MAGENTA',
69             'MINUTE',
70             'MODE',
71             'MODIFY',
72             'NEED',
73             'NOTFOUND',
74             'PAGENO',
75             'PIPE',
76             'READ',
77             'ROLLBACK',
78             'SCREEN',
79             'SECOND',
80             'STEP',
81             'STOP',
82             'TABLE',
83             'TEMP',
84             'UNIQUE',
85             'UNITS',
86             'UNLOAD',
87             'WAIT',
88             'WHILE',
89             'WORK',
90             'WRAP',
91             'add',
92             'after',
93             'alter',
94             'and',
95             'ascii',
96             'at',
97             'attribute',
98             'attributes',
99             'avg',
100             'before',
101             'between',
102             'blink',
103             'blue',
104             'border',
105             'bottom',
106             'by',
107             'call',
108             'case',
109             'clear',
110             'clipped',
111             'close',
112             'cluster',
113             'column',
114             'columns',
115             'command',
116             'comment',
117             'commit',
118             'committed',
119             'connect',
120             'construct',
121             'continue',
122             'count',
123             'create',
124             'cursor',
125             'cyan',
126             'database',
127             'day',
128             'declare',
129             'defaults',
130             'define',
131             'delete',
132             'delimiter',
133             'desc',
134             'display',
135             'downshift',
136             'else',
137             'enable',
138             'end',
139             'error',
140             'every',
141             'exclusive',
142             'execute',
143             'exists',
144             'exit',
145             'false',
146             'fetch',
147             'fgl_lastkey',
148             'fgl_lastkey()',
149             'field',
150             'file',
151             'finish',
152             'first',
153             'flush',
154             'for',
155             'foreach',
156             'form',
157             'format',
158             'formhandler',
159             'from',
160             'function',
161             'globals',
162             'go',
163             'goto',
164             'green',
165             'header',
166             'help',
167             'if',
168             'in',
169             'index',
170             'infield',
171             'initialize',
172             'input',
173             'insert',
174             'into',
175             'is',
176             'key',
177             'label',
178             'last',
179             'left',
180             'length',
181             'let',
182             'like',
183             'line',
184             'lines',
185             'load',
186             'locate',
187             'log',
188             'main',
189             'margin',
190             'matches',
191             'max',
192             'mdy',
193             'menu',
194             'message',
195             'min',
196             'month',
197             'name',
198             'next',
199             'no',
200             'normal',
201             'not',
202             'null',
203             'of',
204             'on',
205             'open',
206             'option',
207             'options',
208             'or',
209             'order',
210             'otherwise',
211             'outer',
212             'output',
213             'page',
214             'pause',
215             'prepare',
216             'previous',
217             'print',
218             'printer',
219             'program',
220             'prompt',
221             'put',
222             'quit',
223             'quit_flag',
224             'record',
225             'red',
226             'report',
227             'return',
228             'returning',
229             'reverse',
230             'revoke',
231             'right',
232             'row',
233             'rows',
234             'run',
235             'scroll',
236             'select',
237             'set',
238             'share',
239             'show',
240             'skip',
241             'sleep',
242             'sort',
243             'space',
244             'spaces',
245             'start',
246             'statistics',
247             'status',
248             'sum',
249             'text',
250             'then',
251             'thru',
252             'to',
253             'today',
254             'top',
255             'trailer',
256             'true',
257             'union',
258             'up',
259             'update',
260             'upshift',
261             'user',
262             'using',
263             'values',
264             'waiting',
265             'when',
266             'whenever',
267             'where',
268             'white',
269             'window',
270             'with',
271             'without',
272             'wordwrap',
273             'year',
274             'yellow',
275             );
276 1         3 $self->listAdd('types',
277             'DATETIME',
278             'DECIMAL',
279             'FRACTION',
280             'INTERVAL',
281             'NUMERIC',
282             'VARCHAR',
283             'array',
284             'char',
285             'date',
286             'float',
287             'integer',
288             'money',
289             'serial',
290             'smallint',
291             );
292 1         767 $self->contextdata({
293             'noname' => {
294             callback => \&parsenoname,
295             attribute => 'Comment',
296             },
297             });
298 1         10 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
299 1         3 $self->basecontext('noname');
300 1         5 $self->keywordscase(0);
301 1         2 $self->initialize;
302 1         3 bless ($self, $class);
303 1         3 return $self;
304             }
305              
306             sub language {
307 0     0 0   return '4GL';
308             }
309              
310             sub parsenoname {
311 0     0 0   my ($self, $text) = @_;
312             # String => '#if'
313             # attribute => 'Comment'
314             # context => '9'
315             # type => 'RegExpr'
316 0 0         if ($self->testRegExpr($text, '#if', 0, 0, 0, undef, 0, '9', 'Comment')) {
317 0           return 1
318             }
319             # String => '#endif'
320             # attribute => 'Comment'
321             # context => '#pop'
322             # type => 'RegExpr'
323 0 0         if ($self->testRegExpr($text, '#endif', 0, 0, 0, undef, 0, '#pop', 'Comment')) {
324 0           return 1
325             }
326 0           return 0;
327             };
328              
329              
330             1;
331              
332             __END__