a
    lc~                    @   s,  d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZ ddlmZmZ g dZG dd deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#dS )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  e Zd ZdZdZdZdgZddgZddgZd	Z	d
Z
dZde	e
ef ZdZdejfedge	ejfe
ejfeefgeddejfdejfdejfdejfdefdedfdefdefdefdejfdejfdejdfdejfd ej fd!ejd"fd#e!fd$eje"d%d&fd'ej#e"d%d(fgedd)efd*eef e!j$fee!j%d+fd,ed+fgedee!j&d+fgedded+fee!j&fgd-ej'fgd$ejd+fd.ejfgd'ej#d+fd/ej#fgd0	Z(d1d2 Z)d3d4 Z*d5S )6r   a  
    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', ...]
    Luazhttps://www.lua.org/luaz*.luaz*.wluaz
text/x-luazapplication/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+)?#(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?(?i)\d+e[+-]?\d+\d+(?s)\[(=*)\[.*?\]\1\]z::labelz\.{3}z[=<>|~&+\-*/%#^]+|\.\.z[\[\]{}().,:;](and|or|not)\bzE(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\bzgoto\bgotoz	(local)\b(true|false|nil)\bz(function)\bfuncname[A-Za-z_]\w*(\.[A-Za-z_]\w*)?'stringescapesqs"dqsz[.:]z%s(?=%s*[.:])#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/   r0   r2   c                 K   st   t |dd| _t|dg | _t | _| jr^ddlm} | D ]\}}|| jvr>| j	| q>t
j| fi | d S )Nfunc_name_highlightingTdisabled_modulesr   )MODULES)r   r5   r   r6   set
_functionsZpygments.lexers._lua_builtinsr7   itemsupdater   __init__)selfoptionsr7   modfunc rA   U/var/www/html/django/DPS/env/lib/python3.9/site-packages/pygments/lexers/scripting.pyr<      s    
zLuaLexer.__init__c                 c   s   t | |D ]\}}}|tu r|| jv r:|tj|fV  qnPd|v r|d\}}|t|fV  |t| tdfV  |t| d t|fV  q|||fV  qd S )N.   )r   get_tokens_unprocessedr   r9   Builtinsplitlenr   )r=   textindextokenvalueabrA   rA   rB   rE      s    

zLuaLexer.get_tokens_unprocessedN)+__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesZ_comment_multilineZ_comment_singleZ_spaceZ_s_namer	   Preprocr   	MultilineSingler   r   r   HexFloatIntegerr   r   r
   Wordr   ReservedDeclarationConstantr   r   DoubleClassFunctionLabelEscapetokensr<   rE   rA   rA   rA   rB   r      s   

 




Nr   c                   @   sB  e Zd ZdZdZdZddgZdgZddgZd	e	j
fed
gde	jfdejfdejfdejfdejfdefdefdefdejfdejfdefdefdejfdejfedddefdejfdejfdejjfdejj fd ej fd!efd"eje!d#d$fd%ej"e!d#d&fgd'ej#fgd"ejd(fd)efgd%ej"d(fd*efgd+Z$d,d- Z%d.S )/r   z@
    For MoonScript source code.

    .. versionadded:: 1.5
    
MoonScriptzhttp://moonscript.org
moonscriptmoonz*.moonztext/x-moonscriptzapplication/x-moonscript#!(.*?)$r"   z--.*$r$   r%   z(?i)0x[0-9a-f]*r&   \n[^\S\n]+r'   z(->|=>)z:[a-zA-Z_]\w*z/(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])z[;,]z
[\[\]{}()][a-zA-Z_]\w*:)classZextendsifthensuperdowithimportZexportwhileZelseifreturnforinfromwhenusingelseandornotswitchbreak\bsuffixr+   r)   z(self)\bz@@?([a-zA-Z_]\w*)?z[A-Z]\w*r-   r.   r/   r0   r1   r2   z\\([abfnrtv\\"']|\d{1,3})r3   z[^']+z[^"]+)r4   r"   r/   r0   r2   c                 c   s<   t | |D ]*\}}}|tkr*|dkr*t}|||fV  qd S )NrC   )r   rE   r   r
   )r=   rI   rJ   rK   rL   rA   rA   rB   rE      s    z&MoonScriptLexer.get_tokens_unprocessedN)&rO   rP   rQ   rR   rS   rT   rU   rV   rW   r	   rY   r   r[   r   r]   r\   r^   r   r   r   r   re   Variabler
   r   r   Typer   rb   r_   rF   Pseudord   r   rc   rg   rh   rE   rA   rA   rA   rB   r      s^   



0r   c                   @   sR  e Zd ZdZdZdZddgZdgZddgZe	j
e	jB Zd	efd
ejfdejfdejfgeddejdfdedfedgdedfgeddefdefdedfdedfdefdefdedfdejdfdejfdejfdejfdejfdejfd ejfd!ej fd"ej!fd#ej"d$fd%ejfgd&ej#fd'ej"fd(ej"fd)ej"fd*ej"fd#ej"dfgd+Z$d,S )-r   z@
    For ChaiScript source code.

    .. versionadded:: 2.0
    
ChaiScriptzhttp://chaiscript.com/
chaiscriptchaiz*.chaiztext/x-chaiscriptzapplication/x-chaiscript\s+//.*?\n	/\*.*?\*/z^\#.*?\ncommentsandwhitespacez3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)r3   z(?=/))r3   badregexrm   rn   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*%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+[0-9]+r1   dqstringz'(\\\\|\\[^\\]|[^'\\])*'z\$\{[^"}]+?\}\$z\\\\z\\"z[^\\"$]+)r   r   r   r4   r   N)%rO   rP   rQ   rR   rS   rT   rU   rV   rW   reDOTALL	MULTILINEflagsr   r	   r[   rZ   r   r   Regexr   r
   r   r   ra   r`   rb   r   rF   r   r   r]   r\   r^   rc   Interpolrh   rA   rA   rA   rB   r      sj   


r   c                   @   s  e Zd ZdZdZdgZdgZdgZej	Z
dZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdejfdejdfde j!dfee"fee"j#fee$j%fee$j&fee$j'fee"j(fee"j(fee"j(fee"j(fee"j(fee"j(fee)fee)fee)fee)fee"j*fee"j*fde$j+fde,j-fde,j-fd e,j.fd!e,j/fee0fd"e)fd#e1fd$e2fd%e2fgd&ejfdejd'fd(ejd)fd*ejfgd+e j3fde j!d)fd,e)fd-e j!fgd.Z4d/S )0r   z]
    For Second Life's Linden Scripting Language source code.

    .. versionadded:: 2.0
    LSLlslz*.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-\+\+|\-\-|<<|>>|&&?|\|\|?|\^|~|[!%<>=*+\-/]=?r   /\*commentr1   stringz\b([a-zA-Z_]\w*)\bz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*z(\d+\.\d*|\.\d+)z0[xX][0-9a-fA-F]+r&   z:=?z[,;{}()\[\]]\n+r   z[^*/]+#push\*/r3   z[*/]z\\([nt"\\])z\\.z[^"\\]+)r4   r   r   N)5rO   rP   rQ   rR   rS   rU   rV   rW   r   r   r   Zlsl_keywordsZ	lsl_typesZ
lsl_statesZ
lsl_eventsZlsl_functions_builtinZlsl_constants_floatZlsl_constants_integerZlsl_constants_integer_booleanZlsl_constants_rotationZlsl_constants_stringZlsl_constants_vectorZlsl_invalid_brokenZlsl_invalid_deprecatedZlsl_invalid_illegalZlsl_invalid_unimplementedZlsl_reserved_godmodeZlsl_reserved_logZlsl_operatorsr	   r[   rZ   r   rc   r   r   r   rd   rF   re   rb   r   r`   r   r   r]   r\   r^   r
   r   r   rg   rh   rA   rA   rA   rB   r   -  s   

"


r   c                   @   s(  e Zd ZdZdZdZdgZdgZej	ej
B ZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdefdejfdefdefdejdfde fde!ee"j#efde!e$e"j#fde%fdd &e e%j'fd!d &ed"d"d#  e!e$e"j(fd$e!ee$efd%d &e e!e$e"j)fdd &e e"j*fdd &e e"j#fdd &e e$fdd &e e$fdd &e e"j#fd&d &e e"j#fdd &e e"j#fdd &e e"j+fd&d &e e"j#fdd &e e"j#fdd &e e"j#fd'ej,fde e"j-fd(e.j/fd)e.j0fgdejd*fd+ejd,fd-ejfd.ejfgd/Z1d"S )0r   z
    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
    AppleScriptzhttps://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.htmlapplescriptz*.applescriptz[a-zA-Z]\w*)r   zcurrent applicationfalseZlinefeedzmissing valuepiquoteresultrx   spacetabztext item delimiterstrueversion)zalias zapplication zboolean zclass z	constant zdate zfile zinteger zlist znumber zPOSIX file zreal zrecord z
reference z
RGB color zscript ztext z
unit typesz(?:Unicode )?textr   )
attachmentzattribute run	characterdaymonthZ	paragraphwordyear)ZaboutZaboveZagainstz
apart fromZaroundz
aside fromatZbelowZbeneathZbesideZbetweenry   givenz
instead ofonZontozout ofZoverZsince)3zASCII (character|number)activateZbeepz
choose URLzchoose applicationzchoose colorzchoose file( name)?zchoose folderzchoose from listzchoose remote applicationzclipboard infozclose( access)?copycountzcurrent datedelaydeletezdisplay (alert|dialog)zdo shell scriptZ	duplicateexistszget eofzget volume settingszinfo forZlaunchzlist (disks|folder)zload scriptlogmakezmount volumenewoffsetzopen( (for access|location))?zpath toprintquitzrandom numberreadroundzrun( script)?Zsayzscripting componentsz!set (eof|the clipboard to|volume)zstore scriptZ	summarizezsystem attributezsystem infozthe clipboardztime to GMTwritezquoted form)z(in )?back ofz(in )?front ofz[0-9]+(st|nd|rd|th)firstsecondthirdZfourthZfifthZsixthZseventhZeighthZninthZtenthafterbackbeforeZbehindZeveryfrontrJ   lastmiddleZsomethatZthroughZthruwhereZwhose).r   r   zis equalequalsz(is )?equal tozis notzisn'tzisn't equal( to)?zis not equal( to)?zdoesn't equalzdoes not equalz(is )?greater thanzcomes afterzis not less than or equal( to)?zisn't less than or equal( to)?z(is )?less thanzcomes beforez"is not greater than or equal( to)?z!isn't greater than or equal( to)?z"(is  )?greater than or equal( to)?zis not less thanzisn't less thanzdoes not come beforezdoesn't come beforez(is )?less than or equal( to)?zis not greater thanzisn't greater thanzdoes not come afterzdoesn't come afterzstarts? withzbegins? withz
ends? withz	contains?zdoes not containzdoesn't containzis inzis contained byz	is not inzis not contained byzisn't contained bydivr?   r   z(a  )?(ref( to)?|reference to)isZdoes)Zconsideringr~   errorexitr{   rq   Zignoringrz   repeattellrr   timestotryZuntilzusing terms fromrw   Zwhithzwith timeout( of)?zwith transactionZbycontinueendzits?meZmyrx   Zofas)globallocalzprop(erty)?r8   get)ZbutputZ	returningZthe)1zaction cellzalert replyZapplicationboxzbrowser( cell)?Zbundlezbutton( cell)?cellz	clip viewz
color wellzcolor-panelzcombo box( item)?controlz%data( (cell|column|item|row|source))?zdefault entryzdialog replyZdocumentz	drag infoZdrawereventzfont(-panel)?	formatterzimage( (cell|view))?matrixzmenu( item)?itemzmovie( view)?z
open-panelzoutline viewpanel
pasteboardpluginzpopup buttonzprogress indicatorZ	responderz
save-panelzscroll viewzsecure text field( cell)?Zslidersoundz
split viewZstepperztab view( item)?z-table( (column|header cell|header view|view))ztext( (field( cell)?|view))?ztoolbar( item)?zuser-defaultsviewwindow)tzaccept outline dropzaccept table dropactionZ	activatedzalert endedzawake from nibz
became keyzbecame mainzbegin editingzbounds changedz
cell valuezcell value changedzchange cell valuezchange item valuechangedzchild of itemzchoose menu itemZclickedzclicked toolbar itemclosedzcolumn clickedzcolumn movedzcolumn resizedzconclude dropzdata representationZdeminiaturizedzdialog endedzdocument nib namezdouble clickedz drag( (entered|exited|updated))?Zdropzend editingZexposedidlezitem expandablez
item valuezitem value changedzitems changedzkeyboard downzkeyboard upZlaunchedzload data representationminiaturizedz
mouse downzmouse draggedzmouse enteredzmouse exitedzmouse movedzmouse upmovedznumber of browser rowsznumber of itemsznumber of rowszopen untitledZopenedzpanel endedzparameters updatedzplugin loadedzprepare dropzprepare outline dragzprepare outline dropzprepare table dragzprepare table dropzread from filezresigned activezresigned keyzresigned mainzresized( sub views)?zright mouse downzright mouse draggedzright mouse upzrows changedzscroll wheelzselected tab view itemzselection changedzselection changingzshould begin editingzshould closezshould collapse itemzshould end editingzshould expand itemzshould open( untitled)?z'should quit( after last window closed)?zshould select columnzshould select itemzshould select rowzshould select tab view itemzshould selection changezshould zoomZshownzupdate menu itemzupdate parameterszupdate toolbar itemz
was hiddenzwas miniaturizedzwill become activez
will closezwill dismisszwill display browser cellzwill display cellzwill display item cellzwill display outline cellzwill finish launchingz	will hidezwill miniaturizez	will movez	will openzwill pop upz	will quitzwill resign activezwill resize( sub views)?zwill select tab view itemz	will showz	will zoomzwrite to filezoomed))Zanimateappendzcall methodcenterzclose drawerzclose paneldisplayzdisplay alertzdisplay dialogzdisplay panelgohide	highlight	incrementzitem forz
load imagez
load moviezload nibz
load panelz
load soundzlocalized stringz
lock focusr   zopen drawerzpath forpausezperform actionZplayregisterresumescrollzselect( all)?showzsize to fitstartz	step backzstep forwardstopZsynchronizezunlock focusr;   (5  zaccepts arrow keyzaction methodactiveZ	alignmentzallowed identifierszallows branch selectionzallows column reorderingzallows column resizingzallows column selectionzallows customizationzallows editing text attributeszallows empty selectionzallows mixed statezallows multiple selectionzallows reorderingzallows undozalpha( value)?zalternate imagezalternate increment valuezalternate titlezanimation delayzassociated file namezassociated objectzauto completeszauto displayzauto enables itemszauto repeatzauto resizes( outline column)?zauto save expanded itemszauto save namezauto save table columnszauto saves configurationzauto scrollzauto sizes all columns to fitzauto sizes cellszbackground colorzbezel statezbezel styleZbezeledzborder rectzborder typeZborderedzbounds( rotation)?zbox typezbutton returnedzbutton typezcan choose directorieszcan choose fileszcan drawzcan hidez$cell( (background color|size|type))?
charactersrp   zclick countzclicked( data)? columnzclicked data itemzclicked( data)? rowZ	closeableZ	collatingzcolor( (mode|panel))zcommand key downconfigurationz#content(s| (size|view( margins)?))?contextZ
continuouszcontrol key downzcontrol sizezcontrol tintzcontrol viewzcontroller visiblezcoordinate systemzcopies( on scroll)?zcorner viewzcurrent cellzcurrent columnzcurrent( field)?  editorzcurrent( menu)? itemzcurrent rowzcurrent tab view itemzdata sourcezdefault identifierszdelta (x|y|z)zdestination window	directoryzdisplay modezdisplayed cellzdocument( (edited|rect|view))?zdouble valuezdragged columnzdragged distancezdragged itemszdraws( cell)? backgroundz
draws gridzdynamically scrollszechos bulletsedgeeditablezedited( data)? columnzedited data itemzedited( data)? rowenabledzenclosing scroll viewzending pagezerror handlingzevent numberz
event typezexcluded from windows menuzexecutable pathexpandedz
fax numberzfield editorz	file kindz	file namez	file typezfirst responderzfirst visible columnZflippedZfloatingzfont( panel)?r   zframeworks pathZ	frontmostzgave upz
grid colorzhas data itemszhas horizontal rulerzhas horizontal scrollerzhas parent data itemzhas resize indicatorz
has shadowzhas sub menuzhas vertical rulerzhas vertical scrollerzheader cellzheader viewZhiddenzhides when deactivatedzhighlights byzhorizontal line scrollzhorizontal page scrollzhorizontal ruler viewzhorizontally resizablez
icon imageid
identifierzignores multiple clicksz;image( (alignment|dims when disabled|frame style|scaling))?zimports graphicszincrement valuezindentation per levelZindeterminaterJ   zinteger valuezintercell spacingzitem heightz+key( (code|equivalent( modifier)?|window))?zknob thicknessr(   zlast( visible)? columnzleading offsetleaflevelzline scrollZloadedzlocalized sortlocationz	loop modezmain( (bunde|menu|window))?zmarker follows cellzmatrix modezmaximum( content)? sizezmaximum visible columnszmenu( form representation)?Zminiaturizabler   zminimized imagezminimized titlezminimum column widthzminimum( content)? sizemodalmodifiedzmouse down statezmovie( (controller|file|rect))?ZmutedrS   zneeds displayz
next statez	next textznumber of tick markszonly tick mark valuesopaquez
open panelzoption key downzoutline table columnzpage scrollzpages acrossz
pages downzpalette labelzpane splitterzparent data itemzparent windowr   zpath( (names|separator))?Zplayingzplays every framezplays selection onlypositionzpreferred edgezpreferred typeZpressurezprevious textprompt
propertieszprototype cellz
pulls downZratezreleased when closedZrepeatedzrequested print timezrequired file typeZ	resizablezresized columnzresource pathzreturns recordszreuses columnsz	rich textz	roll overz
row heightzrulers visiblez
save panelzscripts pathZ
scrollablezselectable( identifiers)?zselected cellzselected( data)? columns?zselected data items?zselected( data)? rows?zselected item identifierzselection by rectzsend action on arrow keyzsends action when done editingzseparates columnszseparator itemzsequence numberzservices menuzshared frameworks pathzshared support pathZsheetzshift key downzshows alphazshows state byzsize( mode)?zsmart insert delete enabledzsort case sensitivityzsort columnz
sort orderz	sort typezsorted( data rows)?r   zsource( mask)?zspell checking enabledzstarting pagestatezstring valuezsub menuz
super menuz
super viewztab key traverses cellsz	tab stateztab typeztab viewz
table viewtagztarget( printer)?z
text colorztext container insertztext container originztext returnedztick mark positionz
time stampz+title(d| (cell|font|height|position|rect))?ztool tipZtoolbarztrailing offsettransparentztreat packages as directoriesztruncated labelstypeszunmodified characterszupdate viewszuse sort indicatorzuser defaultszuses data sourcez
uses rulerzuses threaded animationzuses title from previous columnzvalue wrapsr   z0vertical( (line scroll|page scroll|ruler view))?zvertically resizabler   zvisible( document rect)?volumewidthr   zwindows menuwrapsZzoomabler   r   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)Nz^(\s*)(in|on|script|to)(\s+)z\b(as )(%s)\bz
\b(%s)s?\b"(\\\\|\\[^\\]|[^"\\])*"z&[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?z[-+]?\d+r   z\*\)r3   z[^*(]+z[*(])r4   r   )2rO   rP   rQ   rR   rS   rT   rU   rV   r   r   r   r   ZIdentifiersZLiteralsZClassesZBuiltInZHandlerParamsCommandsZ
ReferencesZ	OperatorsControlZDeclarationsr`   ZStudioClassesZStudioEventsZStudioCommandsZStudioPropertiesr   r   rg   r	   rZ   r   r   r   rF   r   r
   joinr_   re   rd   rb   	Attributerc   r   r   r]   r^   rh   rA   rA   rA   rB   r     s   
, 



&

r   c                   @   s  e Zd ZdZdZdZddgZg dZdgZe	j
Zdefd	ejd
fdedfdedfdefdeejeeeejfdeejeefedededdefgedddeejeefgdejfgdefgdefdefdedfdedfgdefd efd!edfdedfgd"ejfd#ejdfd$ejfgd%Zd&d' Zed(Zed)Z ed*Z!ed+Z"ed,Z#ed-Z$ed.Z%ed/fe d0fe!d1fe$d1fe"d1fe#d2fe%d/ffZ&d3d4 Z'd5S )6r   a  
    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
    Rexxzhttp://www.rexxinfo.org/rexxarexx)z*.rexxz*.rexz*.rxz*.arexxztext/x-rexxr   r   r   r1   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operator	[a-z_]\w*)BZabbrevabsaddressargZb2xZbitandZbitorZbitxorZc2dZc2xr   ZcharinZcharoutcharscompare	conditionZcopiesZd2cZd2xdatatypedateZdelstrZdelworddigitsZ	errortextformformatZfuzzinsertlastposleftlengthZlineinZlineoutlinesmaxminoverlayposZqueuedrandomreverserightsignZ
sourceliner   streamstripsubstrZsubwordsymboltimetrace	translatetruncrL   verifyr   Z	wordindexZ
wordlengthZwordposr   Zx2bZx2cZx2dxrangez	(\s*)(\()r   z(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   (-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|¬>>|¬>|¬|\.|,)[^"\n]+""r3   rm   z[^\'\n]+z\'\'z\'z[^*]+r   \*)r4   r-  r.  r/  r+  r,  r   c                 C   s   t | t jS N)r   compiler   )srA   rA   rB   <lambda>      zRexxLexer.<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)\b皙?g?皙?      ?c                    sP   t d| t jrdS | drL|   t fddtjD d }t|dS dS )zs
        Check for initial comment and patterns that distinguish Rexx from other
        C-like languages.
        z/\*\**\s*rexx      ?z/*c                 3   s    | ]\}}|  r|V  qd S rV  )search).0patternweightZ	lowerTextrA   rB   	<genexpr>/  s   
z)RexxLexer.analyse_text.<locals>.<genexpr>{Gz?N)	r   r_  
IGNORECASE
startswithlowersumr   PATTERNS_AND_WEIGHTSrB  rI   r   rA   rc  rB   analyse_text"  s    
zRexxLexer.analyse_textN)(rO   rP   rQ   rR   rS   rT   rU   rV   rW   r   rf  r   r   r	   rZ   r   r   r   r   re   r
   r   ra   rf   r   r   r   rF   r`   rh   Z_cZ_ADDRESS_COMMAND_PATTERNZ_ADDRESS_PATTERNZ_DO_WHILE_PATTERNZ_IF_THEN_DO_PATTERNZ_PROCEDURE_PATTERNZ_ELSE_DO_PATTERNZ_PARSE_ARG_PATTERNrj  rl  rA   rA   rA   rB   r     s   


=
r   c                   @   s   e Zd ZdZdZdZdgZddgZdgZdd	e	j
fd
efdejfdejfdefdejfdejjfdefdefdefdeejefdefgiZdS )r   zN
    For MOOCode (the MOO scripting language).

    .. versionadded:: 0.9
    MOOCodezhttp://www.moo.mud.org/z*.moomoocodemooztext/x-moocoder4   z(0|[1-9][0-9_]*)r#  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)r   rm   z([!;=,{}&|:.\[\]@()<>?]+)z	(\w+)(\()z(\w+)N)rO   rP   rQ   rR   rS   rT   rV   rU   rW   r   r^   r   r   	ExceptionEntityr   rF   r   Instancer   r
   r   re   rh   rA   rA   rA   rB   r   5  s.   
r   c                   @   s4  e Zd ZdZdZddgZddgZddgZej	ej
B Zd	eeejeefd
efdejfdejfdejfdefdejfdejfdeejedfdeejedfedddejfedddejfdefdejfdeeejfdejfdefdefde j!fd e j"fd!e j#fd"efgd#ej$d$fgd%ejd$fgd&Z%d'd( Z&d)S )*r   z<
    For Hybris source code.

    .. versionadded:: 1.4
    Hybrishybrishyz*.hyz*.hybztext/x-hybriszapplication/x-hybrisz>^(\s*(?:function|method|operator\s+)+?)([a-zA-Z_]\w*)(\s*)(\()rn   r   r   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+)rp   z(import|include)(\s+)rv   )Z
gc_collectZgc_mm_itemsZgc_mm_usageZgc_collect_threshold	urlencodeZ	urldecodeZbase64encodeZbase64decodesha1crc32Zsha2md5Zmd5_fileacosasinatanatan2ceilcoscoshexpfabsfloorfmodr   log10powsinsinhsqrttantanhZisintZisfloatZischarisstringZisarrayZismapZisaliasZtypeofZsizeofZtointZtostringZfromxmlZtoxmlbinarypackloadevalZ	var_namesZ
var_valuesZuser_functionsZdyn_functionsmethodscallZcall_methodmknodmkfifomountZumount2ZumountZticksZusleepsleeprM  ZstrtimeZstrdateZdllopenZdlllinkZdllcallZdllcall_argvZdllcloseenvexecforkgetpidwaitpopenZpcloser   killZpthread_createZpthread_create_argvZpthread_exitZpthread_joinpthread_killZ	smtp_sendZhttp_getZ	http_postZhttp_downloadsocketbindlistenacceptgetsocknamegetpeername
settimeoutconnectserverrecvsendcloser   ZprintlnZprintfinputreadlineZserial_openZserial_fcntlZserial_get_attrZserial_get_ispeedZserial_get_ospeedZserial_set_attrZserial_set_ispeedZserial_set_ospeedZserial_writeZserial_readZserial_closeZxml_loadZ	xml_parseZfopenZfseekZftellfsizeZfreadZfwriteZfgetsZfclosefileZreaddirZpcre_replacesizepopZunmaphaskeysvaluesr?  findrK  replacerG   Ztrimremovecontainsr&  r   r   )ZMethodReferenceZRunnerZDllThreadZPipeProcessZRunnableZCGIZClientSocketZSocketZServerSocketFileConsoleZ	Directoryrp  r#  z'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'z(\.)([a-zA-Z_]\w*)ro   z[a-zA-Z_$]\w*z[~^*!%&\[\](){}<>|+=:;,./?\-@]+r   z0x[0-9a-f]+z[0-9]+L?rm   [a-zA-Z_]\w*r3   z	[\w.]+\*?)r4   rp   rv   c                 C   s   d}t d| r|d7 }|S )zQpublic method and private method don't seem to be quite common
        elsewhere.r   z\b(?:public|private)\s+method\bre  )r   r_  rk  rA   rA   rB   rl    s    zHybrisLexer.analyse_textN)'rO   rP   rQ   rR   rS   rU   rV   rW   r   r   r   r   r   r   r   re   r   r
   r	   r[   rZ   	Decoratorra   rb   	Namespacer   rF   r   r   Charr'  rf   r   r]   r\   r^   rd   rh   rl  rA   rA   rA   rB   r   `  sr   
?

Gr   c                   @   s  e Zd ZdZdZdgZddgZdgZdZdZ	e	d	 Z
d
e	 d Zde d Zde
 d ZdZg dZdejfdefde d ejdfde d ejfdeejedfde d eejefeeedeejefeefde d eejeeeejefdejfdejfdefd efed efged ejfe d!gdejd!fd ed!feed!fded!fed efgd"Z!e"#d#Z$e"#d$Z%d%d& Z&d'S )(r   aJ  
    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
    
Easytrieve
easytrievez*.eztz*.macztext/x-easytriever   z
 \'.,():\n*[]()z[^u   [.+\-/=\[\](){}<>;,&%¬])zAFTER-BREAKz
AFTER-LINEzAFTER-SCREENZAIMANDZATTRZBEFOREzBEFORE-BREAKzBEFORE-LINEzBEFORE-SCREENZBUSHUZBYCALLZCASE
CHECKPOINTZCHKPzCHKP-STATUSCLEARZCLOSEZCOLZCOLORZCOMMITCONTROLCOPYZCURSORDZDECLAREDEFAULTZDEFINEDELETEZDENWAZDISPLAYZDLIZDOZ	DUPLICATEEELSEzELSE-IFZENDzEND-CASEzEND-DOzEND-IFEND-PROCZENDPAGEZENDTABLEZENTERZEOFZEQERRORZEXITZEXTERNALZEZLIBZF1ZF10ZF11ZF12ZF13ZF14ZF15ZF16ZF17ZF18ZF19ZF2ZF20ZF21ZF22ZF23ZF24ZF25ZF26ZF27ZF28ZF29ZF3ZF30ZF31ZF32ZF33ZF34ZF35ZF36ZF4ZF5ZF6ZF7ZF8ZF9ZFETCHzFILE-STATUSZFILLZFINALZFIRSTz	FIRST-DUPZFORZGEGETZGOZGOTOZGQZGRGTZHEADINGHEXzHIGH-VALUESZIDDZIDMSZIFINZINSERTZJUSTIFYz
KANJI-DATEzKANJI-DATE-LONGz
KANJI-TIMEZKEYzKEY-PRESSEDZKOKUGOZKUNzLAST-DUPZLEZLEVELZLIKEZLINEz
LINE-COUNTzLINE-NUMBERZLINKLISTz
LOW-VALUESZLQZLSLTZMACROMASKZMATCHEDZMENDZMESSAGEZMOVEZMSTARTZNEZNEWPAGEZNOMASKZNOPRINTNOTNOTEZNOVERIFYZNQZNULLZOFORZ	OTHERWISEZPA1ZPA2ZPA3z
PAGE-COUNTzPAGE-NUMBERzPARM-REGISTERzPATH-IDZPATTERNZPERFORMZPOINTZPOSZPRIMARYZPRINTZ	PROCEDUREZPROGRAMPUTREADRECORDzRECORD-COUNTzRECORD-LENGTHZREFRESHZRELEASEZRENUMREPEATREPORTzREPORT-INPUTZRESHOWZRESTARTZRETRIEVEzRETURN-CODEZROLLBACKZROWSZSCREENZSEARCHZ	SECONDARYZSELECTZSEQUENCEZSIZEZSKIPZSOKAKUZSORTSQLSTOPZSUMZSYSDATEzSYSDATE-LONGZSYSINZSYSIPTZSYSLSTZSYSPRINTZSYSSNAPZSYSTIMEZTALLYzTERM-COLUMNSz	TERM-NAMEz	TERM-ROWSZTERMINATIONZTITLEZTOZTRANSFERZTRCZUNIQUEZUNTILZUPDATEZ	UPPERCASEUSERZUSERIDZVALUEZVERIFYWZWHENZWHILEZWORKWRITEXZXDMZXRSTz\*.*\nr   &z+\.after_macro_argument%+z(FILE|MACRO|REPORT)(\s+)after_declarationz(JOB|PARM)(r   z+)(\s*)(\.?)(\s*)(PROC)(\s*\n)z[0-9]+\.[0-9]*r   z'(''|[^'])*'r   r3   )r4   r  r  z^\s*\*z	^\s*MACROc                    s  d}|  d d}d}d}d}d}d}d} fdd}	dd }
 rr|
 d sZ|	 d rr|
 d sjd	} d= q>tj d rd
}|r|d
7 }n D ]}|  }t|dkr|d }|s|s|s|s|dkrd	}|dkrd	}|dkrd	}q|dk rd	}q|dkrd	}q|dkrd	}q|r||kr|r:|d7 }|rZ|rP|d7 }n|d7 }n2|d7 }|rp|d7 }|r~|d7 }|r|d7 }d|  krdksn J |S )zP
        Perform a structural analysis for basic Easytrieve constructs.
                
Fc                    s   t j d d uS )Nr   )r   _COMMENT_LINE_REGEXmatchliner@  rA   rB   isCommentLine;  s    z3EasytrieveLexer.analyse_text.<locals>.isCommentLinec                 S   s   t |   S rV  )boolrJ  r  rA   rA   rB   isEmptyLine>  s    z1EasytrieveLexer.analyse_text.<locals>.isEmptyLiner   Tg?   ZPARMFILEZJOBZPROCr  r  r\  g?r]  g)\(?r[  re  r^  )rG   r   _MACRO_HEADER_REGEXr  rH   )rI   r   Z
hasEndProcZhasHeaderCommentZhasFileZhasJobZhasProcZhasParmZ	hasReportr  r  r  r   Z	firstWordrA   r  rB   rl  -  sn    





zEasytrieveLexer.analyse_textN)'rO   rP   rQ   rR   rS   rU   rV   rW   r   Z_DELIMITERSZ_DELIMITERS_OR_COMENTZ_DELIMITER_PATTERNZ_DELIMITER_PATTERN_CAPTUREZ!_NON_DELIMITER_OR_COMMENT_PATTERNZ_OPERATORS_PATTERNZ	_KEYWORDSr	   r[   r   r   r   r   r   ra   r
   r   r`   re   r   r]   r^   r   r   rh   r   rW  r  r  rl  rA   rA   rA   rB   r     sj   %







(

r   c                   @   sB  e Zd ZdZdZdgZdgZdgZej	Z
dejfdejdfd	ejd
fdefgdedfdeejeejedfdejdfdedfgdejdfedgdedfdedfdedfgdejfdefdefdefdejfdejfdejfdedfded fd!efg
d"eeejfd#efd$efdedfgd%ejfgd&Ze d'ej	Z!d(d) Z"d*S )+r   a  
    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
    JCLjclz*.jclz
text/x-jclz//\*.*\nz//	statementr   jes2_statementz.*\nz\s*\nr3   z([a-z]\w*)(\s+)(exec|job)(\s*)optionz[a-z]\w*statement_commandr   zW\s+(command|cntl|dd|endctl|endif|else|include|jcllib|output|pend|proc|set|then|xmit)\s+r   zR\b(jobparam|message|netacct|notify|output|priority|route|setup|signoff|xeq|xmit)\brU  z[\[\](){}<>;,]z	[-+*/=&%]r0  z\d+\.\d*z\.\d+r&   r.   option_stringz[ \t]+option_commentz\.z(\n)(//)z''z[^']z.+)r4   r  r  r  r   r  r  z*^//[a-z#$@][a-z0-9#$@]{0,7}\s+job(\s+.*)?$c                 C   sL   d}|  d}t|dkr.tj|d r.d}d|  krBdksHn J |S )z.
        Recognize JCL job by header.
        r  r  r   r^  )rG   rH   r   _JOB_HEADER_PATTERNr  )rI   r   r@  rA   rA   rB   rl    s    
zJclLexer.analyse_textN)#rO   rP   rQ   rR   rS   rU   rV   rW   r   rf  r   r	   r[   r   r   r   r   r   r   rf   r`   r   r   rF   r   r
   r   r]   r^   r   r   rh   rW  r  rl  rA   rA   rA   rB   r     sj   


	4r   c                   @   s   e Zd ZdZdZdZddgZdgZddgZd	e	j
fed
gde	jfdefdefdefdefdefdedfdefdefedddefedddejfdejfdejfdejjfdejfgdefdefdedfdedfgd Zd!S )"r   z@
    For MiniScript source code.

    .. versionadded:: 2.6
    
MiniScriptzhttps://miniscript.org
miniscriptmsz*.msztext/x-minicriptzapplication/x-miniscriptrl   r"   z//.*$r$   r%   r&   rm   rn   r1   r+  z(==|!=|<=|>=|[=+\-*/%^<>.:])z[;,\[\]{}()])r   r   r~   r   ry   r-  rq   rz   Zisarr   r   rx   rw   r   r   )-r1  rz  r{  r|  r~  charr  r  r   r   Zrndr   rH  r  r  strr  ZhasIndexindexOfrH   valcoder  rh  upperr  rG   Zindexesr  r&  ri  sortshufflepushr  pullranger   r  rM  r  localsglobalsouteryieldz(true|false|null)\bz(and|or|not|new)\bz(self|super|__isa)\br  rS  rT  r3   )r4   r"   r+  N)rO   rP   rQ   rR   rS   rT   rU   rV   rW   r	   rY   r   r[   r   r   r   r
   r   r   r   r   rF   rb   r_   r   r   rh   rA   rA   rA   rB   r     sN   	
r   )$rR   r   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   r   r   Zpygments.utilr   r   __all__r   r   r   r   r   r   r   r   r   r   r   rA   rA   rA   rB   <module>   s(   
 4 ECT  Dr+_ AS