File Coverage

blib/lib/Syntax/Highlight/Engine/Kate/PureBasic.pm
Criterion Covered Total %
statement 71 99 71.7
branch 43 70 61.4
condition 1 3 33.3
subroutine 7 8 87.5
pod 0 5 0.0
total 122 185 65.9


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 'purebasic.xml' file of the syntax highlight
6             # engine of the kate text editor (http://www.kate-editor.org
7              
8             #kate xml version 3.91
9             #kate version 2.3
10             #kate author Sven Langenkamp (ace@kylixforum.de)
11             #generated: Sun Feb 3 22:02:06 2008, localtime
12              
13             package Syntax::Highlight::Engine::Kate::PureBasic;
14              
15             our $VERSION = '0.14';
16              
17 1     1   553 use strict;
  1         2  
  1         25  
18 1     1   6 use warnings;
  1         1  
  1         23  
19 1     1   4 use base('Syntax::Highlight::Engine::Kate::Template');
  1         1  
  1         1666  
20              
21             sub new {
22 2     2 0 626 my $proto = shift;
23 2   33     9 my $class = ref($proto) || $proto;
24 2         13 my $self = $class->SUPER::new(@_);
25 2         18 $self->attributes({
26             'Comment' => 'Comment',
27             'Constant' => 'DataType',
28             'Functions' => 'Function',
29             'Keyword' => 'Keyword',
30             'Normal Text' => 'Normal',
31             'Number' => 'DecVal',
32             'Region Marker ' => 'RegionMarker',
33             'String' => 'String',
34             });
35 2         27 $self->listAdd('functions',
36             'ACos',
37             'ASin',
38             'ATan',
39             'Abs',
40             'ActivateGadget',
41             'ActivateRichEdit',
42             'ActivateWindow',
43             'Add3DArchive',
44             'AddBillboard',
45             'AddDate',
46             'AddElement',
47             'AddGadgetColumn',
48             'AddGadgetItem',
49             'AddKeyboardShortcut',
50             'AddMaterialLayer',
51             'AddPackFile',
52             'AddPackMemory',
53             'AddStatusBarField',
54             'AddSysTrayIcon',
55             'AdvancedGadgetEvents',
56             'AllocateMemory',
57             'AmbientColor',
58             'AnimateEntity',
59             'Asc',
60             'AvailableScreenMemory',
61             'BackColor',
62             'Base64Encoder',
63             'BillboardGroupLocate',
64             'BillboardGroupMaterial',
65             'BillboardGroupX',
66             'BillboardGroupY',
67             'BillboardGroupZ',
68             'BillboardHeight',
69             'BillboardLocate',
70             'BillboardWidth',
71             'BillboardX',
72             'BillboardY',
73             'BillboardZ',
74             'Bin',
75             'Blue',
76             'Box',
77             'ButtonGadget',
78             'ButtonImageGadget',
79             'CDAudioLength',
80             'CDAudioName',
81             'CDAudioStatus',
82             'CDAudioTrackLength',
83             'CDAudioTrackSeconds',
84             'CDAudioTracks',
85             'CRC32Fingerprint',
86             'CallCFunction',
87             'CallCFunctionFast',
88             'CallCOM',
89             'CallDX',
90             'CallFunction',
91             'CallFunctionFast',
92             'CameraBackColor',
93             'CameraFOV',
94             'CameraLocate',
95             'CameraLookAt',
96             'CameraProjection',
97             'CameraRange',
98             'CameraRenderMode',
99             'CameraX',
100             'CameraY',
101             'CameraZ',
102             'CatchImage',
103             'CatchSound',
104             'CatchSprite',
105             'ChangeAlphaIntensity',
106             'ChangeAlphaIntensity',
107             'ChangeCurrentElement',
108             'ChangeGamma',
109             'ChangeListIconGadgetDisplay',
110             'ChangeRichEditOptions',
111             'ChangeSysTrayIcon',
112             'CheckBoxGadget',
113             'Chr',
114             'Circle',
115             'ClearBillboards',
116             'ClearClipboard',
117             'ClearConsole',
118             'ClearError',
119             'ClearGadgetItemList',
120             'ClearList',
121             'ClearScreen',
122             'ClipSprite',
123             'CloseConsole',
124             'CloseDatabase',
125             'CloseFile',
126             'CloseFont',
127             'CloseGadgetList',
128             'CloseHelp',
129             'CloseLibrary',
130             'CloseNetworkConnection',
131             'CloseNetworkServer',
132             'ClosePack',
133             'ClosePreferences',
134             'CloseRichEdit',
135             'CloseScreen',
136             'CloseSubMenu',
137             'CloseTreeGadgetNode',
138             'CloseWindow',
139             'ColorRequester',
140             'ComboBoxGadget',
141             'CompareMemory',
142             'CompareMemoryString',
143             'ConsoleColor',
144             'ConsoleCursor',
145             'ConsoleLocate',
146             'ConsoleTitle',
147             'ContainerGadget',
148             'CopyDirectory',
149             'CopyEntity',
150             'CopyFile',
151             'CopyImage',
152             'CopyLight',
153             'CopyMaterial',
154             'CopyMemory',
155             'CopyMemoryString',
156             'CopyMesh',
157             'CopySprite',
158             'CopyTexture',
159             'Cos',
160             'CountBillboards',
161             'CountGadgetItems',
162             'CountLibraryFunctions',
163             'CountList',
164             'CountMaterialLayers',
165             'CountRenderedTriangles',
166             'CountString',
167             'CountTreeGadgetNodeItems',
168             'CreateBillboardGroup',
169             'CreateCamera',
170             'CreateDirectory',
171             'CreateEntity',
172             'CreateFile',
173             'CreateGadgetList',
174             'CreateImage',
175             'CreateLight',
176             'CreateMaterial',
177             'CreateMenu',
178             'CreateMesh',
179             'CreateNetworkServer',
180             'CreatePack',
181             'CreatePalette',
182             'CreateParticleEmitter',
183             'CreatePopupMenu',
184             'CreatePreferences',
185             'CreateSprite',
186             'CreateSprite3D',
187             'CreateStatusBar',
188             'CreateTerrain',
189             'CreateTexture',
190             'CreateThread',
191             'CreateToolBar',
192             'DESFingerprint',
193             'DatabaseColumnName',
194             'DatabaseColumnType',
195             'DatabaseColumns',
196             'DatabaseDriverDescription',
197             'DatabaseDriverName',
198             'DatabaseError',
199             'DatabaseQuery',
200             'DatabaseUpdate',
201             'Date',
202             'Day',
203             'DayOfWeek',
204             'DayOfYear',
205             'DefaultPrinter',
206             'Delay',
207             'DeleteDirectory',
208             'DeleteElement',
209             'DeleteFile',
210             'DetachMenu',
211             'DirectoryEntryAttributes',
212             'DirectoryEntryAttributes',
213             'DirectoryEntryName',
214             'DirectoryEntrySize',
215             'DisASMCommand',
216             'DisableGadget',
217             'DisableMaterialLighting',
218             'DisableMenuItem',
219             'DisableToolBarButton',
220             'DisplayAlphaSprite',
221             'DisplayAlphaSprite',
222             'DisplayPalette',
223             'DisplayPopupMenu',
224             'DisplayRGBFilter',
225             'DisplayShadowSprite',
226             'DisplayShadowSprite',
227             'DisplaySolidSprite',
228             'DisplaySprite',
229             'DisplaySprite3D',
230             'DisplayTranslucideSprite',
231             'DisplayTransparentSprite',
232             'DrawImage',
233             'DrawText',
234             'DrawingBuffer',
235             'DrawingBufferPitch',
236             'DrawingBufferPixelFormat',
237             'DrawingFont',
238             'DrawingMode',
239             'EditorGadget',
240             'EjectCDAudio',
241             'ElapsedMilliseconds',
242             'Ellipse',
243             'EndTimer',
244             'Engine3DFrameRate',
245             'EntityAnimationLength',
246             'EntityLocate',
247             'EntityMaterial',
248             'EntityMesh',
249             'EntityX',
250             'EntityY',
251             'EntityZ',
252             'Eof',
253             'EventGadgetID',
254             'EventMenuID',
255             'EventType',
256             'EventWindowID',
257             'EventlParam',
258             'EventwParam',
259             'ExamineDatabaseDrivers',
260             'ExamineDirectory',
261             'ExamineIPAddresses',
262             'ExamineJoystick',
263             'ExamineKeyboard',
264             'ExamineLibraryFunctions',
265             'ExamineMouse',
266             'ExamineScreenModes',
267             'ExplorerComboGadget',
268             'ExplorerListGadget',
269             'ExplorerTreeGadget',
270             'FileSeek',
271             'FileSize',
272             'FillArea',
273             'FindString',
274             'FindText',
275             'FirstDatabaseRow',
276             'FirstElement',
277             'FlipBuffers',
278             'Fog',
279             'FontDialog',
280             'FontID',
281             'FontRequester',
282             'FormatDate',
283             'Frame3DGadget',
284             'FreeBillboardGroup',
285             'FreeCamera',
286             'FreeEntity',
287             'FreeGadget',
288             'FreeImage',
289             'FreeLight',
290             'FreeMaterial',
291             'FreeMemory',
292             'FreeMenu',
293             'FreeMesh',
294             'FreeModule',
295             'FreeMovie',
296             'FreePalette',
297             'FreeParticleEmitter',
298             'FreeSound',
299             'FreeSprite',
300             'FreeSprite3D',
301             'FreeStatusBar',
302             'FreeTexture',
303             'FreeToolBar',
304             'FrontColor',
305             'GadgetHeight',
306             'GadgetID',
307             'GadgetItemID',
308             'GadgetToolTip',
309             'GadgetWidth',
310             'GadgetX',
311             'GadgetY',
312             'GetClipboardData',
313             'GetClipboardText',
314             'GetCurrentEIP',
315             'GetDatabaseFloat',
316             'GetDatabaseLong',
317             'GetDatabaseString',
318             'GetDisASMString',
319             'GetEntityAnimationTime',
320             'GetErrorAddress',
321             'GetErrorCounter',
322             'GetErrorDLL',
323             'GetErrorDescription',
324             'GetErrorLineNR',
325             'GetErrorModuleName',
326             'GetErrorNumber',
327             'GetErrorRegister',
328             'GetExtensionPart',
329             'GetFilePart',
330             'GetGadgetAttribute',
331             'GetGadgetItemAttribute',
332             'GetGadgetItemState',
333             'GetGadgetItemText',
334             'GetGadgetState',
335             'GetGadgetText',
336             'GetMaxTimerResolution',
337             'GetMenuItemState',
338             'GetMinTimerResolution',
339             'GetModulePosition',
340             'GetModuleRow',
341             'GetPaletteColor',
342             'GetPathPart',
343             'GetRichEditStyle',
344             'GetRichEditText',
345             'GetSelectedText',
346             'GetWindowTitle',
347             'GoToEIP',
348             'GrabImage',
349             'GrabSprite',
350             'Green',
351             'Hex',
352             'HideBillboardGroup',
353             'HideEntity',
354             'HideGadget',
355             'HideLight',
356             'HideMenu',
357             'HideParticleEmitter',
358             'HideWindow',
359             'Hostname',
360             'Hour',
361             'HyperLinkGadget',
362             'IPAddressField',
363             'IPAddressGadget',
364             'IPString',
365             'IPString',
366             'ImageDepth',
367             'ImageGadget',
368             'ImageHeight',
369             'ImageID',
370             'ImageOutput',
371             'ImageWidth',
372             'InitCDAudio',
373             'InitDatabase',
374             'InitEngine3D',
375             'InitJoystick',
376             'InitKeyboard',
377             'InitModule',
378             'InitMouse',
379             'InitMovie',
380             'InitNetwork',
381             'InitPalette',
382             'InitSound',
383             'InitSprite',
384             'InitSprite3D',
385             'Inkey',
386             'Input',
387             'InputRequester',
388             'InsertElement',
389             'Int',
390             'IsDatabase',
391             'IsDirectory',
392             'IsFile',
393             'IsFilename',
394             'IsFont',
395             'IsFunction',
396             'IsFunctionEntry',
397             'IsGadget',
398             'IsImage',
399             'IsLibrary',
400             'IsMenu',
401             'IsModule',
402             'IsMovie',
403             'IsPalette',
404             'IsScreenActive',
405             'IsSprite',
406             'IsSprite3D',
407             'IsStatusBar',
408             'IsSysTrayIcon',
409             'IsToolBar',
410             'IsWindow',
411             'JoystickAxisX',
412             'JoystickAxisY',
413             'JoystickButton',
414             'KeyboardInkey',
415             'KeyboardMode',
416             'KeyboardPushed',
417             'KeyboardReleased',
418             'KillThread',
419             'LCase',
420             'LSet',
421             'LTrim',
422             'LastElement',
423             'Left',
424             'Len',
425             'LibraryFunctionAddress',
426             'LibraryFunctionName',
427             'LightColor',
428             'LightLocate',
429             'LightSpecularColor',
430             'Line',
431             'LineXY',
432             'ListIconGadget',
433             'ListIndex',
434             'ListViewGadget',
435             'LoadFont',
436             'LoadImage',
437             'LoadMesh',
438             'LoadModule',
439             'LoadMovie',
440             'LoadPalette',
441             'LoadSound',
442             'LoadSprite',
443             'LoadTexture',
444             'LoadWorld',
445             'Loc',
446             'Locate',
447             'Lof',
448             'Log',
449             'Log10',
450             'MD5FileFingerprint',
451             'MD5Fingerprint',
452             'MDIGadget',
453             'MakeIPAddress',
454             'MakeIPAddress',
455             'MaterialAmbientColor',
456             'MaterialBlendingMode',
457             'MaterialDiffuseColor',
458             'MaterialFilteringMode',
459             'MaterialID',
460             'MaterialShadingMode',
461             'MaterialSpecularColor',
462             'MemoryStringLength',
463             'MenuBar',
464             'MenuHeight',
465             'MenuID',
466             'MenuItem',
467             'MenuTitle',
468             'MeshID',
469             'MessageRequester',
470             'Mid',
471             'Minute',
472             'ModuleVolume',
473             'Month',
474             'MouseButton',
475             'MouseDeltaX',
476             'MouseDeltaY',
477             'MouseLocate',
478             'MouseWheel',
479             'MouseX',
480             'MouseY',
481             'MoveBillboard',
482             'MoveBillboardGroup',
483             'MoveCamera',
484             'MoveEntity',
485             'MoveLight',
486             'MoveParticleEmitter',
487             'MoveWindow',
488             'MovieAudio',
489             'MovieHeight',
490             'MovieInfo',
491             'MovieLength',
492             'MovieSeek',
493             'MovieStatus',
494             'MovieWidth',
495             'NetworkClientEvent',
496             'NetworkClientID',
497             'NetworkServerEvent',
498             'NewPrinterPage',
499             'NextDatabaseDriver',
500             'NextDatabaseRow',
501             'NextDirectoryEntry',
502             'NextElement',
503             'NextIPAddress',
504             'NextLibraryFunction',
505             'NextPackFile',
506             'NextScreenMode',
507             'NextSelectedFileName',
508             'OSVersion',
509             'OffsetOf',
510             'OnErrorExit',
511             'OnErrorGosub',
512             'OnErrorGoto',
513             'OnErrorResume',
514             'OpenComPort',
515             'OpenConsole',
516             'OpenDatabase',
517             'OpenDatabaseRequester',
518             'OpenFile',
519             'OpenFileRequester',
520             'OpenGadgetList',
521             'OpenHelp',
522             'OpenLibrary',
523             'OpenNetworkConnection',
524             'OpenPack',
525             'OpenPreferences',
526             'OpenRichEdit',
527             'OpenScreen',
528             'OpenSubMenu',
529             'OpenTreeGadgetNode',
530             'OpenWindow',
531             'OpenWindowedScreen',
532             'OptionGadget',
533             'PackFileSize',
534             'PackMemory',
535             'PackerCallback',
536             'PanelGadget',
537             'ParseDate',
538             'ParticleColorFader',
539             'ParticleColorRange',
540             'ParticleEmissionRate',
541             'ParticleEmitterLocate',
542             'ParticleEmitterX',
543             'ParticleEmitterY',
544             'ParticleEmitterZ',
545             'ParticleMaterial',
546             'ParticleSize',
547             'ParticleTimeToLive',
548             'ParticleVelocity',
549             'PathRequester',
550             'PauseCDAudio',
551             'PauseMovie',
552             'PauseThread',
553             'PeekB',
554             'PeekF',
555             'PeekL',
556             'PeekS',
557             'PeekW',
558             'PlayCDAudio',
559             'PlayModule',
560             'PlayMovie',
561             'PlaySound',
562             'Plot',
563             'Point',
564             'PokeB',
565             'PokeF',
566             'PokeL',
567             'PokeS',
568             'PokeW',
569             'Pow',
570             'PreferenceComment',
571             'PreferenceGroup',
572             'PreviousDatabaseRow',
573             'PreviousElement',
574             'Print',
575             'PrintN',
576             'PrintRequester',
577             'PrinterOutput',
578             'PrinterPageHeight',
579             'PrinterPageWidth',
580             'ProgramParameter',
581             'ProgressBarGadget',
582             'RGB',
583             'RSet',
584             'RTrim',
585             'Random',
586             'RandomSeed',
587             'ReAllocateMemory',
588             'ReadByte',
589             'ReadData',
590             'ReadFile',
591             'ReadFloat',
592             'ReadLong',
593             'ReadPreferenceFloat',
594             'ReadPreferenceLong',
595             'ReadPreferenceString',
596             'ReadString',
597             'ReadWord',
598             'ReceiveNetworkData',
599             'ReceiveNetworkFile',
600             'Red',
601             'ReleaseMouse',
602             'RemoveBillboard',
603             'RemoveGadgetColumn',
604             'RemoveGadgetItem',
605             'RemoveKeyboardShortcut',
606             'RemoveMaterialLayer',
607             'RemoveString',
608             'RemoveSysTrayIcon',
609             'RenameFile',
610             'RenderMovieFrame',
611             'RenderWorld',
612             'ReplaceString',
613             'ReplaceText',
614             'ResetList',
615             'ResizeBillboard',
616             'ResizeEntity',
617             'ResizeGadget',
618             'ResizeImage',
619             'ResizeMovie',
620             'ResizeParticleEmitter',
621             'ResizeRichEdit',
622             'ResizeWindow',
623             'ResumeCDAudio',
624             'ResumeMovie',
625             'ResumeThread',
626             'RichEditBackground',
627             'RichEditBackgroundColor',
628             'RichEditFont',
629             'RichEditFontFace',
630             'RichEditFontSize',
631             'RichEditHeight',
632             'RichEditID',
633             'RichEditIndex',
634             'RichEditLocate',
635             'RichEditMouseX',
636             'RichEditMouseY',
637             'RichEditOptions',
638             'RichEditParent',
639             'RichEditTextColor',
640             'RichEditWidth',
641             'RichEditX',
642             'RichEditY',
643             'Right',
644             'RotateBillboardGroup',
645             'RotateCamera',
646             'RotateEntity',
647             'RotateMaterial',
648             'RotateParticleEmitter',
649             'RotateSprite3D',
650             'Round',
651             'RunProgram',
652             'SaveFileRequester',
653             'SaveImage',
654             'SaveSprite',
655             'ScaleEntity',
656             'ScaleMaterial',
657             'ScreenID',
658             'ScreenModeDepth',
659             'ScreenModeHeight',
660             'ScreenModeRefreshRate',
661             'ScreenModeWidth',
662             'ScreenOutput',
663             'ScrollAreaGadget',
664             'ScrollBarGadget',
665             'ScrollMaterial',
666             'Second',
667             'SelectElement',
668             'SelectText',
669             'SelectedFilePattern',
670             'SelectedFontColor',
671             'SelectedFontName',
672             'SelectedFontSize',
673             'SelectedFontStyle',
674             'SelectedRange',
675             'SendNetworkData',
676             'SendNetworkFile',
677             'SendNetworkString',
678             'Set/GetWindowTitle',
679             'SetClipboardData',
680             'SetClipboardText',
681             'SetEntityAnimationTime',
682             'SetErrorNumber',
683             'SetFrameRate',
684             'SetGadgetAttribute',
685             'SetGadgetFont',
686             'SetGadgetItemAttribute',
687             'SetGadgetItemState',
688             'SetGadgetItemText',
689             'SetGadgetState',
690             'SetGadgetText',
691             'SetMenuItemState',
692             'SetMeshData',
693             'SetModulePosition',
694             'SetPaletteColor',
695             'SetRefreshRate',
696             'SetRichEditCallback',
697             'SetRichEditText',
698             'SetWindowCallback',
699             'SetWindowTitle',
700             'Sin',
701             'SizeOf',
702             'SkyBox',
703             'SkyDome',
704             'SortArray',
705             'SortList',
706             'SoundFrequency',
707             'SoundPan',
708             'SoundVolume',
709             'Space',
710             'SpinGadget',
711             'SplitterGadget',
712             'Sprite3DBlendingMode',
713             'Sprite3DQuality',
714             'SpriteCollision',
715             'SpriteDepth',
716             'SpriteHeight',
717             'SpriteOutput',
718             'SpritePixelCollision',
719             'SpriteWidth',
720             'Sqr',
721             'Start3D',
722             'StartDrawing',
723             'StartPrinting',
724             'StartSpecialFX',
725             'StartTimer',
726             'StatusBarIcon',
727             'StatusBarText',
728             'Stop3D',
729             'StopCDAudio',
730             'StopDrawing',
731             'StopModule',
732             'StopMovie',
733             'StopPrinting',
734             'StopSound',
735             'StopSpecialFX',
736             'Str',
737             'StrF',
738             'StrU',
739             'StreamFileIn',
740             'StreamFileOut',
741             'StringField',
742             'StringGadget',
743             'SysTrayIconToolTip',
744             'Tan',
745             'TerrainHeight',
746             'TextGadget',
747             'TextLength',
748             'TextureHeight',
749             'TextureID',
750             'TextureOutput',
751             'TextureWidth',
752             'ThreadPriority',
753             'ToolBarImageButton',
754             'ToolBarSeparator',
755             'ToolBarStandardButton',
756             'ToolBarToolTip',
757             'TrackBarGadget',
758             'TransformSprite3D',
759             'TransparentSpriteColor',
760             'TreeGadget',
761             'TreeGadgetItemNumber',
762             'Trim',
763             'UCase',
764             'UnpackMemory',
765             'UseBuffer',
766             'UseCDAudio',
767             'UseDatabase',
768             'UseDirectory',
769             'UseFile',
770             'UseFont',
771             'UseGadgetList',
772             'UseImage',
773             'UseJPEGImageDecoder',
774             'UseJPEGImageEncoder',
775             'UseMovie',
776             'UseOGGSoundDecoder',
777             'UsePNGImageDecoder',
778             'UsePNGImageEncoder',
779             'UsePalette',
780             'UseRichEdit',
781             'UseTGAImageDecoder',
782             'UseTIFFImageDecoder',
783             'UseWindow',
784             'Val',
785             'ValF',
786             'WaitThread',
787             'WaitWindowEvent',
788             'WebGadget',
789             'WindowEvent',
790             'WindowHeight',
791             'WindowID',
792             'WindowMouseX',
793             'WindowMouseY',
794             'WindowOutput',
795             'WindowWidth',
796             'WindowX',
797             'WindowY',
798             'WriteByte',
799             'WriteData',
800             'WriteFloat',
801             'WriteLong',
802             'WritePreferenceFloat',
803             'WritePreferenceLong',
804             'WritePreferenceString',
805             'WriteString',
806             'WriteStringN',
807             'WriteWord',
808             'Year',
809             'ZoomSprite3D',
810             );
811 2         10 $self->listAdd('keywords',
812             'Break',
813             'Case',
814             'CompilerCase',
815             'CompilerDefault',
816             'CompilerElse',
817             'CompilerEndIf',
818             'CompilerEndSelect',
819             'CompilerIf',
820             'CompilerSelect',
821             'Continue',
822             'Data',
823             'DataSection',
824             'Debug',
825             'Declare',
826             'DefType',
827             'Default',
828             'Dim',
829             'Else',
830             'ElseIf',
831             'End',
832             'EndDataSection',
833             'EndEnumeration',
834             'EndIf',
835             'EndInterface',
836             'EndProcedure',
837             'EndSelect',
838             'EndStructure',
839             'Enumeration',
840             'Extends',
841             'FakeReturn',
842             'For',
843             'ForEach',
844             'Global',
845             'Gosub',
846             'Goto',
847             'If',
848             'IncludeBinary',
849             'IncludeFile',
850             'IncludePath',
851             'Interface',
852             'NewList',
853             'Next',
854             'Procedure',
855             'ProcedureDLL',
856             'ProcedureReturn',
857             'Protected',
858             'Read',
859             'Repeat',
860             'Restore',
861             'Return',
862             'Select',
863             'Shared',
864             'Static',
865             'Step',
866             'Structure',
867             'To',
868             'Until',
869             'Wend',
870             'While',
871             'XIncludeFile',
872             );
873 2         35 $self->contextdata({
874             'Comment1' => {
875             callback => \&parseComment1,
876             attribute => 'Comment',
877             lineending => '#pop',
878             },
879             'Normal' => {
880             callback => \&parseNormal,
881             attribute => 'Normal Text',
882             },
883             'String' => {
884             callback => \&parseString,
885             attribute => 'String',
886             lineending => '#pop',
887             },
888             });
889 2         8 $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
890 2         8 $self->basecontext('Normal');
891 2         8 $self->keywordscase(0);
892 2         7 $self->initialize;
893 2         5 bless ($self, $class);
894 2         10 return $self;
895             }
896              
897             sub language {
898 0     0 0 0 return 'PureBasic';
899             }
900              
901             sub parseComment1 {
902 694     694 0 1022 my ($self, $text) = @_;
903             # context => '##Alerts'
904             # type => 'IncludeRules'
905 694 50       1312 if ($self->includePlugin('Alerts', $text)) {
906 0         0 return 1
907             }
908 694         1166 return 0;
909             };
910              
911             sub parseNormal {
912 1506     1506 0 2371 my ($self, $text) = @_;
913             # String => '\b(if)([\s]|$)'
914             # attribute => 'Keyword'
915             # beginRegion => 'IfRegion'
916             # context => '#stay'
917             # insensitive => 'true'
918             # type => 'RegExpr'
919 1506 50       3266 if ($self->testRegExpr($text, '\\b(if)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
920 0         0 return 1
921             }
922             # String => '\b(endif)([\s]|$)'
923             # attribute => 'Keyword'
924             # context => '#stay'
925             # endRegion => 'IfRegion'
926             # insensitive => 'true'
927             # type => 'RegExpr'
928 1506 50       3866 if ($self->testRegExpr($text, '\\b(endif)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
929 0         0 return 1
930             }
931             # String => '\b(while)([\s]|$)'
932             # attribute => 'Keyword'
933             # beginRegion => 'WhileRegion'
934             # context => '#stay'
935             # insensitive => 'true'
936             # type => 'RegExpr'
937 1506 50       3474 if ($self->testRegExpr($text, '\\b(while)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
938 0         0 return 1
939             }
940             # String => '\b(wend)([\s]|$)'
941             # attribute => 'Keyword'
942             # context => '#stay'
943             # endRegion => 'WhileRegion'
944             # insensitive => 'true'
945             # type => 'RegExpr'
946 1506 50       3355 if ($self->testRegExpr($text, '\\b(wend)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
947 0         0 return 1
948             }
949             # String => '\b(repeat)([\s]|$)'
950             # attribute => 'Keyword'
951             # beginRegion => 'RepeatRegion'
952             # context => '#stay'
953             # insensitive => 'true'
954             # type => 'RegExpr'
955 1506 50       3406 if ($self->testRegExpr($text, '\\b(repeat)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
956 0         0 return 1
957             }
958             # String => '\b(until)([\s]|$)'
959             # attribute => 'Keyword'
960             # context => '#stay'
961             # endRegion => 'RepeatRegion'
962             # insensitive => 'true'
963             # type => 'RegExpr'
964 1506 50       3521 if ($self->testRegExpr($text, '\\b(until)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
965 0         0 return 1
966             }
967             # String => '\b(select)([\s]|$)'
968             # attribute => 'Keyword'
969             # beginRegion => 'SelectRegion'
970             # context => '#stay'
971             # insensitive => 'true'
972             # type => 'RegExpr'
973 1506 50       3319 if ($self->testRegExpr($text, '\\b(select)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
974 0         0 return 1
975             }
976             # String => '\b(endselect)([\s]|$)'
977             # attribute => 'Keyword'
978             # context => '#stay'
979             # endRegion => 'SelectRegion'
980             # insensitive => 'true'
981             # type => 'RegExpr'
982 1506 50       3511 if ($self->testRegExpr($text, '\\b(endselect)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
983 0         0 return 1
984             }
985             # String => '\b(for|foreach)([\s]|$)'
986             # attribute => 'Keyword'
987             # beginRegion => 'ForRegion'
988             # context => '#stay'
989             # insensitive => 'true'
990             # type => 'RegExpr'
991 1506 50       3474 if ($self->testRegExpr($text, '\\b(for|foreach)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
992 0         0 return 1
993             }
994             # String => '\b(next)([\s]|$)'
995             # attribute => 'Keyword'
996             # context => '#stay'
997             # endRegion => 'ForRegion'
998             # insensitive => 'true'
999             # type => 'RegExpr'
1000 1506 50       3434 if ($self->testRegExpr($text, '\\b(next)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1001 0         0 return 1
1002             }
1003             # String => '\b(procedure|proceduredll)([.\s]|$)'
1004             # attribute => 'Keyword'
1005             # beginRegion => 'ProcedureRegion'
1006             # context => '#stay'
1007             # insensitive => 'true'
1008             # type => 'RegExpr'
1009 1506 50       3356 if ($self->testRegExpr($text, '\\b(procedure|proceduredll)([.\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1010 0         0 return 1
1011             }
1012             # String => '\b(endprocedure)([\s]|$)'
1013             # attribute => 'Keyword'
1014             # context => '#stay'
1015             # endRegion => 'ProcedureRegion'
1016             # insensitive => 'true'
1017             # type => 'RegExpr'
1018 1506 50       3626 if ($self->testRegExpr($text, '\\b(endprocedure)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1019 0         0 return 1
1020             }
1021             # String => '\b(structure)([\s]|$)'
1022             # attribute => 'Keyword'
1023             # beginRegion => 'StructureRegion'
1024             # context => '#stay'
1025             # insensitive => 'true'
1026             # type => 'RegExpr'
1027 1506 50       3347 if ($self->testRegExpr($text, '\\b(structure)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1028 0         0 return 1
1029             }
1030             # String => '\b(endstructure)([\s]|$)'
1031             # attribute => 'Keyword'
1032             # context => '#stay'
1033             # endRegion => 'StructureRegion'
1034             # insensitive => 'true'
1035             # type => 'RegExpr'
1036 1506 50       3303 if ($self->testRegExpr($text, '\\b(endstructure)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1037 0         0 return 1
1038             }
1039             # String => '\b(interface)([\s]|$)'
1040             # attribute => 'Keyword'
1041             # beginRegion => 'InterfaceRegion'
1042             # context => '#stay'
1043             # insensitive => 'true'
1044             # type => 'RegExpr'
1045 1506 50       3555 if ($self->testRegExpr($text, '\\b(interface)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1046 0         0 return 1
1047             }
1048             # String => '\b(endinterface)([\s]|$)'
1049             # attribute => 'Keyword'
1050             # context => '#stay'
1051             # endRegion => 'InterfaceRegion'
1052             # insensitive => 'true'
1053             # type => 'RegExpr'
1054 1506 50       3347 if ($self->testRegExpr($text, '\\b(endinterface)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1055 0         0 return 1
1056             }
1057             # String => '\b(enumeration)([\s]|$)'
1058             # attribute => 'Keyword'
1059             # beginRegion => 'EnumerationRegion'
1060             # context => '#stay'
1061             # insensitive => 'true'
1062             # type => 'RegExpr'
1063 1506 50       4036 if ($self->testRegExpr($text, '\\b(enumeration)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1064 0         0 return 1
1065             }
1066             # String => '\b(endenumeration)([\s]|$)'
1067             # attribute => 'Keyword'
1068             # context => '#stay'
1069             # endRegion => 'EnumerationRegion'
1070             # insensitive => 'true'
1071             # type => 'RegExpr'
1072 1506 50       3366 if ($self->testRegExpr($text, '\\b(endenumeration)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1073 0         0 return 1
1074             }
1075             # String => '\b(datasection)([\s]|$)'
1076             # attribute => 'Keyword'
1077             # beginRegion => 'DataSectionRegion'
1078             # context => '#stay'
1079             # insensitive => 'true'
1080             # type => 'RegExpr'
1081 1506 50       3356 if ($self->testRegExpr($text, '\\b(datasection)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1082 0         0 return 1
1083             }
1084             # String => '\b(enddatasection)([\s]|$)'
1085             # attribute => 'Keyword'
1086             # context => '#stay'
1087             # endRegion => 'DataSectionRegion'
1088             # insensitive => 'true'
1089             # type => 'RegExpr'
1090 1506 50       3321 if ($self->testRegExpr($text, '\\b(enddatasection)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1091 0         0 return 1
1092             }
1093             # String => '\b(compilerif)([\s]|$)'
1094             # attribute => 'Keyword'
1095             # beginRegion => 'CompilerIfRegion'
1096             # context => '#stay'
1097             # insensitive => 'true'
1098             # type => 'RegExpr'
1099 1506 50       3434 if ($self->testRegExpr($text, '\\b(compilerif)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1100 0         0 return 1
1101             }
1102             # String => '\b(compilerendif)([\s]|$)'
1103             # attribute => 'Keyword'
1104             # context => '#stay'
1105             # endRegion => 'CompilerIfRegion'
1106             # insensitive => 'true'
1107             # type => 'RegExpr'
1108 1506 50       3533 if ($self->testRegExpr($text, '\\b(compilerendif)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1109 0         0 return 1
1110             }
1111             # String => '\b(compilerselect)([\s]|$)'
1112             # attribute => 'Keyword'
1113             # beginRegion => 'CompilerSelectRegion'
1114             # context => '#stay'
1115             # insensitive => 'true'
1116             # type => 'RegExpr'
1117 1506 50       3584 if ($self->testRegExpr($text, '\\b(compilerselect)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1118 0         0 return 1
1119             }
1120             # String => '\b(compilerendselect)([\s]|$)'
1121             # attribute => 'Keyword'
1122             # context => '#stay'
1123             # endRegion => 'CompilerEndSelectRegion'
1124             # insensitive => 'true'
1125             # type => 'RegExpr'
1126 1506 50       3264 if ($self->testRegExpr($text, '\\b(compilerendselect)([\\s]|$)', 1, 0, 0, undef, 0, '#stay', 'Keyword')) {
1127 0         0 return 1
1128             }
1129             # String => 'keywords'
1130             # attribute => 'Keyword'
1131             # context => '#stay'
1132             # type => 'keyword'
1133 1506 100       3708 if ($self->testKeyword($text, 'keywords', 0, undef, 0, '#stay', 'Keyword')) {
1134 54         141 return 1
1135             }
1136             # String => 'functions'
1137             # attribute => 'Functions'
1138             # context => '#stay'
1139             # type => 'keyword'
1140 1452 100       3235 if ($self->testKeyword($text, 'functions', 0, undef, 0, '#stay', 'Functions')) {
1141 50         128 return 1
1142             }
1143             # String => '\#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
1144             # attribute => 'Constant'
1145             # context => '#stay'
1146             # type => 'RegExpr'
1147 1402 100       3272 if ($self->testRegExpr($text, '\\#+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*', 0, 0, 0, undef, 0, '#stay', 'Constant')) {
1148 16         37 return 1
1149             }
1150             # attribute => 'Number'
1151             # context => '#stay'
1152             # type => 'Float'
1153 1386 100       3320 if ($self->testFloat($text, 0, undef, 0, '#stay', 'Number')) {
1154 14         38 return 1
1155             }
1156             # attribute => 'Number'
1157             # context => '#stay'
1158             # type => 'Int'
1159 1372 100       3149 if ($self->testInt($text, 0, undef, 0, '#stay', 'Number')) {
1160 8         20 return 1
1161             }
1162             # attribute => 'String'
1163             # char => '"'
1164             # context => 'String'
1165             # type => 'DetectChar'
1166 1364 100       3145 if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, 'String', 'String')) {
1167 28         75 return 1
1168             }
1169             # String => '^\s*;+\s*BEGIN.*$'
1170             # attribute => 'Region Marker'
1171             # beginRegion => 'marker'
1172             # context => '#stay'
1173             # type => 'RegExpr'
1174 1336 50       2827 if ($self->testRegExpr($text, '^\\s*;+\\s*BEGIN.*$', 0, 0, 0, undef, 0, '#stay', 'Region Marker')) {
1175 0         0 return 1
1176             }
1177             # String => '^\s*;+\s*END.*$'
1178             # attribute => 'Region Marker'
1179             # context => '#stay'
1180             # endRegion => 'marker'
1181             # type => 'RegExpr'
1182 1336 50       3257 if ($self->testRegExpr($text, '^\\s*;+\\s*END.*$', 0, 0, 0, undef, 0, '#stay', 'Region Marker')) {
1183 0         0 return 1
1184             }
1185             # attribute => 'Comment'
1186             # char => ';'
1187             # context => 'Comment1'
1188             # type => 'DetectChar'
1189 1336 100       2894 if ($self->testDetectChar($text, ';', 0, 0, 0, undef, 0, 'Comment1', 'Comment')) {
1190 18         47 return 1
1191             }
1192 1318         2366 return 0;
1193             };
1194              
1195             sub parseString {
1196 226     226 0 337 my ($self, $text) = @_;
1197             # attribute => 'String'
1198             # char => '"'
1199             # context => '#pop'
1200             # type => 'DetectChar'
1201 226 100       445 if ($self->testDetectChar($text, '"', 0, 0, 0, undef, 0, '#pop', 'String')) {
1202 28         55 return 1
1203             }
1204 198         302 return 0;
1205             };
1206              
1207              
1208             1;
1209              
1210             __END__