-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathOSSL.sublime-syntax
204 lines (201 loc) · 22 KB
/
OSSL.sublime-syntax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
%YAML 1.2
---
# NOTE: Following definitions are taken from kwdb (https://bitbucket.org/Sei_Lisa/kwdb).
# Should you have any question about the avoid/event/function/constant
# definitions, please check with the kwdb project and contact the kwdb
# maintainer first. If kwdb have updated their database version and mine is
# still old, please let me know.
# Generated by LSL2 Derived Files Generator. Database version: 0.0.20230409000
name: OSSL
file_extensions:
- ossl
scope: source.ossl
contexts:
main:
- include: value
array:
- match: '\['
captures:
0: punctuation.section.array.begin.ossl
push:
- meta_scope: meta.inarray.ossl
- match: '\]'
captures:
0: punctuation.section.array.end.ossl
pop: true
- include: infunc
avoid:
- match: '\b(?:ll(?:S(?:et(?:(?:Inventory|Object)PermMask|PrimURL)|oun(?:dPreloa)?d|topPointAt)|Re(?:mote(?:DataSetRegion|LoadScript)|freshPrimURL|leaseCamera)|Make(?:F(?:ountain|ire)|Explosion|Smoke)|XorBase64Strings(?:Correct)?|(?:GodLikeRezObjec|PointA)t|C(?:ollisionSprite|loud)|TakeCamera)|P(?:ERMISSION_(?:RE(?:LEASE_OWNERSHIP|MAP_CONTROLS)|CHANGE_(?:PERMISSION|JOINT)S)|RIM_(?:MATERIAL_LIGHT|CAST_SHADOWS)|SYS_SRC_(?:INN|OUT)ERANGLE)|os(?:S(?:un[GS]etParam|etPenColour)|Terrain[GS]etHeight|ParcelSetDetails)|LAND_(?:MEDIUM|LARGE|SMALL)_BRUSH|TARGETED_EMAIL_ROOT_CREATOR|VEHICLE_FLAG_NO_FLY_UP|STATUS_CAST_SHADOWS|ATTACH_[LR]PEC|DATA_RATING)\b'
scope: invalid.deprecated.ossl
begin_end:
- match: '\{'
push:
- meta_scope: meta.incode.ossl
- match: '\}'
pop: true
- include: infunc
commentblock:
- match: /\*
push:
- meta_scope: comment.block.ossl
- match: \*/
pop: true
commentline:
- match: (//).*$\n?
scope: comment.line.double-slash.ossl
constant:
- match: \b(default|state)\b
scope: constant.language.state.ossl
- match: \b(TRUE|FALSE)\b
scope: constant.language.integer.ossl
- match: \b(NULL_KEY|EOF)\b
scope: constant.language.string.ossl
event:
- match: ^\s*(?:l(?:and_collision(?:_(?:start|end))?|i(?:nk_message|sten))|t(?:ouch(?:_(?:start|end))?|ransaction_result|imer)|c(?:o(?:llision(?:_(?:start|end))?|ntrol)|hanged)|r(?:un_time_permissions|emote_data)|no(?:t_a(?:t_ro)?t_target|_sensor)|s(?:tate_e(?:ntry|xit)|ensor)|mo(?:ving_(?:start|end)|ney)|at(?:(?:_rot)?_target|tach)|http_re(?:sponse|quest)|o(?:bject|n)_rez|dataserver|email)\b
captures:
0: support.function.event.ossl
push:
- meta_scope: meta.event.ossl
- match: '\}'
captures:
0: punctuation.section.event.end.ossl
pop: true
- match: \(
push:
- meta_scope: meta.event.parameters.ossl
- match: \)
pop: true
- include: inparam
- match: '{'
push:
- meta_scope: meta.event.body.ossl
- match: '(?=})'
pop: true
- include: infunc
- include: commentblock
- include: commentline
flow_control:
- match: \b(jump|return|if|else|for|do|while|@)\b
scope: keyword.control.flow.ossl
functiondef:
- match: (?:\w+\s+)?(\w+)?\s*(?=\(.*?)
captures:
0: punctuation.section.function.begin.ossl
1: entity.name.function.ossl
push:
- meta_scope: meta.function.ossl
- match: '}'
captures:
0: punctuation.section.function.end.ossl
pop: true
- match: \(
push:
- meta_scope: meta.function.parameters.ossl
- match: \)
pop: true
- include: inparam
- match: '{'
push:
- meta_scope: meta.function.body.ossl
- match: '(?=})'
pop: true
- include: infunc
- include: commentblock
- include: commentline
infunc:
- include: begin_end
- include: commentblock
- include: commentline
- include: array
- include: quoted
- include: flow_control
- include: constant
- include: storage_type
- include: osslconstant
- include: avoid
- include: reserved
- include: osslfunction
- include: number
- include: operator
inparam:
- include: storage_type
- include: commentblock
- include: commentline
number:
- match: '\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^a-zA-Z_])'
scope: constant.numeric.float.ossl
- match: '(?<=[^0-9a-zA-Z_])(?i:(\.\d+(e[\-\+]?\d+)?))'
scope: constant.numeric.float.ossl
- match: '\b(?i:(\d+e[\-\+]?\d+))'
scope: constant.numeric.float.ossl
- match: \b(?i:(0x\h*))
scope: constant.numeric.integer.hexadecimal.ossl
- match: '\b(0[0-7]+)'
scope: constant.numeric.integer.octal.ossl
- match: '\b([1-9]+[0-9]*|0)'
scope: constant.numeric.integer.decimal.ossl
operator:
- match: '[\=\+\-%&<>^|\*!~]'
scope: keyword.operator.ossl
osslconstant:
- match: '\b(?:P(?:R(?:IM_(?:M(?:EDIA_(?:PERM(?:_(?:(?:ANY|N)ONE|GROUP|OWNER)|S_(?:INTERACT|CONTROL))|A(?:UTO_(?:SCALE|LOOP|PLAY|ZOOM)|LT_IMAGE_ENABLE)|C(?:ONTROLS(?:_(?:STANDARD|MINI))?|URRENT_URL)|W(?:HITELIST(?:_ENABLE)?|IDTH_PIXELS)|H(?:EIGHT_PIXELS|OME_URL)|FIRST_CLICK_INTERACT)|ATERIAL(?:_(?:PLASTIC|RUBBER|FLESH|GLASS|METAL|STONE|WOOD))?)|S(?:C(?:ULPT_(?:TYPE_(?:(?:SPHER|PLAN)E|CYLINDER|TORUS|MASK)|FLAG_(?:INVERT|MIRROR))|RIPTED_SIT_ONLY)|HINY_(?:MEDIUM|HIGH|NONE|LOW)|I(?:T_TARGET|ZE)|PECULAR|LICE)|BUMP_(?:S(?:T(?:UCCO|ONE)|UCTION|IDING|HINY)|B(?:RI(?:CKS|GHT)|LOBS|ARK)|(?:(?:LARGE)?TIL|NON)E|C(?:ONCRETE|HECKER)|D(?:ISKS|ARK)|W(?:EAVE|OOD)|GRAVEL)|T(?:YPE(?:_(?:S(?:CULPT|PHERE)|T(?:ORUS|UBE)|CYLINDER|PRISM|RING|BOX))?|E(?:X(?:GEN(?:_(?:DEFAULT|PLANAR))?|T(?:URE)?)|MP_ON_REZ))|P(?:H(?:YSICS(?:_(?:SHAPE_(?:(?:NON|TYP)E|CONVEX|PRIM)|MATERIAL))?|ANTOM)|O(?:S(?:_LOCAL|ITION)|INT_LIGHT))|AL(?:PHA_MODE(?:_(?:(?:EMISSIV|NON)E|BLEND|MASK))?|LOW_UNSIT)|HOLE_(?:(?:(?:TRIANG|CIRC)L|SQUAR)E|DEFAULT)|F(?:ULLBRIGHT|LEXIBLE)|ROT(?:_LOCAL|ATION)|N(?:ORMAL|AME)|LINK_TARGET|COLOR|OMEGA|DESC|GLOW)|OFILE_(?:SCRIPT_MEMORY|NONE))|A(?:RCEL_(?:FLAG_(?:ALLOW_(?:(?:CREATE(?:_GROUP)?_OBJEC|SCRIP)TS|GROUP_(?:OBJECT_ENTRY|SCRIPTS)|(?:ALL_OBJECT_ENTR|FL)Y|TERRAFORM|LANDMARK|DAMAGE)|USE_(?:(?:LAND_PASS|BAN)_LIST|ACCESS_(?:GROUP|LIST))|RESTRICT_PUSHOBJECT|LOCAL_SOUND_ONLY)|DETAILS_(?:A(?:NY_AVATAR_SOUNDS|REA)|(?:CLAIMDAT|NAM)E|GROUP(?:_SOUNDS)?|D(?:WELL|ESC)|SEE_AVATARS|OWNER|ID)|MEDIA_COMMAND_(?:A(?:UTO_ALIGN|GENT)|T(?:EXTUR|IM|YP)E|P(?:AUSE|LAY)|U(?:NLOAD|RL)|S(?:IZE|TOP)|DESC|LOOP)|COUNT_(?:T(?:OTAL|EMP)|O(?:TH|WN)ER|SELECTED|GROUP))|Y_(?:DEFAULT|HIDE)|SSIVE)|SYS_(?:PART_(?:B(?:F_(?:ONE(?:_MINUS_(?:SOURCE_(?:ALPHA|COLOR)|DEST_COLOR))?|SOURCE_(?:ALPHA|COLOR)|DEST_COLOR|ZERO)|LEND_FUNC_(?:SOURCE|DEST)|OUNCE_MASK)|(?:INTERP_(?:COLOR|SCALE)|TARGET_(?:LINEAR|POS)|RIBBON|WIND)_MASK|E(?:ND_(?:ALPHA|COLOR|SCALE|GLOW)|MISSIVE_MASK)|F(?:OLLOW_(?:VELOCITY|SRC)_MASK|LAGS)|START_(?:ALPHA|COLOR|SCALE|GLOW)|MAX_AGE)|SRC_(?:PATTERN(?:_(?:ANGLE(?:_CONE(?:_EMPTY)?)?|EXPLODE|DROP))?|BURST_(?:SPEED_M(?:AX|IN)|RA(?:DIUS|TE)|PART_COUNT)|A(?:NGLE_(?:BEGIN|END)|CCEL)|T(?:ARGET_KEY|EXTURE)|MAX_AGE|OMEGA))|ERM(?:ISSION_(?:T(?:R(?:IGGER_ANIMATION|ACK_CAMERA)|AKE_CONTROLS|ELEPORT)|(?:OVERRIDE_ANIMATION|RETURN_OBJECT)S|(?:SILENT_ESTATE_MANAGEMEN|DEBI)T|C(?:ONTROL_CAMERA|HANGE_LINKS)|ATTACH)|_(?:MO(?:DIFY|VE)|TRANSFER|COPY|ALL))|UBLIC_CHANNEL|ING_PONG)|O(?:BJECT_(?:P(?:H(?:YSICS(?:_COST)?|ANTOM)|RIM_(?:EQUIVALENCE|COUNT)|ATHFINDING_TYPE|OS)|S(?:(?:E(?:LECT_COUN|RVER_COS)|TREAMING_COS|IT_COUN)T|CRIPT_(?:MEMORY|TIME))|A(?:NIMATED_(?:SLOTS_AVAILABLE|COUNT)|TTACHED_(?:SLOTS_AVAILABLE|POINT))|T(?:OTAL_(?:INVENTORY|SCRIPT)_COUNT|EMP_(?:ATTACHED|ON_REZ))|R(?:(?:UNNING_SCRIPT_COUN|O?O)T|E(?:NDER_WEIGHT|ZZER_KEY))|C(?:REAT(?:ION_TIME|OR)|HARACTER_TIME|LICK_ACTION)|(?:BODY_SHAPE_TYP|NAM)E|GROUP(?:_TAG)?|O(?:MEGA|WNER)|UNKNOWN_DETAIL|LAST_OWNER_ID|HOVER_HEIGHT|VELOCITY|DESC)|S(?:_(?:NPC_(?:S(?:ENSE_AS_AGENT|IT_NOW)|NO(?:T_OWNED|_FLY)|LAND_AT_TARGET|CREATOR_OWNED|OBJECT_GROUP|RUNNING|FLY)|L(?:TPAG_(?:USE(?:LOOKAT|VEL)|FORCE(?:NO)?FLY|ALGNLV|NONE)|ISTEN_REGEX_(?:MESSAG|NAM)E)|A(?:TTACH_MSG_(?:(?:OBJEC|SCRIP)T_CREATOR|INVERT_POINTS|ALL)|PIVERSION))|TPOBJ_(?:S(?:TOP(?:ATTARGET|ONFAIL)|ETROT)|NONE))|PT_(?:(?:(?:EXCLUSION|MATERIAL)_VOLUM|(?:STATIC_OBSTAC|WALKAB)L)E|(?:(?:CHARACT|OTH)E|AVATA)R|LEGACY_LINKSET))|VEHICLE_(?:FLAG_(?:L(?:OCK_(?:HOVER_HEIGHT|ROTATION)|IMIT_(?:ROLL_ONLY|MOTOR_UP))|HOVER_(?:(?:TERRAIN|WATER|UP)_ONLY|GLOBAL_HEIGHT)|NO_(?:[XYZ]|DEFLECTION(?:_UP)?)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED)|LINEAR_(?:MOTOR_(?:D(?:ECAY_TIMESCALE|IRECTION)|TIMESCALE|OFFSET)|DEFLECTION_(?:EFFICIENCY|TIMESCALE)|FRICTION_TIMESCALE)|ANGULAR_(?:MOTOR_(?:D(?:ECAY_TIMESCALE|IRECTION)|TIMESCALE)|DEFLECTION_(?:EFFICIENCY|TIMESCALE)|FRICTION_TIMESCALE)|TYPE_(?:(?:AIRPLA|NO)NE|B(?:ALLOON|OAT)|SLED|CAR)|B(?:ANKING_(?:EFFICIENCY|TIMESCALE|MIX)|UOYANCY)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|R(?:(?:EFERENCE|OLL)_FRAME|ANGE_BLOCK)|HOVER_(?:EFFICIENCY|TIMESCALE|HEIGHT))|A(?:TTACH_(?:H(?:UD_(?:TOP_(?:(?:RIGH|LEF)T|CENTER)|BOTTOM(?:_(?:RIGH|LEF)T)?|CENTER_[12])|IND_[LR]FOOT|EAD)|R(?:H(?:AND(?:_RING1)?|IP)|L(?:ARM|LEG)|U(?:ARM|LEG)|E(?:AR|YE)|IGHT_PEC|SHOULDER|FOOT|WING)|L(?:H(?:AND(?:_RING1)?|IP)|E(?:FT_PEC|AR|YE)|L(?:ARM|LEG)|U(?:ARM|LEG)|SHOULDER|FOOT|WING)|FACE_(?:LE(?:AR|YE)|RE(?:AR|YE)|TONGUE|JAW)|TAIL_(?:BASE|TIP)|AVATAR_CENTER|B(?:ELLY|ACK)|CH(?:EST|IN)|N(?:ECK|OSE)|PELVIS|GROIN|MOUTH)|GENT(?:_(?:LIST_(?:PARCEL(?:_OWNER)?|EXCLUDENPC|REGION)|A(?:TTACHMENTS|LWAYS_RUN|UTOPILOT|WAY)|B(?:Y_(?:LEGACY_|USER)NAME|USY)|(?:CROUCH|WALK|FLY|TYP)ING|S(?:CRIPTED|ITTING)|M(?:OUSELOOK|ALE)|ON_OBJECT|IN_AIR))?|LL_SIDES|NIM_ON|CTIVE)|WL_(?:CLOUD_(?:SC(?:ROLL_(?:X(?:_LOCK)?|Y(?:_LOCK)?)|ALE)|(?:DETAIL_)?XY_DENSITY|CO(?:VERAGE|LOR))|S(?:UN_(?:MOON_(?:POSITION|COLOR)|GLOW_(?:FOCUS|SIZE))|TAR_BRIGHTNESS|CENE_GAMMA)|REF(?:RACT_SCALE_(?:ABOVE|BELOW)|LECTION_WAVELET_SCALE)|D(?:(?:ISTANCE|ENSITY)_MULTIPLIER|RAW_CLASSIC_CLOUDS)|B(?:LU(?:R_MULTIPLIER|E_DENSITY)|IG_WAVE_DIRECTION)|(?:NORMAL_MAP_TEXTUR|MAX_ALTITUD|EAST_ANGL)E|WATER_(?:FOG_DENSITY_EXPONENT|COLOR)|H(?:AZE_(?:DENSITY|HORIZON)|ORIZON)|FRESNEL_(?:OFFSET|SCALE)|UNDERWATER_FOG_MODIFIER|LITTLE_WAVE_DIRECTION|AMBIENT)|C(?:AMERA_(?:FOCUS(?:_(?:[XYZ]|OFFSET(?:_[XYZ])?|L(?:OCKED|AG)|THRESHOLD))?|P(?:OSITION(?:_(?:[XYZ]|L(?:OCKED|AG)|THRESHOLD))?|ITCH)|BEHINDNESS_(?:ANGLE|LAG)|(?:DISTANC|ACTIV)E)|ONT(?:ROL_(?:R(?:OT_(?:RIGH|LEF)|IGH)T|(?:ML_LBUTTO|DOW)N|L(?:BUTTON|EFT)|BACK|FWD|UP)|ENT_TYPE_(?:(?:X(?:HT)?|HT)ML|(?:ATO|FOR)M|JSON|LLSD|TEXT|RSS))|HANGED_(?:A(?:LLOWED_DROP|NIMATION)|REGION(?:_(?:RE)?START)?|TE(?:LEPORT|XTURE)|(?:COLO|OWNE)R|S(?:CAL|HAP)E|INVENTORY|POSITION|MEDIA|LINK)|LICK_ACTION_(?:OPEN(?:_MEDIA)?|(?:PL?A|BU)Y|TOUCH|NONE|ZOOM|SIT))|S(?:T(?:AT(?:S_(?:(?:A(?:CTIVE_(?:SCRIPT|PRIM)|GENT_(?:UPDATE|M))|P(?:ENDING_(?:DOWN|UP)LOAD|HYSICS_(?:FP|M))|(?:CHILD|ROOT)_AGENT|(?:FRAME|NET)_M|UNACKED_BYTE)S|S(?:CRIPT_(?:(?:[EL]P|NPC)S|TIME)|IM_(?:SLEEP|FPS))|O(?:UT_PACKETS_PER_SECOND|THER_MS)|I(?:N_PACKETS_PER_SECOND|MAGE_MS)|T(?:IME_DILATION|OTAL_PRIMS))|US_(?:R(?:ETURN_AT_EDGE|OTATE_[XYZ])|BLOCK_GRAB(?:_OBJECT)?|PH(?:ANTOM|YSICS)|DIE_AT_EDGE|SANDBOX))|RING_TRIM(?:_(?:HEAD|TAIL))?)|C(?:RIPTED|ALE)|MOOTH)|R(?:E(?:GION_FLAG_(?:ALLOW_D(?:IRECT_TELEPORT|AMAGE)|DISABLE_(?:COLLISION|PHYSIC)S|BLOCK_(?:TERRAFORM|FLY)|RESTRICT_PUSHOBJECT|FIXED_SUN|SANDBOX)|MOTE_DATA_(?:RE(?:QUEST|PLY)|CHANNEL)|STITUTION|VERSE)|C(?:_(?:REJECT_(?:(?:NON)?PHYSICAL|(?:AGENT|TYPE)S|HOST(?:GROUP)?|LAND)|GET_(?:LINK_NUM|ROOT_KEY|NORMAL)|D(?:ETECT_PHANTOM|ATA_FLAGS)|MAX_HITS)|ERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN))|OTATE)|L(?:I(?:ST_STAT_(?:S(?:UM(?:_SQUARES)?|TD_DEV)|(?:GEOMETR|HARMON)IC_MEAN|M(?:(?:E(?:DI)?A|I)N|AX)|NUM_COUNT|RANGE)|NK_(?:ALL_(?:CHILDREN|OTHERS)|(?:ROO|SE)T|THIS))|SL_STATUS_(?:(?:NOT_(?:SUPPORTE|FOUN)|WHITELIST_FAILE)D|(?:INTERNAL|BOUNDS)_ERROR|MALFORMED_PARAMS|TYPE_MISMATCH|OK)|AND_(?:R(?:EVERT|AISE)|L(?:EVEL|OWER)|SMOOTH|NOISE)|OOP)|INVENTORY_(?:S(?:ETTING|CRIPT|OUND)|(?:BODYPAR|OBJEC)T|A(?:NIMATION|LL)|(?:GES|TEX)TURE|NO(?:TECARD|NE)|CLOTHING|LANDMARK)|T(?:YPE_(?:IN(?:TEGER|VALID)|ROTATION|STRING|VECTOR|FLOAT|KEY)|ARGETED_EMAIL_OBJECT_OWNER|(?:OUCH_INVALID_FAC|RU)E)|KFM_(?:C(?:MD_(?:P(?:AUSE|LAY)|STOP)|OMMAND)|R(?:OTATION|EVERSE)|TRANSLATION|PING_PONG|FORWARD|DATA|LOOP|MODE)|NPC(?:LOOKAT_(?:C(?:ONVERSATION|LEAR)|F(?:REELOOK|OCUS)|(?:IDL|NON)E|MOUSELOOK|RESPOND|LISTEN|SELECT|HOVER))?|D(?:ATA_(?:SIM_(?:R(?:ELEASE|ATING)|(?:STATU|PO)S)|(?:ONLIN|NAM)E|PAYINFO|BORN)|E(?:BUG_CHANNEL|NSITY))|HTTP_(?:VER(?:BOSE_THROTTLE|IFY_CERT)|M(?:IMETYPE|ETHOD)|PRAGMA_NO_CACHE|BODY_MAXLENGTH|CUSTOM_HEADER)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT_(?:REMOVE|ADD)|GROUP_(?:REMOVE|ADD))|BANNED_AGENT_(?:REMOVE|ADD))|MASK_(?:(?:EVERYON|BAS)E|GROUP|OWNER|NEXT)|GRAVITY_MULTIPLIER|F(?:RICTION|ALSE))\b'
scope: constant.language.ll.integer.ossl
- match: '\b(?:IMG_USE_BAKED_(?:L(?:EFT(?:ARM|LEG)|OWER)|H(?:AIR|EAD)|AUX[123]|SKIRT|UPPER|EYES)|JSON_(?:(?:DELET|FALS|TRU)E|A(?:PPEND|RRAY)|NU(?:MBER|LL)|INVALID|OBJECT|STRING)|TEXTURE_(?:(?:TRANSPAREN|DEFAUL)T|PLYWOOD|BLANK|MEDIA)|URL_REQUEST_(?:GRANT|DENI)ED|NULL_KEY|EOF)\b'
scope: constant.language.ll.string.ossl
- match: '\b(?:PI(?:_BY_TWO)?|DEG_TO_RAD|RAD_TO_DEG|TWO_PI|SQRT2)\b'
scope: constant.language.ll.float.ossl
- match: '\b(?:TOUCH_INVALID_(?:TEXCOORD|VECTOR)|ZERO_(?:ROTATION|VECTOR))\b'
scope: constant.language.ll.compound.ossl
osslfunction:
- match: '\b(?:l(?:l(?:G(?:e(?:t(?:R(?:egion(?:(?:(?:Moo|Su)n(?:Direc|Rota)|TimeDila)tion|Day(?:Length|Offset)|F(?:lags|PS)|AgentCount|Corner|Name)|o(?:ot(?:Posi|Rota)tion|t))|P(?:arcel(?:M(?:axPrims|usicURL)|Prim(?:Owners|Count)|(?:Detail|Flag)s)|(?:rim(?:Media|itive)Param|o)s|ermissions(?:Key)?|hysicsMaterial)|L(?:i(?:nk(?:N(?:umber(?:OfSides)?|ame)|PrimitiveParams|Media|Key)|st(?:EntryType|Length))|ocal(?:Pos|Rot)|andOwnerAt)|S(?:(?:c(?:ript(?:Stat|Nam)|al)|imulatorHostnam)e|u(?:n(?:Direc|Rota)tion|bString)|ta(?:rtParameter|tus)|PMaxMemory)|A(?:n(?:imation(?:Override|List)?|dResetTime)|gent(?:L(?:anguage|ist)|Info|Size)|ttached(?:List)?|ccel|lpha)|O(?:bject(?:(?:AnimationName|Mas)s|P(?:rimCount|ermMask)|De(?:tails|sc)|Name)|wner(?:Key)?|mega)|M(?:a(?:xScaleFactor|ss(?:MKS)?)|oon(?:Direc|Rota)tion|inScaleFactor|emoryLimit)|N(?:umberOf(?:(?:NotecardLin|Sid)e|Prim)s|otecardLine|extEmail)|T(?:exture(?:(?:Offse|Ro)t|Scale)?|ime(?:OfDay|stamp)?|orque)|Inventory(?:N(?:umber|ame)|PermMask|Creator|Type|Key)|C(?:amera(?:Pos|Rot)|(?:reat|ol)or|enterOfMass)|D(?:a(?:y(?:Length|Offset)|te)|isplayName)|U(?:se(?:dMemory|rname)|nixTime)|F(?:ree(?:Memory|URLs)|orce)|G(?:eometricCenter|MTclock)|En(?:ergy|v)|BoundingBox|HTTPHeader|Wallclock|Key|Vel)|nerateKey)|round(?:(?:Norma|Repe)l|Contour|Slope)?|ive(?:Inventory(?:List)?|Money))|S(?:e(?:t(?:L(?:ink(?:PrimitiveParams(?:Fast)?|Texture(?:Anim)?|C(?:amera|olor)|(?:Alph|Medi)a)|ocalRot)|P(?:(?:rim(?:Media|itive)Param|o)s|a(?:rcelMusicURL|yPrice)|hysicsMaterial)|Ve(?:hicle(?:(?:Rotation|Vector)Param|Fl(?:oatParam|ags)|Type)|locity)|C(?:amera(?:(?:Eye|At)Offset|Params)|o(?:ntentType|lor)|lickAction)|S(?:ound(?:Queueing|Radius)|c(?:riptStat|al)e|itText|tatus)|T(?:ext(?:ure(?:Anim)?)?|o(?:uchText|rque)|imerEvent)|A(?:n(?:imationOverride|gularVelocity)|lpha)|R(?:e(?:moteScriptAccessPin|gionPos)|ot)|(?:Forc(?:eAndTorqu)?|Damag)e|(?:HoverHeigh|MemoryLimi)t|Object(?:Desc|Name)|KeyframedMotion|Buoyancy)|n(?:sor(?:Re(?:move|peat))?|dRemoteData))|t(?:op(?:(?:MoveToTarge|LookA)t|(?:Object)?Animation|Hover|Sound)|ring(?:T(?:oBase64|rim)|Length)|ar(?:tObjec)?tAnimation)|c(?:ale(?:ByFactor|Texture)|ript(?:Profil|Dang)er)|a(?:meGroup|y)|i(?:tTarget|n)|ubStringIndex|(?:hou|qr)t|HA1String|leep)|R(?:e(?:quest(?:S(?:imulatorData|ecureURL)|(?:Inventory|Agent)Data|U(?:ser(?:name|Key)|RL)|DisplayName|Permissions)|mo(?:ve(?:FromLand(?:Pass|Ban)List|VehicleFlags|Inventory)|te(?:LoadScriptPin|DataReply))|set(?:(?:Land(?:Pass|Ban)Lis|(?:Other)?Scrip)t|(?:AnimationOverrid|Tim)e)|lease(?:Controls|URL)|z(?:AtRoo|Objec)t|gionSay(?:To)?)|o(?:t(?:2(?:A(?:ngle|xis)|Euler|Left|Fwd|Up)|Target(?:Remove)?|ateTexture|Between|LookAt)|und))|L(?:i(?:st(?:2(?:(?:Intege|Vecto)r|List(?:Strided)?|(?:Floa|Ro)t|String|Json|CSV|Key)|R(?:eplaceList|andomize)|en(?:Control|Remove)?|(?:Insert|Find)List|S(?:tatistics|ort))|nk(?:ParticleSystem|SitTarget))|o(?:o(?:pSound(?:Master|Slave)?|kAt)|g(?:10)?|adURL))|A(?:(?:vatarOn(?:Link)?SitTarge|x(?:isAngle|es)2Ro)t|d(?:dToLand(?:Pass|Ban)List|justSoundVolume)|t(?:tachToAvatar(?:Temp)?|an2)|pply(?:Rotational)?Impulse|(?:ngleBetwee|si)n|llowInventoryDrop|(?:co|b)s)|D(?:e(?:t(?:ected(?:T(?:ouch(?:(?:Bin|N)ormal|Face|Pos|ST|UV)|ype)|(?:LinkNumb|Own)er|Gr(?:oup|ab)|Name|Key|Pos|Rot|Vel)|achFromAvatar)|leteSub(?:String|List))|umpList2String|i(?:alog|e))|T(?:a(?:rget(?:edEmail|Remove|Omega)?|keControls|n)|r(?:iggerSoun(?:dLimite)?d|ansferLindenDollars)|e(?:leportAgent(?:GlobalCoords|Home)?|xtBox)|o(?:Low|Upp)er)|P(?:a(?:r(?:celMedia(?:CommandList|Query)|seString(?:KeepNulls|2List)|ticleSystem)|ss(?:Collision|Touche)s)|laySound(?:Slave)?|reloadSound|ushObject|ow)|C(?:l(?:ear(?:(?:Link|Prim)Media|CameraParams)|oseRemoteDataChannel)|o(?:llision(?:Filter|Sound)|s)|reateLink|SV2List|astRay|eil|har)|M(?:a(?:nageEstateAccess|pDestination)|o(?:d(?:ifyLand|Pow)|veToTarget)|essageLinked|inEventDelay|D5String)|O(?:penRemoteDataChannel|(?:verMyLan|r)d|ffsetTexture|wnerSay)|E(?:(?:jectFromLan|dgeOfWorl)d|scapeURL|uler2Rot|mail)|B(?:ase64To(?:Integer|String)|reak(?:AllLinks|Link))|In(?:s(?:tantMessage|ertString)|tegerToBase64)|Json(?:(?:[GS]etValu|ValueTyp)e|2List)|V(?:ec(?:Dist|Norm|Mag)|olumeDetect)|F(?:orceMouselook|loor|rand|abs)|H(?:TTPRe(?:sponse|quest)|ash)|W(?:(?:hisp|at)er|ind)|Un(?:escapeURL|Sit)|XorBase64|Key2Name|Name2Key)|s(?:SetWindlightScene(?:Targeted)?|(?:Clear|Get)WindlightScene))|os(?:Get(?:A(?:pparent(?:RegionTime(?:String)?|Time(?:String)?)|vatar(?:HomeURI|List)|gent(?:Country|IP|s))|S(?:i(?:mulator(?:Memory(?:KB)?|Version)|tActiveRange)|criptEngineName|tandTarget|unParam)|L(?:ink(?:S(?:itActiveRange|tandTarget)|PrimitiveParams|Number)|astChangedEventKey)|P(?:hysicsEngine(?:Nam|Typ)e|rimitiveParams|STWallclock|arcelDwell)|G(?:rid(?:(?:Gatekeeper|Login|Home)URI|N(?:ame|ick)|Custom)|ender)|N(?:umberOf(?:NotecardLine|Attachment)s|otecard(?:Line)?|PCList)|In(?:ventory(?:LastOwner|ItemKey|Desc|Name)|ertiaData)|Re(?:gion(?:S(?:tats|ize)|MapTexture)|zzingObject)|(?:DrawStringSiz|MapTextur)e|Heal(?:Rate|th)|CurrentSunHour|TerrainHeight|WindParam)|S(?:et(?:P(?:r(?:im(?:FloatOnWater|itiveParams)|ojectionParams)|arcel(?:(?:SIPAddres|Detail)s|M(?:edia|usic)URL)|en(?:C(?:olor|ap)|Size))|DynamicTexture(?:Data(?:Blend(?:Face)?|Face)?|URL(?:Blend(?:Face)?)?)|S(?:itActiveRange|oundRadius|tandTarget|unParam|peed)|Inertia(?:As(?:Cylinder|Sphere|Box))?|Terrain(?:Texture(?:Height)?|Height)|LinkS(?:itActiveRange|tandTarget)|Region(?:SunSettings|WaterHeight)|(?:Font(?:Nam|Siz)|ContentTyp)e|EstateSunSettings|Heal(?:Rate|th)|OwnerSpeed|WindParam)|t(?:ring(?:S(?:tartsWith|ubString)|(?:Last)?IndexOf|Re(?:plac|mov)e|EndsWith)|opSound)|HA256|lerp)|Npc(?:S(?:t(?:op(?:MoveToTarget|Animation)|and)|et(?:Profile(?:About|Image)|Rot)|a(?:veAppearance|y(?:To)?)|(?:hou|i)t)|Lo(?:adAppearance|okAt)|Get(?:Owner|Pos|Rot)|MoveTo(?:Target)?|(?:Creat|Remov)e|PlayAnimation|Whisper|Touch)|D(?:r(?:aw(?:R(?:e(?:setTransform|ctangle)|otationTransform)|Filled(?:(?:Rectangl|Ellips)e|Polygon)|T(?:ranslationTransform|ext)|(?:Ellips|Imag|Lin)e|ScaleTransform|Polygon)|opAttachmen(?:tA)?t)|etectedCountry|ie)|For(?:ce(?:AttachTo(?:Avatar(?:FromInventory)?|OtherAvatarFromInventory)|D(?:ropAttachmen(?:tA)?t|etachFromAvatar)|Break(?:AllLinks|Link)|CreateLink|OtherSit)|matString)|R(?:e(?:place(?:(?:Parcel|Region|Agent)Environment|String)|g(?:ion(?:Restart|Notice)|exIsMatch)|set(?:Environment|AllScripts)|quest(?:Secure)?URL)|ound)|L(?:o(?:adedCreation(?:(?:Dat|Tim)e|ID)|opSound(?:Master|Slave)?|calTeleportAgent)|i(?:st(?:SortInPlace|enRegex)|nkParticleSystem))|A(?:vatar(?:(?:Play|Stop)Animation|Name2Key|Type)|(?:gentSaveAppearanc|djustSoundVolum)e|ngleBetween|pproxEquals)|C(?:lear(?:ObjectAnimations|Inertia)|o(?:llisionSou|nsoleComma)nd|ause(?:Healing|Damage)|heckODE)|T(?:e(?:leport(?:O(?:bject|wner)|Agent)|rrainFlush)|riggerSoun(?:dLimite)?d)|P(?:ar(?:cel(?:Subdivide|Join)|ticleSystem)|laySound(?:Slave)?|reloadSound)|M(?:essage(?:Attachments|Object)|a(?:keNotecard|tchString|x)|(?:ovePe|i)n)|I(?:s(?:N(?:otValidNumber|pc)|UUID)|nviteToGroup)|(?:WindActiveModelPluginNam|OwnerSaveAppearanc)e|(?:UnixTimeToTimestam|EjectFromGrou)p|V(?:ec(?:Dist|Mag)Square|olumeDetect)|K(?:ickAvatar|ey2Name)))\b'
scope: support.function.ll.ossl
quoted:
- match: '"'
captures:
0: punctuation.definition.string.begin.ossl
push:
- meta_scope: string.quoted.double.ossl
- match: '"'
captures:
0: punctuation.definition.string.end.ossl
pop: true
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
scope: constant.character.escape.ossl
reserved:
- match: \b(event|print)\b
scope: variable.language.ossl
state:
- match: ^\s*((?:state)\s+\w+|default)\b
captures:
0: entity.name.class.state.begin.ossl
push:
- meta_scope: meta.state.ossl
- match: '\}'
captures:
0: punctuation.section.state.end.ossl
pop: true
- match: '{'
push:
- meta_scope: meta.state.body.ossl
- match: '(?=})'
pop: true
- include: commentblock
- include: commentline
- include: event
- include: commentblock
- include: commentline
storage_type:
- match: \b(integer|float|string|key|vector|quaternion|rotation|list)\b
scope: storage.type.ossl
value:
- include: commentblock
- include: commentline
- include: state
- include: storage_type
- include: quoted
- include: constant
- include: reserved
- include: number
- include: operator
- include: array
- include: functiondef