2 /*************************************************************************************
5 * Author: William Fry (william.fry@nyu.edu)
6 * Copyright: (c) 2009 William Fry
7 * Release Version: 1.0.8.4
8 * Date Started: 2009/02/04
10 * Linden Scripting Language (LSL2) language file for GeSHi.
12 * Data derived and validated against the following:
13 * http://wiki.secondlife.com/wiki/LSL_Portal
14 * http://www.lslwiki.net/lslwiki/wakka.php?wakka=HomePage
15 * http://rpgstats.com/wiki/index.php?title=Main_Page
22 * TODO (updated 2009/02/05)
23 * -------------------------
25 *************************************************************************************
27 * This file is part of GeSHi.
29 * GeSHi is free software; you can redistribute it and/or modify
30 * it under the terms of the GNU General Public License as published by
31 * the Free Software Foundation; either version 2 of the License, or
32 * (at your option) any later version.
34 * GeSHi is distributed in the hope that it will be useful,
35 * but WITHOUT ANY WARRANTY; without even the implied warranty of
36 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 * GNU General Public License for more details.
39 * You should have received a copy of the GNU General Public License
40 * along with GeSHi; if not, write to the Free Software
41 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
43 ************************************************************************************/
45 $language_data = array (
46 'LANG_NAME' => 'LSL2',
47 'COMMENT_SINGLE' => array(1 => '//'),
48 'COMMENT_MULTI' => array(),
49 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE
,
50 'QUOTEMARKS' => array('"'),
51 'ESCAPE_CHAR' => '\\',
53 1 => array( // flow control
63 2 => array( // manifest constants
87 'ATTACH_HUD_BOTTOM_LEFT',
88 'ATTACH_HUD_BOTTOM_RIGHT',
89 'ATTACH_HUD_CENTER_1',
90 'ATTACH_HUD_CENTER_2',
91 'ATTACH_HUD_TOP_CENTER',
92 'ATTACH_HUD_TOP_LEFT',
93 'ATTACH_HUD_TOP_RIGHT',
120 'CAMERA_BEHINDNESS_ANGLE',
121 'CAMERA_BEHINDNESS_LAG',
125 'CAMERA_FOCUS_LOCKED',
126 'CAMERA_FOCUS_OFFSET',
127 'CAMERA_FOCUS_THRESHOLD',
130 'CAMERA_POSITION_LAG',
131 'CAMERA_POSITION_LOCKED',
132 'CAMERA_POSITION_THRESHOLD',
133 'CHANGED_ALLOWED_DROP',
145 'CLICK_ACTION_OPEN_MEDIA',
148 'CLICK_ACTION_TOUCH',
154 'CONTROL_ML_LBUTTON',
171 'HTTP_BODY_MAXLENGTH',
172 'HTTP_BODY_TRUNCATED',
177 'INVENTORY_ANIMATION',
178 'INVENTORY_BODYPART',
179 'INVENTORY_CLOTHING',
181 'INVENTORY_LANDMARK',
183 'INVENTORY_NOTECARD',
199 'LIST_STAT_GEOMETRIC_MEAN',
204 'LIST_STAT_NUM_COUNT',
208 'LIST_STAT_SUM_SQUARES',
223 'OBJECT_UNKNOWN_DETAIL',
225 'PARCEL_DETAILS_AREA',
226 'PARCEL_DETAILS_DESC',
227 'PARCEL_DETAILS_GROUP',
228 'PARCEL_DETAILS_NAME',
229 'PARCEL_DETAILS_OWNER',
230 'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY',
231 'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS',
232 'PARCEL_FLAG_ALLOW_CREATE_OBJECTS',
233 'PARCEL_FLAG_ALLOW_DAMAGE',
234 'PARCEL_FLAG_ALLOW_FLY',
235 'PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY',
236 'PARCEL_FLAG_ALLOW_GROUP_SCRIPTS',
237 'PARCEL_FLAG_ALLOW_LANDMARK',
238 'PARCEL_FLAG_ALLOW_SCRIPTS',
239 'PARCEL_FLAG_ALLOW_TERRAFORM',
240 'PARCEL_FLAG_LOCAL_SOUND_ONLY',
241 'PARCEL_FLAG_RESTRICT_PUSHOBJECT',
242 'PARCEL_FLAG_USE_ACCESS_GROUP',
243 'PARCEL_FLAG_USE_ACCESS_LIST',
244 'PARCEL_FLAG_USE_BAN_LIST',
245 'PARCEL_FLAG_USE_LAND_PASS_LIST',
246 'PARCEL_MEDIA_COMMAND_AGENT',
247 'PARCEL_MEDIA_COMMAND_AUTO_ALIGN',
248 'PARCEL_MEDIA_COMMAND_DESC',
249 'PARCEL_MEDIA_COMMAND_LOOP_SET',
250 'PARCEL_MEDIA_COMMAND_PAUSE',
251 'PARCEL_MEDIA_COMMAND_PLAY',
252 'PARCEL_MEDIA_COMMAND_SIZE',
253 'PARCEL_MEDIA_COMMAND_STOP',
254 'PARCEL_MEDIA_COMMAND_TEXTURE',
255 'PARCEL_MEDIA_COMMAND_TIME',
256 'PARCEL_MEDIA_COMMAND_TYPE',
257 'PARCEL_MEDIA_COMMAND_URL',
259 'PAYMENT_INFO_ON_FILE',
264 'PERMISSION_CHANGE_LINKS',
265 'PERMISSION_CONTROL_CAMERA',
267 'PERMISSION_TAKE_CONTROLS',
268 'PERMISSION_TRACK_CAMERA',
269 'PERMISSION_TRIGGER_ANIMATION',
282 'PRIM_BUMP_CONCRETE',
286 'PRIM_BUMP_LARGETILE',
301 'PRIM_HOLE_TRIANGLE',
303 'PRIM_MATERIAL_FLESH',
304 'PRIM_MATERIAL_GLASS',
305 'PRIM_MATERIAL_LIGHT',
306 'PRIM_MATERIAL_METAL',
307 'PRIM_MATERIAL_PLASTIC',
308 'PRIM_MATERIAL_RUBBER',
309 'PRIM_MATERIAL_STONE',
310 'PRIM_MATERIAL_WOOD',
324 'PRIM_TYPE_CYLINDER',
330 'PSYS_PART_BOUNCE_MASK',
331 'PSYS_PART_EMISSIVE_MASK',
332 'PSYS_PART_END_ALPHA',
333 'PSYS_PART_END_COLOR',
334 'PSYS_PART_END_SCALE',
336 'PSYS_PART_FOLLOW_SRC_MASK',
337 'PSYS_PART_FOLLOW_VELOCITY_MASK',
338 'PSYS_PART_INTERP_COLOR_MASK',
339 'PSYS_PART_INTERP_SCALE_MASK',
341 'PSYS_PART_START_ALPHA',
342 'PSYS_PART_START_COLOR',
343 'PSYS_PART_START_SCALE',
344 'PSYS_PART_TARGET_LINEAR_MASK',
345 'PSYS_PART_TARGET_POS_MASK',
346 'PSYS_PART_WIND_MASK',
348 'PSYS_SRC_ANGLE_BEGIN',
349 'PSYS_SRC_ANGLE_END',
350 'PSYS_SRC_BURST_PART_COUNT',
351 'PSYS_SRC_BURST_RADIUS',
352 'PSYS_SRC_BURST_RATE',
353 'PSYS_SRC_BURST_SPEED_MAX',
354 'PSYS_SRC_BURST_SPEED_MIN',
355 'PSYS_SRC_INNERANGLE',
358 'PSYS_SRC_OUTERANGLE',
360 'PSYS_SRC_PATTERN_ANGLE',
361 'PSYS_SRC_PATTERN_ANGLE_CONE',
362 'PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY',
363 'PSYS_SRC_PATTERN_DROP',
364 'PSYS_SRC_PATTERN_EXPLODE',
365 'PSYS_SRC_TARGET_KEY',
368 'REMOTE_DATA_CHANNEL',
369 'REMOTE_DATA_REQUEST',
373 'STATUS_DIE_AT_EDGE',
376 'STATUS_RETURN_AT_EDGE',
383 'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY',
384 'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE',
385 'VEHICLE_ANGULAR_FRICTION_TIMESCALE',
386 'VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE',
387 'VEHICLE_ANGULAR_MOTOR_DIRECTION',
388 'VEHICLE_ANGULAR_MOTOR_TIMESCALE',
389 'VEHICLE_BANKING_EFFICIENCY',
390 'VEHICLE_BANKING_MIX',
391 'VEHICLE_BANKING_TIMESCALE',
393 'VEHICLE_FLAG_CAMERA_DECOUPLED',
394 'VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT',
395 'VEHICLE_FLAG_HOVER_TERRAIN_ONLY',
396 'VEHICLE_FLAG_HOVER_UP_ONLY',
397 'VEHICLE_FLAG_HOVER_WATER_ONLY',
398 'VEHICLE_FLAG_LIMIT_MOTOR_UP',
399 'VEHICLE_FLAG_LIMIT_ROLL_ONLY',
400 'VEHICLE_FLAG_MOUSELOOK_BANK',
401 'VEHICLE_FLAG_MOUSELOOK_STEER',
402 'VEHICLE_FLAG_NO_DEFLECTION_UP',
403 'VEHICLE_HOVER_EFFICIENCY',
404 'VEHICLE_HOVER_HEIGHT',
405 'VEHICLE_HOVER_TIMESCALE',
406 'VEHICLE_LINEAR_DEFLECTION_EFFICIENCY',
407 'VEHICLE_LINEAR_DEFLECTION_TIMESCALE',
408 'VEHICLE_LINEAR_FRICTION_TIMESCALE',
409 'VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE',
410 'VEHICLE_LINEAR_MOTOR_DIRECTION',
411 'VEHICLE_LINEAR_MOTOR_OFFSET',
412 'VEHICLE_LINEAR_MOTOR_TIMESCALE',
413 'VEHICLE_REFERENCE_FRAME',
414 'VEHICLE_TYPE_AIRPLANE',
415 'VEHICLE_TYPE_BALLOON',
420 'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY',
421 'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE',
425 3 => array( // handlers
438 'land_collision_end',
439 'land_collision_start',
451 'run_time_permissions',
460 4 => array( // data types
469 5 => array( // library
473 'llAddToLandBanList',
474 'llAddToLandPassList',
475 'llAdjustSoundVolume',
476 'llAllowInventoryDrop',
479 'llApplyRotationalImpulse',
483 'llAvatarOnSitTarget',
491 'llClearCameraParams',
492 'llCloseRemoteDataChannel',
502 'llDetachFromAvatar',
506 'llDetectedLinkNumber',
511 'llDetectedTouchBinormal',
512 'llDetectedTouchFace',
513 'llDetectedTouchNormal',
514 'llDetectedTouchPos',
533 'llGetAgentLanguage',
538 'llGetAnimationList',
550 'llGetGeometricCenter',
552 'llGetInventoryCreator',
554 'llGetInventoryName',
555 'llGetInventoryNumber',
556 'llGetInventoryPermMask',
557 'llGetInventoryType',
563 'llGetListEntryType',
570 'llGetNumberOfNotecardLines',
571 'llGetNumberOfPrims',
572 'llGetNumberOfSides',
574 'llGetObjectDetails',
577 'llGetObjectPermMask',
578 'llGetObjectPrimCount',
582 'llGetParcelDetails',
584 'llGetParcelMaxPrims',
585 'llGetParcelPrimCount',
586 'llGetParcelPrimOwners',
588 'llGetPermissionsKey',
590 'llGetPrimitiveParams',
591 'llGetRegionAgentCount',
596 'llGetRegionTimeDilation',
603 'llGetSimulatorHostname',
604 'llGetStartParameter',
609 'llGetTextureOffset',
620 'llGiveInventoryList',
637 'llList2ListStrided',
665 'llOpenRemoteDataChannel',
668 'llParcelMediaCommandList',
669 'llParcelMediaQuery',
670 'llParseString2List',
671 'llParseStringKeepNulls',
683 'llRemoteDataSetRegion',
684 'llRemoteLoadScriptPin',
685 'llRemoveFromLandBanList',
686 'llRemoveFromLandPassList',
688 'llRemoveVehicleFlags',
689 'llRequestAgentData',
690 'llRequestInventoryData',
691 'llRequestPermissions',
692 'llRequestSimulatorData',
693 'llResetLandBanList',
694 'llResetLandPassList',
695 'llResetOtherScript',
722 'llSetCameraAtOffset',
723 'llSetCameraEyeOffset',
729 'llSetForceAndTorque',
733 'llSetLinkPrimitiveParams',
738 'llSetParcelMusicURL',
741 'llSetPrimitiveParams',
742 'llSetRemoteScriptAccessPin',
747 'llSetSoundQueueing',
757 'llSetVehicleFloatParam',
758 'llSetVehicleRotationParam',
760 'llSetVehicleVectorParam',
771 'llStopMoveToTarget',
782 'llTeleportAgentHome',
786 'llTriggerSoundLimited',
796 'llXorBase64StringsCorrect',
798 6 => array( // deprecated
805 'llXorBase64Strings',
807 7 => array( // unimplemented
811 'llRemoteLoadScript',
817 8 => array( // God mode
818 'llGodLikeRezObject',
819 'llSetInventoryPermMask',
820 'llSetObjectPermMask',
824 '{', '}', '(', ')', '[', ']',
825 '=', '+', '-', '*', '/',
826 '+=', '-=', '*=', '/=', '++', '--',
827 '!', '%', '&', '|', '&&', '||',
828 '==', '!=', '<', '>', '<=', '>=',
829 '~', '<<', '>>', '^', ':',
831 'CASE_SENSITIVE' => array(
832 GESHI_COMMENTS
=> true,
844 1 => 'color: #0000ff;',
845 2 => 'color: #000080;',
846 3 => 'color: #008080;',
847 4 => 'color: #228b22;',
848 5 => 'color: #b22222;',
849 6 => 'color: #8b0000; background-color: #ffff00;',
850 7 => 'color: #8b0000; background-color: #fa8072;',
851 8 => 'color: #000000; background-color: #ba55d3;',
854 1 => 'color: #ff7f50; font-style: italic;',
856 'ESCAPE_CHAR' => array(
857 0 => 'color: #000099;'
860 0 => 'color: #000000;'
863 0 => 'color: #006400;'
866 0 => 'color: #000000;'
871 0 => 'color: #000000;'
881 3 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
882 4 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
883 5 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
884 6 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
885 7 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
886 8 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
889 'OBJECT_SPLITTERS' => array(),
892 'STRICT_MODE_APPLIES' => GESHI_NEVER
,
893 'SCRIPT_DELIMITERS' => array(
895 'HIGHLIGHT_STRICT_BLOCK' => array(