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
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
3

V'íc~ã@s>dZddlZddlmZmZmZmZmZmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZmZddlmZmZdddd	d
ddd
dddgZGdd„deƒZGdd„deƒZGdd„deƒZGdd	„d	eƒZGdd
„d
eƒZGdd„deƒZGdd„deƒZGdd
„d
eƒZ Gdd„deƒZ!Gdd„deƒZ"Gdd„deƒZ#dS)zâ
    pygments.lexers.scripting
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for scripting and embedded languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
éN)Ú
RegexLexerÚincludeÚbygroupsÚdefaultÚcombinedÚwords)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚ
WhitespaceÚOther)Úget_bool_optÚget_list_optÚLuaLexerÚMoonScriptLexerÚChaiscriptLexerÚLSLLexerÚAppleScriptLexerÚ	RexxLexerÚMOOCodeLexerÚHybrisLexerÚEasytrieveLexerÚJclLexerÚMiniScriptLexerc@s¸eZdZdZdZdZdgZddgZddgZd	Z	d
Z
dZde	e
efZd
Z
dejfedƒge	ejfe
ejfeefgedƒdejfdejfdejfdejfdefdedfdefdefdefdejfdejfdejdfdejfd ej fd!ejd"fd#e!fd$eje"d%d&ƒfd'ej#e"d%d(ƒfgedƒd)efd*e
efe!j$fe
e!j%d+fd,ed+fgedƒe
e!j&d+fgedƒded+fe
e!j&fgd-ej'fgd$ejd+fd.ejfgd'ej#d+fd/ej#fgd0œ	Z(d1d2„Z)d3d4„Z*d5S)6ra†
    For Lua source code.

    Additional options accepted:

    `func_name_highlighting`
        If given and ``True``, highlight builtin function names
        (default: ``True``).
    `disabled_modules`
        If given, must be a list of module names whose function names
        should not be highlighted. By default all modules are highlighted.

        To get a list of allowed modules have a look into the
        `_lua_builtins` module:

        .. sourcecode:: pycon

            >>> from pygments.lexers._lua_builtins import MODULES
            >>> MODULES.keys()
            ['string', 'coroutine', 'modules', 'io', 'basic', ...]
    ZLuazhttps://www.lua.org/Zluaz*.luaz*.wluaz
text/x-luazapplication/x-luaz-(?:--\[(?P<level>=*)\[[\w\W]*?\](?P=level)\])z	(?:--.*$)z(?:\s+)z(?:%s|%s|%s)z(?:[^\W\d]\w*)z#!.*ÚbaseÚwsz'(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?z#(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?z(?i)\d+e[+-]?\d+z\d+z(?s)\[(=*)\[.*?\]\1\]z::Úlabelz\.{3}z[=<>|~&+\-*/%#^]+|\.\.z[\[\]{}().,:;]z(and|or|not)\bzE(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\bzgoto\bÚgotoz	(local)\bz(true|false|nil)\bz(function)\bÚfuncnamez[A-Za-z_]\w*(\.[A-Za-z_]\w*)?ú'ÚstringescapeÚsqsú"Údqsz[.:]z
%s(?=%s*[.:])z#popz\(zM\\([abfnrtv\\"\']|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})z[^\\']+z[^\\"]+)	Úrootr!r r$r#r"r&r'r)cKstt|ddƒ|_t|dgƒ|_tƒ|_|jrbddlm}x*|jƒD]\}}||jkr@|jj	|ƒq@Wt
j|f|ŽdS)NÚfunc_name_highlightingTÚdisabled_modulesr)ÚMODULES)rr+rr,ÚsetÚ
_functionsZpygments.lexers._lua_builtinsr-ÚitemsÚupdaterÚ__init__)ÚselfÚoptionsr-ÚmodÚfunc©r7ú=/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/scripting.pyr2‰s
zLuaLexer.__init__ccs xštj||ƒD]Š\}}}|tkrŒ||jkr<|tj|fVqnPd|krŒ|jdƒ\}}|t|fV|t|ƒtdfV|t|ƒdt|fVq|||fVqWdS)NÚ.é)rÚget_tokens_unprocessedrr/ÚBuiltinÚsplitÚlenr)r3ÚtextÚindexÚtokenÚvalueÚaÚbr7r7r8r;–s
zLuaLexer.get_tokens_unprocessedN)+Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesZ_comment_multilineZ_comment_singleZ_spaceZ_sÚ_namer	ÚPreprocrÚ	MultilineÚSinglerrrÚHexÚFloatÚIntegerr
rr
ÚWordrÚReservedÚDeclarationÚConstantrrÚDoubleÚClassÚFunctionÚLabelÚEscapeÚtokensr2r;r7r7r7r8rsl








c'@sBeZdZdZdZdZddgZdgZddgZd	e	j
fed
ƒgde	jfde
jfd
e
jfde
jfde
jfdefdefdefdejfdejfdefdefdejfdejfedEd0d1efd2ejfd3ejfd4ejjfd5ejj fd6ej fd7efd8eje!d9d:ƒfd;ej"e!d9d<ƒfgd=ej#fgd8ejd>fd?efgd;ej"d>fd@efgdAœZ$dBdC„Z%dDS)Frz@
    For MoonScript source code.

    .. versionadded:: 1.5
    Z
MoonScriptzhttp://moonscript.orgZ
moonscriptZmoonz*.moonztext/x-moonscriptzapplication/x-moonscriptz#!(.*?)$r z--.*$z#(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?z(?i)\d+e[+-]?\d+z(?i)0x[0-9a-f]*z\d+z\nz[^\S\n]+z(?s)\[(=*)\[.*?\]\1\]z(->|=>)z
:[a-zA-Z_]\w*z/(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])z[;,]z
[\[\]{}()]z
[a-zA-Z_]\w*:ÚclassÚextendsÚifÚthenÚsuperÚdoÚwithÚimportÚexportÚwhileÚelseifÚreturnÚforÚinÚfromÚwhenÚusingÚelseÚandÚorÚnotÚswitchÚbreakz\b)Úsuffixz(true|false|nil)\bz(and|or|not)\bz(self)\bz@@?([a-zA-Z_]\w*)?z[A-Z]\w*z[A-Za-z_]\w*(\.[A-Za-z_]\w*)?r%r&r'r(r)z\\([abfnrtv\\"']|\d{1,3})z#popz[^']+z[^"]+)r*r r&r'r)ccs@x:tj||ƒD]*\}}}|tkr,|dkr,t}|||fVqWdS)Nr9)rr;rr
)r3r?r@rArBr7r7r8r;âsz&MoonScriptLexer.get_tokens_unprocessedN)r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtru)&rErFrGrHrIrJrKrLrMr	rOrrQrrSrRrTrrr
rr[ÚVariabler
rrÚTyperrXrUr<ÚPseudorZrrYr]r^r;r7r7r7r8r¥sT




c@sReZdZdZdZdZddgZdgZddgZe	j
e	jBZd	e
fd
ejfdejfdejfged
ƒdejdfde
d-fedƒgde
dfged
ƒde
fde
fdedfdedfdefdefdedfdejdfdejfdejfdejfdejfdejfd ejfd!ej fd"ej!fd#ej"d$fd%ejfgd&ej#fd'ej"fd(ej"fd)ej"fd*ej"fd#ej"dfgd+œZ$d,S).rz@
    For ChaiScript source code.

    .. versionadded:: 2.0
    Z
ChaiScriptzhttp://chaiscript.com/Z
chaiscriptZchaiz*.chaiztext/x-chaiscriptzapplication/x-chaiscriptz\s+z//.*?\nz	/\*.*?\*/z^\#.*?\nÚcommentsandwhitespacez3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)ú#popz(?=/)Úbadregexz\nz[^\S\n]+zD\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|\.\.(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?Úslashstartsregexz[{(\[;,]z[})\].]z[=+\-*/]zA(for|in|while|do|break|return|continue|if|else|throw|try|catch)\bz(var)\bz(attr|def|fun)\bz(true|false)\bz(eval|throw)\bz`\S+`z
[$a-zA-Z_]\w*z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+r(Údqstringz'(\\\\|\\[^\\]|[^'\\])*'z
\$\{[^"}]+?\}z\$z\\\\z\\"z[^\\"$]+)rzr}r|r*r~N)r{r|)%rErFrGrHrIrJrKrLrMÚreÚDOTALLÚ	MULTILINEÚflagsrr	rQrPrr
ÚRegexrr
rrrWrVrXrr<rrrSrRrTrYZInterpolr^r7r7r7r8rêsX




c@s¤eZdZdZdZdgZdgZdgZej	Z
dZdZdZ
d	Zd
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdejfdejdfde j!dfee"fee"j#fe
e$j%fee$j&fee$j'fee"j(fee"j(fee"j(fee"j(fee"j(fee"j(fee)fee)fee)fee)fee"j*fee"j*fde$j+fde,j-fde,j-fd e,j.fd!e,j/fee0fd"e)fd#e1fd$e2fd%e2fgd&ejfdejd'fd(ejd)fd*ejfgd+e j3fde j!d)fd,e)fd-e j!fgd.œZ4d/S)0rz]
    For Second Life's Linden Scripting Language source code.

    .. versionadded:: 2.0
    ZLSLZlslz*.lslz
text/x-lslz(\b(?:do|else|for|if|jump|return|while)\bz@\b(?:float|integer|key|list|quaternion|rotation|string|vector)\bz\b(?:(?:state)\s+\w+|default)\baN\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\baƒ\b(?:ll(?:ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|RequestPermissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\bz9\b(?:DEG_TO_RAD|PI(?:_BY_TWO)?|RAD_TO_DEG|SQRT2|TWO_PI)\ba…\b(?:JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASSIVE|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_EQUIVALENCE|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|ROO?T|VELOCITY|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|PATHFINDING_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?))|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE|SET_MODE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[A-D]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\bz\b(?:FALSE|TRUE)\bz\b(?:ZERO_ROTATION)\bzª\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\bz5\b(?:TOUCH_INVALID_(?:TEXCOORD|VECTOR)|ZERO_VECTOR)\bz)\b(?:LAND_(?:LARGE|MEDIUM|SMALL)_BRUSH)\ba/\b(?:ATTACH_[LR]PEC|DATA_RATING|OBJECT_ATTACHMENT_(?:GEOMETRY_BYTES|SURFACE_AREA)|PRIM_(?:CAST_SHADOWS|MATERIAL_LIGHT|TYPE_LEGACY)|PSYS_SRC_(?:INNER|OUTER)ANGLE|VEHICLE_FLAG_NO_FLY_UP|ll(?:Cloud|Make(?:Explosion|Fountain|Smoke|Fire)|RemoteDataSetRegion|Sound(?:Preload)?|XorBase64Strings(?:Correct)?))\bz
\b(?:event)\ba+\b(?:CHARACTER_(?:MAX_ANGULAR_(?:ACCEL|SPEED)|TURN_SPEED_MULTIPLIER)|PERMISSION_(?:CHANGE_(?:JOINTS|PERMISSIONS)|RELEASE_OWNERSHIP|REMAP_CONTROLS)|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|ll(?:CollisionSprite|(?:Stop)?PointAt|(?:(?:Refresh|Set)Prim)URL|(?:Take|Release)Camera|RemoteLoadScript))\bz>\b(?:ll(?:GodLikeRezObject|Set(?:Inventory|Object)PermMask))\bz
\b(?:print)\bz-\+\+|\-\-|<<|>>|&&?|\|\|?|\^|~|[!%<>=*+\-/]=?z//.*?\nz/\*Úcommentr(Ústringz\b([a-zA-Z_]\w*)\bz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*z(\d+\.\d*|\.\d+)z0[xX][0-9a-fA-F]+z\d+z:=?z[,;{}()\[\]]z\n+z\s+z[^*/]+z#pushz\*/z#popz[*/]z\\([nt"\\])z\\.z[^"\\]+)r*r„r…N)5rErFrGrHrIrKrLrMrrr‚Zlsl_keywordsZ	lsl_typesZ
lsl_statesZ
lsl_eventsZlsl_functions_builtinZlsl_constants_floatZlsl_constants_integerZlsl_constants_integer_booleanZlsl_constants_rotationZlsl_constants_stringZlsl_constants_vectorZlsl_invalid_brokenZlsl_invalid_deprecatedZlsl_invalid_illegalZlsl_invalid_unimplementedZlsl_reserved_godmodeZlsl_reserved_logZ
lsl_operatorsr	rQrPr
rYrrxrrZr<r[rXrrVrwrrSrRrTr
rrr]r^r7r7r7r8r-s|





c5@s°eZdZdZdZdZdgZdgZej	ej
BZdZdùZ
dúZdûZdüZdýZdþZdÿZdZdZdZdZdZdZdZdÞefdßejfdàefdáefdâejdãfdäe fdåe!ee"j#eƒfdæe!e$e"j#ƒfdçe%fdèdéj&eƒe%j'fdêdéj&edëdëd…ƒe!e$e"j(ƒfdíe!ee$eƒfdîdéj&eƒe!e$e"j)ƒfdèdéj&e
ƒe"j*fdèdéj&eƒe"j#fdèdéj&eƒe$fdèdéj&eƒe$fdèdéj&eƒe"j#fdïdéj&eƒe"j#fdèdéj&eƒe"j#fdèdéj&eƒe"j+fdïdéj&eƒe"j#fdèdéj&eƒe"j#fdèdéj&eƒe"j#fdðej,fdèee"j-fdñe.j/fdòe.j0fgdâejdófdôejdõfdöejfd÷ejfgdøœZ1dëS(rzó
    For AppleScript source code,
    including `AppleScript Studio
    <http://developer.apple.com/documentation/AppleScript/
    Reference/StudioReference>`_.
    Contributed by Andreas Amann <aamann@mac.com>.

    .. versionadded:: 1.0
    ÚAppleScriptz‚https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.htmlZapplescriptz
*.applescriptz[a-zA-Z]\w*úcurrent applicationÚfalseÚlinefeedú
missing valueÚpiÚquoteÚresultrjÚspaceÚtabútext item delimitersÚtrueÚversionúalias úapplication úboolean úclass ú	constant údate úfile úinteger úlist únumber úPOSIX file úreal úrecord ú
reference ú
RGB color úscript útext ú
unit typesú(?:Unicode )?textr…Ú
attachmentú
attribute runÚ	characterÚdayÚmonthÚ	paragraphÚwordÚyearÚaboutÚaboveÚagainstú
apart fromÚaroundú
aside fromÚatÚbelowÚbeneathÚbesideÚbetweenrkÚgivenú
instead ofÚonÚontoúout ofÚoverÚsinceúASCII (character|number)ÚactivateÚbeepú
choose URLúchoose applicationúchoose colorúchoose file( name)?ú
choose folderúchoose from listúchoose remote applicationúclipboard infoúclose( access)?ÚcopyÚcountúcurrent dateÚdelayÚdeleteúdisplay (alert|dialog)údo shell scriptÚ	duplicateÚexistsúget eofúget volume settingsúinfo forÚlaunchúlist (disks|folder)úload scriptÚlogÚmakeúmount volumeÚnewÚoffsetúopen( (for access|location))?úpath toÚprintÚquitú
random numberÚreadÚroundú
run( script)?Úsayúscripting componentsú!set (eof|the clipboard to|volume)ústore scriptÚ	summarizeúsystem attributeúsystem infoú
the clipboardútime to GMTÚwriteúquoted formú
(in )?back ofú(in )?front ofú[0-9]+(st|nd|rd|th)ÚfirstÚsecondÚthirdÚfourthÚfifthÚsixthÚseventhÚeighthÚninthÚtenthÚafterÚbackÚbeforeÚbehindÚeveryÚfrontr@ÚlastÚmiddleÚsomeÚthatÚthroughÚthruÚwhereÚwhoserqrrúis equalÚequalsú(is )?equal toúis notúisn'túisn't equal( to)?úis not equal( to)?ú
doesn't equalúdoes not equalú(is )?greater thanúcomes afterúis not less than or equal( to)?úisn't less than or equal( to)?ú(is )?less thanúcomes beforeú"is not greater than or equal( to)?ú!isn't greater than or equal( to)?ú"(is  )?greater than or equal( to)?úis not less thanúisn't less thanúdoes not come beforeúdoesn't come beforeú(is )?less than or equal( to)?úis not greater thanúisn't greater thanúdoes not come afterúdoesn't come afterústarts? withúbegins? withú
ends? withú	contains?údoes not containúdoesn't containúis inúis contained byú	is not inúis not contained byúisn't contained byÚdivr5rsú(a  )?(ref( to)?|reference to)ÚisÚdoesÚconsideringrpÚerrorÚexitrmraÚignoringrlÚrepeatÚtellrbÚtimesÚtoÚtryÚuntilúusing terms fromrhÚwhithúwith timeout( of)?úwith transactionÚbyÚcontinueÚendúits?ÚmeÚmyÚofÚasÚglobalÚlocalúprop(erty)?r.ÚgetÚbutÚputÚ	returningÚtheúaction cellúalert replyÚapplicationÚboxúbrowser( cell)?Úbundleúbutton( cell)?Úcellú	clip viewú
color wellúcolor-panelúcombo box( item)?Úcontrolú%data( (cell|column|item|row|source))?ú
default entryúdialog replyÚdocumentú	drag infoÚdrawerÚeventú
font(-panel)?Ú	formatterúimage( (cell|view))?Úmatrixúmenu( item)?Úitemú
movie( view)?ú
open-panelúoutline viewÚpanelÚ
pasteboardÚpluginúpopup buttonúprogress indicatorÚ	responderú
save-panelúscroll viewúsecure text field( cell)?ÚsliderÚsoundú
split viewÚstepperútab view( item)?ú-table( (column|header cell|header view|view))útext( (field( cell)?|view))?útoolbar( item)?ú
user-defaultsÚviewÚwindowúaccept outline dropúaccept table dropÚactionÚ	activatedúalert endedúawake from nibú
became keyúbecame mainú
begin editingúbounds changedú
cell valueúcell value changedúchange cell valueúchange item valueÚchangedú
child of itemúchoose menu itemÚclickedúclicked toolbar itemÚclosedúcolumn clickedúcolumn movedúcolumn resizedú
conclude dropúdata representationÚdeminiaturizedúdialog endedúdocument nib nameúdouble clickedú drag( (entered|exited|updated))?Údropúend editingÚexposedÚidleúitem expandableú
item valueúitem value changedú
items changedú
keyboard downúkeyboard upÚlaunchedúload data representationÚminiaturizedú
mouse downú
mouse draggedú
mouse enteredúmouse exitedúmouse movedúmouse upÚmovedúnumber of browser rowsúnumber of itemsúnumber of rowsú
open untitledÚopenedúpanel endedúparameters updatedú
plugin loadedúprepare dropúprepare outline dragúprepare outline dropúprepare table dragúprepare table dropúread from fileúresigned activeúresigned keyú
resigned mainúresized( sub views)?úright mouse downúright mouse draggedúright mouse upúrows changedúscroll wheelúselected tab view itemúselection changedúselection changingúshould begin editingúshould closeúshould collapse itemúshould end editingúshould expand itemúshould open( untitled)?ú'should quit( after last window closed)?úshould select columnúshould select itemúshould select rowúshould select tab view itemúshould selection changeúshould zoomÚshownúupdate menu itemúupdate parametersúupdate toolbar itemú
was hiddenúwas miniaturizedúwill become activeú
will closeúwill dismissúwill display browser cellúwill display cellúwill display item cellúwill display outline cellúwill finish launchingú	will hideúwill miniaturizeú	will moveú	will openúwill pop upú	will quitúwill resign activeúwill resize( sub views)?úwill select tab view itemú	will showú	will zoomú
write to fileÚzoomedÚanimateÚappendúcall methodÚcenterúclose drawerúclose panelÚdisplayú
display alertúdisplay dialogú
display panelÚgoÚhideÚ	highlightÚ	incrementúitem forú
load imageú
load movieúload nibú
load panelú
load soundúlocalized stringú
lock focusúopen drawerúpath forÚpauseúperform actionÚplayÚregisterÚresumeÚscrollú
select( all)?Úshowúsize to fitÚstartú	step backústep forwardÚstopÚsynchronizeúunlock focusr1úaccepts arrow keyú
action methodÚactiveÚ	alignmentúallowed identifiersúallows branch selectionúallows column reorderingúallows column resizingúallows column selectionúallows customizationúallows editing text attributesúallows empty selectionúallows mixed stateúallows multiple selectionúallows reorderingúallows undoúalpha( value)?úalternate imageúalternate increment valueúalternate titleúanimation delayúassociated file nameúassociated objectúauto completesúauto displayúauto enables itemsúauto repeatúauto resizes( outline column)?úauto save expanded itemsúauto save nameúauto save table columnsúauto saves configurationúauto scrollúauto sizes all columns to fitúauto sizes cellsúbackground colorúbezel stateúbezel styleÚbezeledúborder rectúborder typeÚborderedúbounds( rotation)?úbox typeúbutton returnedúbutton typeúcan choose directoriesúcan choose filesúcan drawúcan hideú$cell( (background color|size|type))?Ú
charactersr_úclick countúclicked( data)? columnúclicked data itemúclicked( data)? rowÚ	closeableÚ	collatingúcolor( (mode|panel))úcommand key downÚ
configurationú#content(s| (size|view( margins)?))?ÚcontextÚ
continuousúcontrol key downúcontrol sizeúcontrol tintúcontrol viewúcontroller visibleúcoordinate systemúcopies( on scroll)?úcorner viewúcurrent cellúcurrent columnúcurrent( field)?  editorúcurrent( menu)? itemúcurrent rowúcurrent tab view itemúdata sourceúdefault identifiersú
delta (x|y|z)údestination windowÚ	directoryúdisplay modeúdisplayed cellúdocument( (edited|rect|view))?údouble valueúdragged columnúdragged distanceú
dragged itemsúdraws( cell)? backgroundú
draws gridúdynamically scrollsú
echos bulletsÚedgeÚeditableúedited( data)? columnúedited data itemúedited( data)? rowÚenabledúenclosing scroll viewúending pageúerror handlingúevent numberú
event typeúexcluded from windows menuúexecutable pathÚexpandedú
fax numberúfield editorú	file kindú	file nameú	file typeúfirst responderúfirst visible columnÚflippedÚfloatingú
font( panel)?úframeworks pathÚ	frontmostúgave upú
grid colorúhas data itemsúhas horizontal rulerúhas horizontal scrollerúhas parent data itemúhas resize indicatorú
has shadowúhas sub menuúhas vertical rulerúhas vertical scrollerúheader cellúheader viewÚhiddenúhides when deactivatedú
highlights byúhorizontal line scrollúhorizontal page scrollúhorizontal ruler viewúhorizontally resizableú
icon imageÚidÚ
identifierúignores multiple clicksú;image( (alignment|dims when disabled|frame style|scaling))?úimports graphicsúincrement valueúindentation per levelÚ
indeterminateú
integer valueúintercell spacingúitem heightú+key( (code|equivalent( modifier)?|window))?úknob thicknessr"úlast( visible)? columnúleading offsetÚleafÚlevelúline scrollÚloadedúlocalized sortÚlocationú	loop modeúmain( (bunde|menu|window))?úmarker follows cellúmatrix modeúmaximum( content)? sizeúmaximum visible columnsúmenu( form representation)?Úminiaturizableúminimized imageúminimized titleúminimum column widthúminimum( content)? sizeÚmodalÚmodifiedúmouse down stateúmovie( (controller|file|rect))?ÚmutedrIú
needs displayú
next stateú	next textúnumber of tick marksúonly tick mark valuesÚopaqueú
open panelúoption key downúoutline table columnúpage scrollúpages acrossú
pages downú
palette labelú
pane splitterúparent data itemú
parent windowúpath( (names|separator))?Úplayingúplays every frameúplays selection onlyÚpositionúpreferred edgeúpreferred typeÚpressureú
previous textÚpromptÚ
propertiesúprototype cellú
pulls downÚrateúreleased when closedÚrepeatedúrequested print timeúrequired file typeÚ	resizableúresized columnú
resource pathúreturns recordsúreuses columnsú	rich textú	roll overú
row heightúrulers visibleú
save panelúscripts pathÚ
scrollableúselectable( identifiers)?ú
selected cellúselected( data)? columns?úselected data items?úselected( data)? rows?úselected item identifierúselection by rectúsend action on arrow keyúsends action when done editingúseparates columnsúseparator itemúsequence numberú
services menuúshared frameworks pathúshared support pathÚsheetúshift key downúshows alphaúshows state byúsize( mode)?úsmart insert delete enabledúsort case sensitivityúsort columnú
sort orderú	sort typeúsorted( data rows)?úsource( mask)?úspell checking enabledú
starting pageÚstateústring valueúsub menuú
super menuú
super viewútab key traverses cellsú	tab stateútab typeútab viewú
table viewÚtagútarget( printer)?ú
text colorútext container insertútext container originú
text returnedútick mark positionú
time stampú+title(d| (cell|font|height|position|rect))?útool tipÚtoolbarútrailing offsetÚtransparentútreat packages as directoriesútruncated labelsÚtypesúunmodified charactersúupdate viewsúuse sort indicatorú
user defaultsúuses data sourceú
uses rulerúuses threaded animationúuses title from previous columnúvalue wrapsú0vertical( (line scroll|page scroll|ruler view))?úvertically resizableúvisible( document rect)?ÚvolumeÚwidthúwindows menuÚwrapsÚzoomablez\s+u¬\nz's\s+z
(--|#).*?$z\(\*r„z
[(){}!,.:]u(«)([^»]+)(»)zx\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)u)(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)z\b(%s)\bú|z^(\s*(?:on|end)\s+)(%s)Nr:z^(\s*)(in|on|script|to)(\s+)z
\b(as )(%s)\bz
\b(%s)s?\bz"(\\\\|\\[^\\]|[^"\\])*"z&[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?z[-+]?\d+z#pushz\*\)z#popz[^*(]+z[*(])r*r„)r†r‡rˆr‰rŠr‹rŒrrjrŽrrr‘r’)r“r”r•r–r—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r…)r¦r§r¨r©rªr«r¬r­)r®r¯r°r±r²r³r´rµr¶r·r¸rkr¹rºr»r¼r½r¾r¿)3rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñrò)rórôrõrör÷rørùrúrûrürýrþrÿrrrrrrr@rrrr	r
rrr
).rqrrrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5rsr5r6r7)r8rpr9r:rmrar;rlr<r=rbr>r?r@rArBrhrCrDrErFrGrHrIrJrKrjrLrM)rNrOrPr.rQ)rRrSrTrU)1rVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†)tr‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrú))rûrürýrþrÿrrrrrrrrrr	r
rrr
rrrrÛrrrrrrrrrrrrrrrr r!r1(5r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUr_rVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—rkr˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r@r·r¸r¹rºr»r"r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËr±rÌrÍrÎrÏrÐrÑrÒrÓrÔrIrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärtrårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrr}rrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBr’rCrDr…rErFrGr†rHrIrJrúéÿÿÿÿ)2rErFrGrHrIrJrKrLrrr€r‚ZIdentifiersZLiteralsZClassesZBuiltInZ
HandlerParamsÚCommandsZ
ReferencesZ	OperatorsZControlZDeclarationsrVZ
StudioClassesZStudioEventsZStudioCommandsZStudioPropertiesrr
r]r	rPrrrr<rr
ÚjoinrUr[rZrXÚ	AttributerYrwrrSrTr^r7r7r7r8rsR	



cD@sžeZdZdZdZdZddgZdddd	gZd
gZe	j
Zdefde
jd
fdedfdedfdefdeejeeeejƒfdeejeeƒfedƒedƒedƒdefgedzd[d\eejeeƒfgd]ejfgd^efgd_efd`efdedafdbedafgdcefddefdeedafdbedafgdfe
jfdge
jdafdhe
jfgdiœZdjdk„ZedlƒZedmƒZ ednƒZ!edoƒZ"edpƒZ#edqƒZ$edrƒZ%edsfe dtfe!dufe$dufe"dufe#dvfe%dsffZ&dwdx„Z'dyS){ra
    Rexx is a scripting language available for
    a wide range of different platforms with its roots found on mainframe
    systems. It is popular for I/O- and data based tasks and can act as glue
    language to bind different applications together.

    .. versionadded:: 2.0
    ZRexxzhttp://www.rexxinfo.org/ZrexxZarexxz*.rexxz*.rexz*.rxz*.arexxztext/x-rexxz\s+z/\*r„r(Ú
string_doubler%Ú
string_singlez[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?z%([a-z_]\w*)(\s*)(:)(\s*)(procedure)\bz([a-z_]\w*)(\s*)(:)ÚfunctionÚkeywordÚoperatorz	[a-z_]\w*ÚabbrevÚabsÚaddressÚargÚb2xÚbitandÚbitorÚbitxorÚc2dÚc2xrþÚcharinÚcharoutÚcharsÚcompareÚ	conditionÚcopiesÚd2cÚd2xÚdatatypeÚdateÚdelstrÚdelwordÚdigitsÚ	errortextÚformÚformatÚfuzzÚinsertÚlastposÚleftÚlengthÚlineinÚlineoutÚlinesÚmaxÚminÚoverlayÚposÚqueuedÚrandomÚreverseÚrightÚsignÚ
sourcelinerŽÚstreamÚstripÚsubstrÚsubwordÚsymbolÚtimeÚtraceÚ	translateÚtruncrBÚverifyr¬Ú	wordindexÚ
wordlengthÚwordposrÚx2bÚx2cÚx2dÚxrangez	(\s*)(\())rvz¸(address|arg|by|call|do|drop|else|end|exit|for|forever|if|interpret|iterate|leave|nop|numeric|off|on|options|parse|pull|push|queue|return|say|select|signal|to|then|trace|until|while)\buŒ(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|¬>>|¬>|¬|\.|,)z[^"\n]+z""z#popz\nz[^\'\n]+z\'\'z\'z[^*]+z\*/z\*)r*rRrSrTrPrQr„cCstj|tjƒS)N)rÚcompiler)Úsr7r7r8Ú<lambda>szRexxLexer.<lambda>z^\s*address\s+command\bz^\s*address\s+z^\s*do\s+while\bz^\s*if\b.+\bthen\s+do\s*$z)^\s*([a-z_]\w*)(\s*)(:)(\s*)(procedure)\bz\belse\s+do\s*$z$^\s*parse\s+(upper\s+)?(arg|value)\bgš™™™™™É?gš™™™™™©?gš™™™™™¹?gà?csPtjd|tjƒrdS|jdƒrL|jƒ‰t‡fdd„tjDƒƒd}t|dƒSdS)zs
        Check for initial comment and patterns that distinguish Rexx from other
        C-like languages.
        z
/\*\**\s*rexxgð?z/*c3s |]\}}|jˆƒr|VqdS)N)Úsearch)Ú.0ÚpatternZweight)Ú	lowerTextr7r8ú	<genexpr>/sz)RexxLexer.analyse_text.<locals>.<genexpr>g{®Gáz„?N)	rr•Ú
IGNORECASEÚ
startswithÚlowerÚsumrÚPATTERNS_AND_WEIGHTSrx)r?rr7)r˜r8Úanalyse_text"s

zRexxLexer.analyse_textN)BrUrVrWrXrYrZr[r\r]r^rþr_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rŽrr‚rƒr„r…r†r‡rˆr‰rBrŠr¬r‹rŒrrrŽrrr‘)(rErFrGrHrIrJrKrLrMrršr‚rr	rPr
rrrr[r
rrWr\rrrr<rVr^Z_cZ_ADDRESS_COMMAND_PATTERNZ_ADDRESS_PATTERNZ_DO_WHILE_PATTERNZ_IF_THEN_DO_PATTERNZ_PROCEDURE_PATTERNZ_ELSE_DO_PATTERNZ_PARSE_ARG_PATTERNržrŸr7r7r7r8rÃs€




c@seZdZdZdZdZdgZddgZdgZdd	e	j
fd
efdej
fdejfd
efdejfdejjfdefdefdefdeejeƒfdefgiZdS)rzN
    For MOOCode (the MOO scripting language).

    .. versionadded:: 0.9
    ZMOOCodezhttp://www.moo.mud.org/z*.mooZmoocodeZmooztext/x-moocoder*z(0|[1-9][0-9_]*)z"(\\\\|\\[^\\]|[^"\\])*"z(E_PERM|E_DIV)z((#[-0-9]+)|(\$\w+))zt\b(if|else|elseif|endif|for|endfor|fork|endfork|while|endwhile|break|continue|return|try|except|endtry|finally|in)\bz(random|length)z(player|caller|this|args)z\s+z\nz([!;=,{}&|:.\[\]@()<>?]+)z	(\w+)(\()z(\w+)N)rErFrGrHrIrJrLrKrMrrTr
rÚ	ExceptionÚEntityrr<rwZInstancerr
rr[r^r7r7r7r8r5s(
c@s4eZdZdZdZddgZddgZddgZej	ej
BZd	ee
ejeeƒfd
efdejfdejfd
ejfde
fde
jfde
jfdee
jeƒdfdee
jeƒdfedÉd§d¨ejfedÊd§d¨e
jfd¸efd¹ejfdºeeejƒfd»ejfd¼efd½efd¾e j!fd¿e j"fdÀe j#fdÁefgdÂej$dÃfgdÄejdÃfgdŜZ%dÆdDŽZ&dÈS)Ërz<
    For Hybris source code.

    .. versionadded:: 1.4
    ZHybrisZhybrisZhyz*.hyz*.hybz
text/x-hybriszapplication/x-hybrisz>^(\s*(?:function|method|operator\s+)+?)([a-zA-Z_]\w*)(\s*)(\()z[^\S\n]+z//.*?\nz	/\*.*?\*/z@[a-zA-Z_][\w.]*zo(break|case|catch|next|default|do|else|finally|for|foreach|of|unless|if|new|return|switch|me|throw|try|while)\bzK(extends|private|protected|public|static|throws|function|method|operator)\bzK(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|__INC_PATH__)\bz(class|struct)(\s+)r_z(import|include)(\s+)rfÚ
gc_collectÚgc_mm_itemsÚgc_mm_usageÚgc_collect_thresholdÚ	urlencodeÚ	urldecodeÚbase64encodeÚbase64decodeÚsha1Úcrc32Úsha2Úmd5Úmd5_fileÚacosÚasinÚatanÚatan2ÚceilÚcosÚcoshÚexpÚfabsÚfloorÚfmodrÛÚlog10ÚpowÚsinÚsinhÚsqrtÚtanÚtanhÚisintÚisfloatÚischarÚisstringÚisarrayÚismapÚisaliasÚtypeofÚsizeofÚtointÚtostringÚfromxmlÚtoxmlÚbinaryÚpackÚloadÚevalÚ	var_namesÚ
var_valuesÚuser_functionsÚ
dyn_functionsÚmethodsÚcallÚcall_methodÚmknodÚmkfifoÚmountÚumount2ÚumountÚticksÚusleepÚsleepr†ÚstrtimeÚstrdateÚdllopenÚdlllinkÚdllcallÚdllcall_argvÚdllcloseÚenvÚexecÚforkÚgetpidÚwaitÚpopenÚpcloser:ÚkillÚpthread_createÚpthread_create_argvÚpthread_exitÚpthread_joinÚpthread_killÚ	smtp_sendÚhttp_getÚ	http_postÚ
http_downloadÚsocketÚbindÚlistenÚacceptÚgetsocknameÚgetpeernameÚ
settimeoutÚconnectÚserverÚrecvÚsendÚcloserâÚprintlnÚprintfÚinputÚreadlineÚserial_openÚserial_fcntlÚserial_get_attrÚserial_get_ispeedÚserial_get_ospeedÚserial_set_attrÚserial_set_ispeedÚserial_set_ospeedÚserial_writeÚserial_readÚserial_closeÚxml_loadÚ	xml_parseÚfopenÚfseekÚftellÚfsizeÚfreadÚfwriteÚfgetsÚfcloseÚfileÚreaddirÚpcre_replaceÚsizeÚpopÚunmapÚhasÚkeysÚvaluesrsÚfindrƒÚreplacer=ÚtrimÚremoveÚcontainsrNz\b)rvÚMethodReferenceÚRunnerÚDllÚThreadÚPipeÚProcessÚRunnableÚCGIÚClientSocketÚSocketÚServerSocketÚFileÚConsoleÚ	Directoryr z"(\\\\|\\[^\\]|[^"\\])*"z'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'z(\.)([a-zA-Z_]\w*)z
[a-zA-Z_]\w*:z
[a-zA-Z_$]\w*z[~^*!%&\[\](){}<>|+=:;,./?\-@]+z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+z[0-9]+L?z\nz[a-zA-Z_]\w*z#popz	[\w.]+\*?)r*r_rfcCsd}tjd|ƒr|d7}|S)zQpublic method and private method don't seem to be quite common
        elsewhere.rz\b(?:public|private)\s+method\bg{®Gáz„?)rr•)r?rr7r7r8rŸµszHybrisLexer.analyse_textN)’r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rÛrºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràr†rárârãrärårærçrèrérêrërìrírîr:rïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrârrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&rsr'rƒr(r=r)r*r+rN)r,r-r.r/r0r1r2r3r4r5r6r7r8r9r )'rErFrGrHrIrKrLrMrrr€r‚rrrr[rr
r	rQrPZ	DecoratorrWrXÚ	Namespacerr<rxr
ZCharrOr\rrSrRrTrZr^rŸr7r7r7r8r`s†cä@sneZdZdZdZdgZddgZdgZdZdZ	e	d	Z
d
e	dZded
Zde
dZ
dZddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽddd‘d’d“d”d•d–d—d˜d™dšd›dœddždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìdídîdïdðdñdòdógäZdôejfdõefdöe
d÷ejdøfdùe
dúejfdûeejeƒdüfded
eejeƒfeeedþeejeƒfeefde
dÿeejeeeejeƒfdejfdejfdefdefe
dúefge
dúejfe dƒgdôejdfdedfeedfdedfe
dúefgdœZ!e"j#dƒZ$e"j#dƒZ%dd	„Z&d
S(raJ
    Easytrieve Plus is a programming language for extracting, filtering and
    converting sequential data. Furthermore it can layout data for reports.
    It is mainly used on mainframe platforms and can access several of the
    mainframe's native file formats. It is somewhat comparable to awk.

    .. versionadded:: 2.1
    Z
EasytrieveZ
easytrievez*.eztz*.macztext/x-easytrieverz
 \'.,():\nÚ*ú[ú]ú(ú)z[^u[.+\-/=\[\](){}<>;,&%¬]zAFTER-BREAKz
AFTER-LINEzAFTER-SCREENZAIMÚANDZATTRZBEFOREzBEFORE-BREAKzBEFORE-LINEz
BEFORE-SCREENZBUSHUZBYÚCALLZCASEÚ
CHECKPOINTZCHKPzCHKP-STATUSZCLEARZCLOSEZCOLZCOLORZCOMMITÚCONTROLÚCOPYZCURSORÚDZDECLAREÚDEFAULTZDEFINEÚDELETEZDENWAZDISPLAYZDLIZDOZ	DUPLICATEÚEÚELSEzELSE-IFZENDzEND-CASEzEND-DOzEND-IFzEND-PROCZENDPAGEZENDTABLEZENTERÚEOFZEQÚERRORZEXITZEXTERNALZEZLIBZF1ZF10ZF11ZF12ZF13ZF14ZF15ZF16ZF17ZF18ZF19ZF2ZF20ZF21ZF22ZF23ZF24ZF25ZF26ZF27ZF28ZF29ZF3ZF30ZF31ZF32ZF33ZF34ZF35ZF36ZF4ZF5ZF6ZF7ZF8ZF9ZFETCHzFILE-STATUSZFILLZFINALZFIRSTz	FIRST-DUPZFORZGEÚGETZGOZGOTOZGQZGRÚGTZHEADINGÚHEXzHIGH-VALUESZIDDZIDMSZIFÚINZINSERTZJUSTIFYz
KANJI-DATEzKANJI-DATE-LONGz
KANJI-TIMEZKEYzKEY-PRESSEDZKOKUGOZKUNzLAST-DUPZLEZLEVELZLIKEZLINEz
LINE-COUNTzLINE-NUMBERZLINKÚLISTz
LOW-VALUESZLQZLSÚLTZMACROÚMASKZMATCHEDZMENDZMESSAGEZMOVEZMSTARTZNEZNEWPAGEZNOMASKZNOPRINTZNOTZNOTEZNOVERIFYZNQZNULLZOFÚORZ	OTHERWISEZPA1ZPA2ZPA3z
PAGE-COUNTzPAGE-NUMBERz
PARM-REGISTERzPATH-IDZPATTERNZPERFORMZPOINTÚPOSZPRIMARYZPRINTZ	PROCEDUREZPROGRAMÚPUTÚREADÚRECORDzRECORD-COUNTz
RECORD-LENGTHZREFRESHZRELEASEZRENUMÚREPEATÚREPORTzREPORT-INPUTZRESHOWZRESTARTZRETRIEVEzRETURN-CODEZROLLBACKZROWÚSZSCREENZSEARCHZ	SECONDARYZSELECTZSEQUENCEZSIZEZSKIPZSOKAKUZSORTZSQLÚSTOPZSUMZSYSDATEzSYSDATE-LONGZSYSINZSYSIPTZSYSLSTZSYSPRINTZSYSSNAPZSYSTIMEZTALLYzTERM-COLUMNSz	TERM-NAMEz	TERM-ROWSZTERMINATIONZTITLEZTOZTRANSFERZTRCZUNIQUEZUNTILZUPDATEZ	UPPERCASEÚUSERZUSERIDZVALUEZVERIFYÚWZWHENZWHILEZWORKÚWRITEÚXZXDMZXRSTz\*.*\nz\n+ú&z+\.Úafter_macro_argumentú%ú+z(FILE|MACRO|REPORT)(\s+)Úafter_declarationz
(JOB|PARM))rvz+)(\s*)(\.?)(\s*)(PROC)(\s*\n)z[0-9]+\.[0-9]*z[0-9]+z'(''|[^'])*'z\s+z#pop)r*rdraz^\s*\*z	^\s*MACROcs¾d}|jdƒ‰d}d}d}d}d}d}d}‡fdd„}	dd„}
x6ˆrt|
ˆdƒs\|	ˆdƒrt|
ˆdƒsld	}ˆd=q@Wtjjˆdƒršd
}|r–|d
7}nxŽˆD]†}|jƒ}t|ƒdkr |d}
|s |sú|sê|sÞ|
dkrÞd	}|
d
krêd	}|
dkr&d	}q |
dkr
d	}q |
dkrd	}q |
dkr d	}q W|rš||krš|rH|d7}|rh|r^|d7}n|d7}n2|d7}|r~|d7}|rŒ|d7}|rš|d7}d|ko®dknsºt‚|S)zP
        Perform a structural analysis for basic Easytrieve constructs.
        gÚ
Fcstjjˆdƒdk	S)Nr)rÚ_COMMENT_LINE_REGEXÚmatch)Úline)rvr7r8Ú
isCommentLine;sz3EasytrieveLexer.analyse_text.<locals>.isCommentLinecSst|jƒƒS)N)Úboolr‚)rhr7r7r8ÚisEmptyLine>sz1EasytrieveLexer.analyse_text.<locals>.isEmptyLinerTgš™™™™™Ù?éZPARMÚFILEZJOBZPROCzEND-PROCrYgš™™™™™¹?gš™™™™™é?gà?g)\Âõ(¼?gš™™™™™É?g{®Gáz„?gð?)r=rÚ_MACRO_HEADER_REGEXrgr>ÚAssertionError)r?rZ
hasEndProcZhasHeaderCommentZhasFileZhasJobZhasProcZhasParmZ	hasReportrirkrhrZ	firstWordr7)rvr8rŸ-sn







 zEasytrieveLexer.analyse_textNz(JOB|PARM)()'rErFrGrHrIrKrLrMr‚Z_DELIMITERSZ_DELIMITERS_OR_COMENTZ_DELIMITER_PATTERNZ_DELIMITER_PATTERN_CAPTUREZ!_NON_DELIMITER_OR_COMMENT_PATTERNZ_OPERATORS_PATTERNZ	_KEYWORDSr	rQrrrwrrrWr
rrVr[rrSrTr
rr^rr’rfrnrŸr7r7r7r8r¿s”












c@sBeZdZdZdZdgZdgZdgZej	Z
dejfde
jdfd	e
jd
fdefgded
fdeejee
jeƒdfdejdfdedfgde
jdfedƒgded
fde
dfde
dfgdejfdefdefdefdejfdejfdejfdedfded fd!efg
d"eee
jƒfd#efd$efded
fgd%ejfgd&œZej d'ej	ƒZ!d(d)„Z"d*S)+ra
    Job Control Language (JCL)
    is a scripting language used on mainframe platforms to instruct the system
    on how to run a batch job or start a subsystem. It is somewhat
    comparable to MS DOS batch and Unix shell scripts.

    .. versionadded:: 2.1
    ZJCLZjclz*.jclz
text/x-jclz//\*.*\nz//Ú	statementz/\*Újes2_statementz.*\nz\s*\nz#popz([a-z]\w*)(\s+)(exec|job)(\s*)Úoptionz[a-z]\w*Ústatement_commandz\s+zW\s+(command|cntl|dd|endctl|endif|else|include|jcllib|output|pend|proc|set|then|xmit)\s+z\$zR\b(jobparam|message|netacct|notify|output|priority|route|setup|signoff|xeq|xmit)\bz\*z[\[\](){}<>;,]z	[-+*/=&%]z	[a-z_]\w*z\d+\.\d*z\.\d+z\d+r%Ú
option_stringz[ \t]+Úoption_commentz\.z(\n)(//)z''z[^']z.+)r*rprsrqrrrtruz*^//[a-z#$@][a-z0-9#$@]{0,7}\s+job(\s+.*)?$cCsNd}|jdƒ}t|ƒdkr.tjj|dƒr.d}d|ko@dknsJt‚|S)z.
        Recognize JCL job by header.
        grergð?)r=r>rÚ_JOB_HEADER_PATTERNrgro)r?rrvr7r7r8rŸÅs
zJclLexer.analyse_textN)#rErFrGrHrIrKrLrMrršr‚r	rQrryrrrrr\rVrwrr<rr
rrSrTr
rr^r’rvrŸr7r7r7r8rsR




c9@sÞeZdZdZdZdZddgZdgZddgZd	e	j
fed
ƒgde	jfde
fd
e
fde
fdefdefdedfdefdefedZd"d#efed[d"d#ejfdQejfdRejfdSejjfdTejfgdUefdVefdedWfdedWfgdXœZdYS)\rz@
    For MiniScript source code.

    .. versionadded:: 2.6
    Z
MiniScriptzhttps://miniscript.orgZ
miniscriptÚmsz*.msztext/x-minicriptzapplication/x-miniscriptz#!(.*?)$r z//.*$z#(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?z(?i)\d+e[+-]?\d+z\d+z\nz[^\S\n]+r(rPz(==|!=|<=|>=|[=+\-*/%^<>.:])z[;,\[\]{}()]rurGrprHrkrRrarlÚisarbr<rjrhz\b)rvrVr¯r°r±r³Úcharr´r¸rÛræÚrndr‹rr¼r¾Ústrr¿ÚhasIndexÚindexOfr>ÚvalÚcoder*rœÚupperr(r=Úindexesr&rNrÚsortÚshuffleÚpushr"ÚpullÚrangerârr†rìÚlocalsÚglobalsÚouterÚyieldz(true|false|null)\bz(and|or|not|new)\bz(self|super|__isa)\bz[a-zA-Z_]\w*z[^"\n]+z""z#pop)r*r rPN)
rurGrprHrkrRrarlrxrbr<rjrh)-rVr¯r°r±r³ryr´r¸rÛrærzr‹rr¼r¾r{r¿r|r}r>r~rr*rœr€r(r=rr&rNrr‚rƒr„r"r…r†rârr†rìr‡rˆr‰rŠ)rErFrGrHrIrJrKrLrMr	rOrrQrrr
r
rrrrr<rXrUryrwr^r7r7r7r8rÒsL

)$rHrZpygments.lexerrrrrrrZpygments.tokenrr	r
rrr
rrrrrZ
pygments.utilrrÚ__all__rrrrrrrrrrrr7r7r7r8Ú<module>	s, 4
ECTDr+_AS