ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
stonescript.php
Go to the documentation of this file.
1 <?php
2 /*************************************************************************************
3  * stonescript.php
4  * --------
5  * Author: Archimmersion ( based on ruby.php by Moises Deniz )
6  * Copyright: (c) 2011 Archimmersion ( http://www.archimmersion.com )
7  * Release Version: 1.0.9.0
8  * Date Started: 2011/03/30
9  *
10  * StoneScript language file for GeSHi.
11  *
12  * StonesCript is a Lua based script language for the ShiVa3D game engine ( http://www.stonetrip.com )
13  *
14  * More information can be found at http://www.stonetrip.com/developer/doc/api/introduction
15  *
16  * CHANGES
17  * -------
18  * 2011/04/18 (1.0.8.11)
19  * - Initial release
20  *
21  *************************************************************************************
22  *
23  * This file is part of GeSHi.
24  *
25  * GeSHi is free software; you can redistribute it and/or modify
26  * it under the terms of the GNU General Public License as published by
27  * the Free Software Foundation; either version 2 of the License, or
28  * (at your option) any later version.
29  *
30  * GeSHi is distributed in the hope that it will be useful,
31  * but WITHOUT ANY WARRANTY; without even the implied warranty of
32  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33  * GNU General Public License for more details.
34  *
35  * You should have received a copy of the GNU General Public License
36  * along with GeSHi; if not, write to the Free Software
37  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38  *
39  ************************************************************************************/
40 
41 $language_data = array (
42  'LANG_NAME' => 'StoneScript',
43  'COMMENT_SINGLE' => array(1 => "--"),
44  'COMMENT_MULTI' => array("--[[" => "]]"),
45  'COMMENT_REGEXP' => array(
46  4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
47  ),
48  'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
49  'QUOTEMARKS' => array('"', '`','\''),
50  'ESCAPE_CHAR' => '\\',
51  'KEYWORDS' => array(
52  // Blue - General Keywords
53  1 => array(
54  'and', 'begin', 'break', 'do', 'else', 'elseif', 'end',
55  'for', 'if', 'in', 'while', 'next', 'not', 'or', 'redo',
56  'then', 'unless', 'until', 'when', 'false', 'nil', 'self',
57  'true', 'local', 'this', 'return',
58  ),
59  // Dark Blue - Main API names
60  2 => array(
61  'animation', 'application', 'cache', 'camera', 'debug',
62  'dynamics', 'group', 'hashtable', 'hud', 'input', 'light',
63  'log', 'math', 'mesh', 'microphone', 'music', 'navigation',
64  'network', 'object', 'pixelmap', 'projector', 'scene',
65  'sensor', 'server', 'session', 'sfx', 'shape', 'sound',
66  'string', 'system', 'table', 'user', 'video', 'xml',
67  // Plugin API names
68  'plasma', 'watersim',
69  'winDirectories',
70  'ActionSheet', 'Alert', 'Mail', 'Picker', 'StatusBar',
71  ),
72  // Constants
73  // Can be commented out if performance is crucial -> then these keywords will appear in a slightly lighter color
74  3 => array(
75  //Animation
76  'kPlaybackModeLoop', 'kPlaybackModeLoopMirrored', 'kPlaybackModeLoopReversed',
77  'kPlaybackModeOnce', 'kPlaybackModeOnceReversed',
78  //Application - Environment
79  'kStatusLoading', 'kStatusReady', 'kStatusSaving', // 'kStatusNone'
80  //Application - Options
81  'kOptionAudioMasterVolume', 'kOptionAutomaticVirtualKeyboard', 'kOptionDynamicShadowsBufferCount',
82  'kOptionDynamicShadowsBufferSize', 'kOptionDynamicShadowsConstantSampling', 'kOptionDynamicShadowsPCFSampleCount',
83  'kOptionDynamicShadowsQuality', 'kOptionDynamicShadowsScreenSpaceBlur', 'kOptionFullscreen',
84  'kOptionFullscreenHeight', 'kOptionFullscreenWidth', 'kOptionHardwareOcclusion',
85  'kOptionMaxEventBouncesPerFrame', 'kOptionNetworkStreams', 'kOptionNetworkStreamsUseBrowser',
86  'kOptionPrioritizeEventBounces', 'kOptionRenderingEnabled', 'kOptionShadersQuality',
87  'kOptionSwapInterval', 'kOptionTerrainsQuality', 'kOptionTexturesAnisotropyLevel',
88  'kOptionTexturesMipmapBias', 'kOptionTexturesQuality', 'kOptionViewportRotation',
89  //Application - Resource Types
90  'kResourceTypeAnimBank', 'kResourceTypeFont', 'kResourceTypeHUD',
91  'kResourceTypeMaterial', 'kResourceTypeMesh', 'kResourceTypeParticle',
92  'kResourceTypePixelMap', 'kResourceTypeSoundBank', 'kResourceTypeTexture',
93  'kResourceTypeTextureClip', 'kResourceTypeTrail',
94  //Cache
95  'kPropertyHeight', 'kPropertySize', 'kPropertyWidth',
96  //Dynamics
97  'kAxisX', 'kAxisY', 'kAxisZ',
98  'kTypeBox', 'kTypeCapsule', 'kTypeSphere',
99  //HUD
100  'kAddressingModeClamp', 'kAddressingModeRepeat', 'kAlignCenter', 'kAlignJustify','kAlignLeft', 'kAlignRight',
101  'kAlignTop', 'kBlendModeAdd', 'kBlendModeDefault', 'kBlendModeModulate', 'kCaseFixed', 'kCaseVariable',
102  'kCommandTypeCallAction', 'kCommandTypeCopyCheckStateToRegister', 'kCommandTypeCopyEditTextToRegister',
103  'kCommandTypeCopyListItemTextToRegister', 'kCommandTypeCopyListLastSelectedItemToRegister',
104  'kCommandTypeCopyProgressValueToRegister', 'kCommandTypeCopySliderValueToRegister', 'kCommandTypeCopyTagToRegister',
105  'kCommandTypeEnterModalMode', 'kCommandTypeInterpolateBackgroundColor', 'kCommandTypeInterpolateBorderColor',
106  'kCommandTypeInterpolateForegroundColor', 'kCommandTypeInterpolateHeight', 'kCommandTypeInterpolateOpacity',
107  'kCommandTypeInterpolatePosition', 'kCommandTypeInterpolateProgressValue', 'kCommandTypeInterpolateRotation',
108  'kCommandTypeInterpolateSize', 'kCommandTypeInterpolateWidth', 'kCommandTypeLeaveModalMode',
109  'kCommandTypeMatchScreenSpaceBottomLeftCorner', 'kCommandTypeMatchScreenSpaceBottomRightCorner',
110  'kCommandTypeMatchScreenSpaceCenter', 'kCommandTypeMatchScreenSpaceHeight', 'kCommandTypeMatchScreenSpaceTopLeftCorner',
111  'kCommandTypeMatchScreenSpaceTopRightCorner', 'kCommandTypeMatchScreenSpaceWidth', 'kCommandTypePauseMovie',
112  'kCommandTypePauseSound', 'kCommandTypePauseTimer', 'kCommandTypePlayMovie', 'kCommandTypePlaySound',
113  'kCommandTypePlaySoundLoop', 'kCommandTypeResumeSound', 'kCommandTypeSendEventToUser', 'kCommandTypeSetActive',
114  'kCommandTypeSetBackgroundColor', 'kCommandTypeSetBackgroundImage', 'kCommandTypeSetBackgroundImageUVOffset',
115  'kCommandTypeSetBackgroundImageUVScale', 'kCommandTypeSetBorderColor', 'kCommandTypeSetButtonText',
116  'kCommandTypeSetCheckState', 'kCommandTypeSetCheckText', 'kCommandTypeSetCursorPosition', 'kCommandTypeSetCursorVisible',
117  'kCommandTypeSetEditText', 'kCommandTypeSetFocus', 'kCommandTypeSetForegroundColor', 'kCommandTypeSetHeight',
118  'kCommandTypeSetLabelText', 'kCommandTypeSetOpacity', 'kCommandTypeSetPosition', 'kCommandTypeSetRotation',
119  'kCommandTypeSetSize', 'kCommandTypeSetVisible', 'kCommandTypeSetWidth', 'kCommandTypeSleep', 'kCommandTypeStartTimer',
120  'kCommandTypeStopAction', 'kCommandTypeStopMovie', 'kCommandTypeStopSound', 'kCommandTypeStopTimer',
121  'kComponentTypeButton', 'kComponentTypeCheck', 'kComponentTypeContainer', 'kComponentTypeEdit', 'kComponentTypeLabel',
122  'kComponentTypeList', 'kComponentTypeMovie', 'kComponentTypePicture', 'kComponentTypePixelMap', 'kComponentTypeProgress',
123  'kComponentTypeRenderMap', 'kComponentTypeSlider', 'kCursorShapeCross', 'kCursorShapeDefault', 'kCursorShapeHandPointing',
124  'kCursorShapeIBeam', 'kCursorShapeNone', 'kCursorShapeWaiting', 'kDirectionLeftToRight', 'kDirectionRightToLeft',
125  'kEncodingASCII', 'kEncodingUTF8', 'kEventTypeGainFocus', 'kEventTypeLooseFocus', 'kEventTypeMouseEnter',
126  'kEventTypeMouseLeave', 'kFillModeSolid', 'kInterpolatorTypeLinear', 'kInterpolatorTypePower2', 'kInterpolatorTypePower3',
127  'kInterpolatorTypePower4', 'kInterpolatorTypeRoot2', 'kInterpolatorTypeRoot3', 'kInterpolatorTypeRoot4',
128  'kInterpolatorTypeSpring1', 'kInterpolatorTypeSpring2', 'kInterpolatorTypeSpring3', 'kInterpolatorTypeSpring4',
129  'kInterpolatorTypeSpring5', 'kInterpolatorTypeSpring6',
130  'kOriginBottom', 'kOriginBottomLeft', 'kOriginBottomRight', 'kOriginCenter', 'kOriginLeft', 'kOriginRight',
131  'kOriginTop', 'kOriginTopLeft', 'kOriginTopRight', 'kProgressTypeBottomToTop', 'kProgressTypeLeftToRight',
132  'kProgressTypeRightToLeft', 'kProgressTypeTopToBottom', 'kRuntimeValueCallArgument0', 'kRuntimeValueCallArgument1',
133  'kRuntimeValueCallArgument2', 'kRuntimeValueCallArgument3', 'kRuntimeValueCurrentUser', 'kRuntimeValueCurrentUserMainCamera',
134  'kRuntimeValueRegister0', 'kRuntimeValueRegister1', 'kRuntimeValueRegister2', 'kRuntimeValueRegister3',
135  'kShapeTypeEllipsoid', 'kShapeTypeRectangle', 'kShapeTypeRoundRectangle', 'kSliderTypeBottomToTop',
136  'kSliderTypeLeftToRight', 'kSliderTypeRightToLeft', 'kSliderTypeTopToBottom', 'kWaveTypeConstant',
137  'kWaveTypeSawtooth', 'kWaveTypeSawtoothInv', 'kWaveTypeSinus', 'kWaveTypeSinusNoise', 'kWaveTypeSquare', 'kWaveTypeTriangle',
138  //Input
139  'kJoypadTypeIPhone', 'kJoypadTypeNone', 'kJoypadTypePhone', 'kJoypadTypeStandard', 'kJoypadTypeWiimote',
140  'kKey0', 'kKey1', 'kKey2', 'kKey3', 'kKey4', 'kKey5', 'kKey6', 'kKey7', 'kKey8', 'kKey9', 'kKeyA', 'kKeyB',
141  'kKeyBackspace', 'kKeyC', 'kKeyD', 'kKeyDelete', 'kKeyDown', 'kKeyE', 'kKeyEnd', 'kKeyEscape', 'kKeyF',
142  'kKeyF1', 'kKeyF10', 'kKeyF11', 'kKeyF12', 'kKeyF2', 'kKeyF3', 'kKeyF4', 'kKeyF5', 'kKeyF6', 'kKeyF7',
143  'kKeyF8', 'kKeyF9', 'kKeyG', 'kKeyH', 'kKeyHome', 'kKeyI', 'kKeyInsert', 'kKeyJ', 'kKeyK', 'kKeyL',
144  'kKeyLAlt', 'kKeyLControl', 'kKeyLeft', 'kKeyLShift', 'kKeyM', 'kKeyN', 'kKeyO', 'kKeyP', 'kKeyPageDown',
145  'kKeyPageUp', 'kKeyQ', 'kKeyR', 'kKeyRAlt', 'kKeyRControl', 'kKeyReturn', 'kKeyRight', 'kKeyRShift',
146  'kKeyS', 'kKeySpace', 'kKeyT', 'kKeyTab', 'kKeyU', 'kKeyUp', 'kKeyV', 'kKeyW', 'kKeyX', 'kKeyY',
147  'kKeyZ', 'kJoypadButtonPSPCircle', 'kJoypadButtonPSPCross', 'kJoypadButtonPSPDown', 'kJoypadButtonPSPL',
148  'kJoypadButtonPSPLeft', 'kJoypadButtonPSPR', 'kJoypadButtonPSPRight', 'kJoypadButtonPSPSelect',
149  'kJoypadButtonPSPSquare', 'kJoypadButtonPSPStart', 'kJoypadButtonPSPTriangle', 'kJoypadButtonPSPUp',
150  'kJoypadTypePSP', 'kJoypadButtonWiimoteA', 'kJoypadButtonWiimoteB', 'kJoypadButtonWiimoteC',
151  'kJoypadButtonWiimoteDown', 'kJoypadButtonWiimoteHome', 'kJoypadButtonWiimoteLeft',
152  'kJoypadButtonWiimoteMinus', 'kJoypadButtonWiimoteOne', 'kJoypadButtonWiimotePlus',
153  'kJoypadButtonWiimoteRight', 'kJoypadButtonWiimoteTwo', 'kJoypadButtonWiimoteUp', 'kJoypadButtonWiimoteZ',
154  //Light
155  'kTypeDirectional', 'kTypePoint',
156  //Math
157  'kEpsilon', 'kInfinity', 'kPi',
158  //Mesh
159  'kLockModeRead', 'kLockModeWrite', 'kLockReadWrite',
160  //Network
161  'kBluetoothServerPort', 'kDefaultServerPort', 'kStatusAuthenticated', 'kStatusSearchFinished', // 'kStatusNone', 'kStatusPending',
162  //Object
163  'kControllerTypeAI', 'kControllerTypeAnimation', 'kControllerTypeAny', 'kControllerTypeDynamics',
164  'kControllerTypeNavigation', 'kControllerTypeSound', 'kGlobalSpace', 'kLocalSpace', 'kParentSpace',
165  'kTransformOptionInheritsParentRotation', 'kTransformOptionInheritsParentScale', 'kTransformOptionInheritsParentTranslation',
166  'kTransformOptionTranslationAffectedByParentRotation', 'kTransformOptionTranslationAffectedByParentScale', 'kTypeCamera',
167  'kTypeCollider', 'kTypeDummy', 'kTypeGroup', 'kTypeLight', 'kTypeOccluder', 'kTypeProjector', 'kTypeReflector',
168  'kTypeSensor', 'kTypeSfx', 'kTypeShape',
169  //Pixelmap
170  'kBlendModeDecal', 'kBlendModeReplace', 'kFillModeBrush', 'kFillModeNone', 'kPenModeBrush', // 'kFillModeSolid',
171  'kPenModeNone', 'kPenModeSolid',
172  //Projector
173  'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
174  //Scene
175  'kFilteringModeBilinear', 'kFilteringModeNearest', 'kFilteringModeTrilinear', // 'kAddressingModeClamp', 'kAddressingModeRepeat',
176  'kSkyBoxFaceBack', 'kSkyBoxFaceBottom', 'kSkyBoxFaceFront', 'kSkyBoxFaceLeft', 'kSkyBoxFaceRight', 'kSkyBoxFaceTop',
177  //Sensor
178  'kShapeTypeBox', 'kShapeTypeSphere',
179  //Server
180  'kStatusConnected', 'kStatusNone', 'kStatusPending',
181  //Session - duplicate keywords
182  //'kStatusConnected', 'kStatusNone', 'kStatusPending',
183  //Shape
184  'kMapTypeUnknown', 'kCurveTypeBezier', 'kCurveTypeBSpline', 'kCurveTypeCatmullRom', 'kCurveTypePolyLine',
185  // 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
186 
187  //System
188  'kOSType3DS', 'kOSTypeBada', 'kOSTypeBrew', 'kOSTypePalm', 'kOSTypePS3',
189  'kClientTypeEditor', 'kClientTypeEmbedded', 'kClientTypeStandalone',
190  'kGPUCapabilityBloomFilterSupport', 'kGPUCapabilityContrastFilterSupport', 'kGPUCapabilityDepthBlurFilterSupport',
191  'kGPUCapabilityDistortionFilterSupport', 'kGPUCapabilityDynamicShadowsSupport', 'kGPUCapabilityHardwareOcclusionSupport',
192  'kGPUCapabilityHardwareRenderingSupport', 'kGPUCapabilityMonochromeFilterSupport', 'kGPUCapabilityMotionBlurFilterSupport',
193  'kGPUCapabilityPixelShaderSupport', 'kGPUCapabilityVelocityBlurFilterSupport', 'kGPUCapabilityVertexShaderSupport',
194  'kLanguageAlbanian', 'kLanguageArabic', 'kLanguageBulgarian', 'kLanguageCatalan', 'kLanguageCzech', 'kLanguageDanish',
195  'kLanguageDutch', 'kLanguageEnglish', 'kLanguageFinnish', 'kLanguageFrench', 'kLanguageGerman', 'kLanguageGreek',
196  'kLanguageHebrew', 'kLanguageHungarian', 'kLanguageIcelandic', 'kLanguageItalian', 'kLanguageJapanese', 'kLanguageKorean',
197  'kLanguageNorwegian', 'kLanguagePolish', 'kLanguagePortuguese', 'kLanguageRomanian', 'kLanguageRussian',
198  'kLanguageSerboCroatian', 'kLanguageSlovak', 'kLanguageSpanish', 'kLanguageSwedish', 'kLanguageThai',
199  'kLanguageTurkish', 'kLanguageUnknown', 'kLanguageUrdu', 'kOSTypeAndroid', 'kOSTypeAngstrom', 'kOSTypeIPhone',
200  'kOSTypeLinux', 'kOSTypeMac', 'kOSTypePSP', 'kOSTypeSymbian', 'kOSTypeWii', 'kOSTypeWindows', 'kOSTypeWindowsCE',
201  ),
202  // Not used yet
203  4 => array(
204  'dummycommand',
205  ),
206  ),
207  'SYMBOLS' => array(
208  '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
209  '+', '-', '=>', '<<'
210  ),
211  'CASE_SENSITIVE' => array(
212  GESHI_COMMENTS => false,
213  1 => false,
214  2 => false,
215  3 => false,
216  4 => true,
217  ),
218  'STYLES' => array(
219  'KEYWORDS' => array(
220  1 => 'color:#0000FF; font-weight:bold;',
221  2 => 'color:#000088; font-weight:bold;',
222  3 => 'color:#C088C0; font-weight:bold;',
223  4 => 'color:#00FEFE; font-weight:bold;',
224  ),
225  'COMMENTS' => array(
226  1 => 'color:#008000; font-style:italic;',
227  4 => 'color: #cc0000; font-style: italic;',
228  'MULTI' => 'color:#008000; font-style:italic;'
229  ),
230  'ESCAPE_CHAR' => array(
231  0 => 'color:#000099;'
232  ),
233  'BRACKETS' => array(
234  0 => 'color:#000000; font-weight:bold;'
235  ),
236  'STRINGS' => array(
237  0 => 'color:#888800;'
238  ),
239  'NUMBERS' => array(
240  0 => 'color:#AA0000;'
241  ),
242  // names after "."
243  'METHODS' => array(
244  1 => 'color:#FF00FF; font-weight:bold;'
245  ),
246  'SYMBOLS' => array(
247  0 => 'color:#000000; font-weight:bold;'
248  ),
249  'REGEXPS' => array(
250  0 => 'color:#ff6633; font-weight:bold;',
251  1 => 'color:#0066ff; font-weight:bold;',
252  2 => 'color:#6666ff; font-weight:bold;',
253  3 => 'color:#ff3333; font-weight:bold;'
254  ),
255  'SCRIPT' => array(
256  0 => '',
257  1 => '',
258  2 => '',
259  )
260  ),
261  'URLS' => array(
262  1 => '',
263  2 => '',
264  3 => '',
265  4 => ''
266  ),
267  'OOLANG' => true,
268  'OBJECT_SPLITTERS' => array(
269  1 => '.'
270  ),
271  'REGEXPS' => array(
272  0 => array(//Variables
273  GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
274  GESHI_REPLACE => '\\2',
275  GESHI_MODIFIERS => '',
276  GESHI_BEFORE => '\\1',
277  GESHI_AFTER => ''
278  ),
279  1 => array(//Arrays
280  GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
281  GESHI_REPLACE => '\\2',
282  GESHI_MODIFIERS => '',
283  GESHI_BEFORE => '\\1',
284  GESHI_AFTER => ''
285  ),
286  2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
287  3 => array(
288  GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
289  GESHI_REPLACE => '\\2',
290  GESHI_MODIFIERS => '',
291  GESHI_BEFORE => '\\1',
292  GESHI_AFTER => ''
293  )
294  ),
295  'STRICT_MODE_APPLIES' => GESHI_MAYBE,
296  'SCRIPT_DELIMITERS' => array(
297  0 => array(
298  '<%' => '%>'
299  )
300  ),
301  'HIGHLIGHT_STRICT_BLOCK' => array(
302  0 => true,
303  ),
304  'TAB_WIDTH' => 2
305 );
const GESHI_MODIFIERS
The key of the regex array defining any modifiers to the regular expression.
Definition: geshi.php:137
const GESHI_BEFORE
The key of the regex array defining what bracket group in a matched search to put before the replacem...
Definition: geshi.php:140
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:149
const GESHI_REPLACE
The key of the regex array defining what bracket group in a matched search to use as a replacement...
Definition: geshi.php:135
$language_data
Definition: stonescript.php:41
const GESHI_SEARCH
The key of the regex array defining what to search for.
Definition: geshi.php:132
const GESHI_MAYBE
Strict mode might apply, and can be enabled or disabled by GeSHi->enable_strict_mode().
Definition: geshi.php:126
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:94
const GESHI_AFTER
The key of the regex array defining what bracket group in a matched search to put after the replaceme...
Definition: geshi.php:143