a
    ñ»j E ã                   @   sT  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dd„ ZG d	d
„ d
eƒZdd„ Zd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-present 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Ú	LuauLexerÚMoonScriptLexerÚChaiscriptLexerÚLSLLexerÚAppleScriptLexerÚ	RexxLexerÚMOOCodeLexerÚHybrisLexerÚEasytrieveLexerÚJclLexerÚMiniScriptLexerc                  C   s   ddl m}  dd„ |  ¡ D ƒS )Nr   ©ÚMODULESc                 S   s   g | ]}|D ]}|‘qqS © r#   )Ú.0ÚvaluesÚwr#   r#   ú?E:\soccer\ml_env\Lib\site-packages\pygments/lexers/scripting.pyÚ
<listcomp>   ó    z$all_lua_builtins.<locals>.<listcomp>)Úpygments.lexers._lua_builtinsr"   r%   r!   r#   r#   r'   Úall_lua_builtins   s    r+   c                   @   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Zde
› de› de› d�Zd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eg d ¢d!d"�e j!fd#e j!d$fd%e j"fd&e j#fd'e j!d(fee$ƒ d!d"�e%j&fd)e› d*�e%j'fd)e› d+�e%j(d,fd)e› d-�e%j(d,fd.e%j(fd/eje)d0d1ƒfd2ej*e)d0d3ƒfgedƒd4ed5fd6efd7ed8fe› d9e› d+�e%j+fe› d9e› d*�e%j'd5fee%j+d5fgedƒd6efe› d9e› d+�e%j,fee%j'd5fd:ed5fgedƒee%j-d5fgedƒded5fee%j-fgedƒd;ed<fee%j.fgd=ej/fgd/ejd5fd>ejfgd2ej*d5fd?ej*fgd@œZ0dAdB„ Z1dCdD„ Z2dES )Fr   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-luaÚ ú-(?:--\[(?P<level>=*)\[[\w\W]*?\](?P=level)\])ú	(?:--.*$)z(?:\s+(?!\s))z(?:ú|ú)ú\sz(?:[^\W\d]\w*)ú#!.*Ú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)\b)ÚbreakÚdoÚelseÚelseifÚendÚforÚifÚinÚrepeatÚreturnÚthenÚuntilÚwhileú\b©Úsuffixzgoto\bÚgotoúlocal\bú(true|false|nil)\bú
function\bÚfuncnamez[A-Za-z_]\w*(?=z*\()ú*[.:])Úvarnamez*<.+?>)ú[A-Za-z_]\w*ú'ÚstringescapeÚsqsú"Údqsz\.\.ú#popú[.:]ú<Ú	attributez(?=ú\(ú>z#pop:2zM\\([abfnrtv\\"\']|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})ú[^\\']+ú[^\\"]+)Úrootr6   r5   rS   rQ   rM   r;   r]   rV   rW   rY   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   r!   )r   rc   r   rd   ÚsetÚ
_functionsr*   r"   ÚitemsÚupdater   Ú__init__)ÚselfÚoptionsr"   ÚmodÚfuncr#   r#   r'   ri   ª   s    ÿ
zLuaLexer.__init__c                 c   sš   t  | |¡D ]ˆ\}}}|tju rˆ|| jvrˆd|v rz| d¡\}}|t|fV  |t|ƒ tdfV  |t|ƒ d t|fV  q|t|fV  q|||fV  qd S )NÚ.é   )r   Úget_tokens_unprocessedr   ÚBuiltinrf   ÚsplitÚlenr   )rj   ÚtextÚindexÚtokenÚvalueÚaÚbr#   r#   r'   rp   ·   s    
ÿzLuaLexer.get_tokens_unprocessedN)3Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚ_comment_multilineÚ_comment_singleZ_spaceÚ_sÚ_s_laÚ_namer	   ÚPreprocr   Ú	MultilineÚSingler   r   r   ÚHexÚFloatÚIntegerr   r   r
   ÚWordr   r   ÚReservedÚDeclarationÚConstantr+   r   rq   ÚFunctionÚVariabler   ÚDoubleÚPropertyÚClassÚLabelÚ	AttributeÚEscapeÚtokensri   rp   r#   r#   r#   r'   r      s¬   ýýýý

Þ&
ù
ú

þýýÿÿ
þ
þ¢dr   c                 C   sŒ   dt jdfdt jdfdt jdftddd�tjdfdtdfd	tt	t
jƒdfd
tt	t
jƒdfd|› d�t
jdfdt
dfg	}| r~|S dd„ |D ƒS )Nz0[xX][\da-fA-F_]*rZ   z0[bB][\d_]*z,\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)ÚtrueÚfalseÚnilrJ   rK   z\[(=*)\[[.\n]*?\]\1\]z (\.)([a-zA-Z_]\w*)(?=%s*[({"\'])ú(\.)([a-zA-Z_]\w*)z"[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?=z	*[({"\'])z[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*c                 S   s   g | ]}|d d… ‘qS )Né   r#   ©r$   Úentryr#   r#   r'   r(   Ù   r)   z)_luau_make_expression.<locals>.<listcomp>)r   rŒ   ÚBinr�   r   r   r’   r   r   r   r   r“   r”   r   )Ú
should_popr†   r‡   Ú	temp_listr#   r#   r'   Ú_luau_make_expressionÅ   s"    


þþñr¦   c                 C   sP   dt dfdt dfdt dfdtjdfd	tjd
fdtjdfg}| rB|S dd„ |D ƒS )Nú\{)rZ   Úclosing_brace_baseÚ
expressionr^   ©rZ   Úclosing_parenthesis_baser©   z::?©rZ   Útype_endÚ
type_startrU   ©rZ   Ústring_singlerX   ©rZ   Ústring_doubleú`)rZ   Ústring_interpolatedc                 S   s*   g | ]"}|d  |d |d dd… f‘qS )r   ro   r    Nr#   r¡   r#   r#   r'   r(   è   r)   z1_luau_make_expression_special.<locals>.<listcomp>)r   r   r‹   r•   ÚBacktick)r¤   r¥   r#   r#   r'   Ú_luau_make_expression_specialÛ   s    


ø
r¶   c                   @   s¬  e Zd ZdZdZdZdgZdgZdZdZ	dZ
d	 e	e
d
¡ZdZdejdfedƒge	ejfe
ejfd
efgedƒgedƒ¢def‘de› d�ejdf‘de› d�ejf‘dedf‘dedf‘eddd�ejdf‘eddd�ejdf‘dejdf‘dejdf‘def‘ed ƒ‘edeeƒ¢d!edf‘ed"dd�ejfgedƒd#ejd$fdejfged%ƒ¢ded&f‘dejd'f‘ed ƒ‘ed%eeƒ¢ed&ƒ‘edƒd(ejd&fed)dd�ejdfed&ƒgd*ed&fgd+ed&fgd,ed&fged-ƒedƒged-ƒed.ƒged/ƒedƒged/ƒed.ƒged0ƒed.ƒgd1ejfd2ejfged3ƒd4ejd&fd5ejfged3ƒd6ej d&fd7ej fged3ƒd8ed9fd:ej!d&fd;ej!fgedƒd<efd=e› d>�e"j#fd?e"j$fd@edAfdBed&fgedƒdBedCfd8edDfd@edAfd4ejdEfd6ej dFfdGefdHefdIe"j%dJfd?e"j#fg
edƒdBedKfd8edLfd@edMfd4ejdNfd6ej dOfdIe"j%dPfd?e"j#d&fgedƒdQedRfdHedRfd@edAfed&ƒgedƒd?e"j#fd@edAfdSedTfgdUœZ&dVdW„ Z'dXdY„ Z(dZS )[r   a  
    For Luau source code.

    Additional options accepted:

    `include_luau_builtins`
        If given and ``True``, automatically highlight Luau builtins
        (default: ``True``).
    `include_roblox_builtins`
        If given and ``True``, automatically highlight Roblox-specific builtins
        (default: ``False``).
    `additional_builtins`
        If given, must be a list of additional builtins to highlight.
    `disabled_builtins`
        If given, must be a list of builtins that will not be highlighted.
    ÚLuauzhttps://luau-lang.org/Úluauz*.luauz2.18r/   r0   z(?:{}|{}|{})ú\s+r3   r4   r5   r6   Fz\.\.\.z	type\b(?=z+[a-zA-Z_])Útype_declarationzexport\b(?=z(?:\.\.|//|[+\-*\/%^<>=])=?r©   z~=)ÚandÚorÚnotrJ   rK   )r@   rB   rC   rD   rE   rF   rH   rI   rN   rP   )r©   Ú	func_namez[\])};]+Úexpression_staticz[\[.,])r=   Úcontinuer>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   zif\b)Úternaryr©   TrZ   r¾   zelse\b)rG   r@   ú\}z\)r_   Úclosing_parenthesis_popÚtypeÚclosing_brace_popÚclosing_gt_popz\\z\s*zP\\(?:[abfnrtvz\\"\'`\{\n])|[\r\n]{1,2}|x[\da-fA-F]{2}|\d{1,3}|u\{\}[\da-fA-F]*\}Ústring_escaperU   r`   rX   ra   r§   )r¨   r©   r³   z	[^\\`\{]+r[   z[a-zA-Z_]\w*(?=rR   ú[a-zA-Z_]\w*r\   Úclosing_gt_typer^   Úclosing_parenthesis_typeÚclosing_brace_typer°   r²   z[|&\.,\[\]:=]+z->ztypeof\()r«   r©   )rZ   rÊ   )rZ   rË   )rZ   rÉ   r¯   r±   rª   z[|&\.]r®   ú=r¬   )rb   r6   r5   r¿   r©   rÁ   rÅ   rÃ   rÆ   r«   rÊ   r¨   rË   rÉ   rÇ   r°   r²   r´   r¾   rÄ   r®   r­   rº   c                 K   s¸   t |ddƒ| _t |ddƒ| _t|dg ƒ| _t|dg ƒ| _t| jƒ| _| jrbddlm	} | j 
|¡ | jr€dd	lm} | j 
|¡ | jr”| j 
| j¡ | j | j¡ tj| fi |¤Ž d S )
NÚinclude_luau_builtinsTÚinclude_roblox_builtinsFÚadditional_builtinsÚdisabled_builtinsr   )ÚLUAU_BUILTINS)ÚROBLOX_BUILTINS)r   rÍ   rÎ   r   rÏ   rÐ   re   Ú	_builtinsZpygments.lexers._luau_builtinsrÑ   rh   rÒ   Údifference_updater   ri   )rj   rk   rÑ   rÒ   r#   r#   r'   ri   Ì  s&    ÿÿzLuauLexer.__init__c                 c   sH  t  | |¡D �]4\}}}|tu s,|tju �r6| d¡}g }|}tt|ƒddƒD ]j}d |d |… ¡}	|	| jv r¤|tj	|	fV  |t|	ƒ7 }|r |t
dfV  |d7 } qº| d||d  ¡ qNt|ƒD ]p\}}
|d t|ƒk�r|tu rô|tj|
fV  qÂ|tj|
fV  qÂ|tj|
fV  |t|
ƒ7 }|t
dfV  |d7 }qÂq|||fV  qd S )Nrn   r   éÿÿÿÿro   )r   rp   r   r   rr   Úrangers   ÚjoinrÓ   rq   r   ÚinsertÚ	enumerater”   r“   )rj   rt   ru   rv   rw   Zsplit_valueZcomplete_valueZ	new_indexÚpositionZpotential_stringZ	substringr#   r#   r'   rp   á  s:    
ÿ


z LuauLexer.get_tokens_unprocessedN))rz   r{   r|   r}   r~   r   r€   r�   rƒ   r„   r…   Úformatr†   r‡   r	   ÚHashbangr   rŠ   r‹   r   r   r¶   r   r   r�   r
   r   r�   r‘   r¦   r   rš   r•   rµ   r   r—   r“   rq   r›   ri   rp   r#   r#   r#   r'   r   ê   sP  
þýÿýüúù	÷
öþþôþþð
í
ëéç
æäýýÿ
ûúù	
÷õ
ôò
þþøÿÿÿþþþþþÿþ
ü
ü
ú
÷


ñ



ôøú€ Ç D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	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ee"ƒ d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fgd*ej&d+fe'dƒgd&ej$d+fd,efd-ej&d.fd/efe'd0ƒgd#ejd+fd1efe'd0ƒgd2œZ(d3d4„ Z)d5S )6r   z%
    For MoonScript source code.
    Ú
MoonScriptzhttp://moonscript.orgÚ
moonscriptÚmoonz*.moonztext/x-moonscriptzapplication/x-moonscriptz1.5ú#!(.*?)$r5   z--.*$r7   r8   z(?i)0x[0-9a-f]*r9   ú\nú[^\S\n]+r:   z(->|=>)z:[a-zA-Z_]\w*z/(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])z[;,]z
[\[\]{}()]ú[a-zA-Z_]\w*:)ÚclassZextendsrC   rG   Úsuperr>   ÚwithÚimportZexportrI   r@   rF   rB   rD   ÚfromÚwhenÚusingr?   r»   r¼   r½   Úswitchr=   rJ   rK   rO   r<   z(self)\bz@@?([a-zA-Z_]\w*)?z[A-Z]\w*rT   rU   rV   rW   rX   rY   z\\([abfnrtv\\"']|\d{1,3})z
[^#\\\'"]+rÂ   rZ   z\\.|\'z#\{Úinterpoling_stringú#Ústringsz#|\\.|")rb   r5   rV   rî   rì   rY   rW   c                 c   s<   t  | |¡D ]*\}}}|tkr*|dkr*t}|||fV  qd S )Nrn   )r   rp   r   r
   )rj   rt   ru   rv   rw   r#   r#   r'   rp   M  s    z&MoonScriptLexer.get_tokens_unprocessedN)*rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r	   r‰   r   r‹   r   r�   rŒ   rŽ   r   r   r   r   r“   r”   r
   r   r   ÚTyper   r’   r�   rq   ÚPseudor—   r+   r   r•   rš   ÚInterpolr   r›   rp   r#   r#   r#   r'   r     st   þüû

ã ÿÿ
þ

û
ýÉ>r   c                   @   sV  e Zd ZdZdZdZddgZdgZddgZd	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.
    Ú
ChaiScriptzhttp://chaiscript.com/Ú
chaiscriptÚchaiz*.chaiztext/x-chaiscriptzapplication/x-chaiscriptú2.0r¹   ú//.*?\nú	/\*.*?\*/z^\#.*?\nÚcommentsandwhitespacez3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)rZ   z(?=/))rZ   Úbadregexrá   râ   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]+rX   Údqstringz'(\\\\|\\[^\\]|[^'\\])*'z\$\{[^"}]+?\}ú\$z\\\\z\\"z[^\\"$]+)rø   rú   rù   rb   rý   N)&rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   ÚreÚDOTALLÚ	MULTILINEÚflagsr   r	   r‹   rŠ   r   r   ÚRegexr   r
   r   r   r‘   r�   r’   r   rq   r   r   r�   rŒ   rŽ   r•   rñ   r›   r#   r#   r#   r'   r   U  sl   üÿûÿÿþ

ê
ú×r   c                   @   s¬  e Zd ZdZdZdgZdgZdgZdZd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.j0fd#e.j1fee2fd$e+fd%e3fd&e4fd'e4fgd(ej!fdej!d)fd*ej!d+fd,ej!fgd-e"j5fde"j#d+fd.e+fd/e"j#fgd0œZ6d1S )2r   zB
    For Second Life's Linden Scripting Language source code.
    ÚLSLÚlslz*.lslz
text/x-lslz:https://wiki.secondlife.com/wiki/Linden_Scripting_Languagerõ   z(\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ö   ú/\*ÚcommentrX   Ústringz\b([a-zA-Z_]\w*)\bz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*z(\d+\.\d*|\.\d+)z0[xX][0-9a-fA-F]+r9   z:=?z[,;{}()\[\]]ú\n+r¹   z[^*/]+ú#pushú\*/rZ   z[*/]z\\([nt"\\])z\\.z[^"\\]+)rb   r  r  N)7rz   r{   r|   r}   r~   r€   r�   r‚   r   rƒ   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‹   rŠ   r   r•   r   rï   r   r—   rq   r“   r’   r   r�   r”   r   r�   rŒ   rŽ   r
   r   r   rš   r›   r#   r#   r#   r'   r   —  sˆ   

â"

ü
üÖr   c                   @   sL  e Zd ZdZdZdZdgZdgZd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› d*�e#j/fd+e0j1fd,e0j2fgdej d-fd.ej d/fd0ej fd1ej fgd2œZ3d#S )3r   zØ
    For AppleScript source code,
    including `AppleScript Studio
    <http://developer.apple.com/documentation/AppleScript/
    Reference/StudioReference>`_.
    Contributed by Andreas Amann <aamann@mac.com>.
    ÚAppleScriptz‚https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.htmlÚapplescriptz*.applescriptz1.0z[a-zA-Z]\w*)r  zcurrent applicationr�   Zlinefeedzmissing valueÚpiÚquoteÚresultrF   ÚspaceÚtabztext item delimitersrœ   Ú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 fromÚaroundz
aside fromÚatZbelowZbeneathZbesideZbetweenrB   Ú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everyZfrontru   Ú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Údivrl   r½   z(a  )?(ref( to)?|reference to)ÚisZdoes)Zconsideringr?   ÚerrorÚexitrè   rC   ZignoringrD   rE   ÚtellrG   ÚtimesÚtoÚtryrH   zusing terms fromrI   Zwhithzwith timeout( of)?zwith transactionZbyrÀ   rA   zits?ÚmeZmyrF   ZofÚas)ÚglobalÚlocalzprop(erty)?re   Ú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exposedZ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 forZpausezperform actionZplayÚregisterÚresumeÚscrollzselect( all)?Úshowzsize to fitÚstartz	step backzstep forwardÚstopZsynchronizezunlock focusrh   (5  zaccepts arrow keyzaction methodZactiveÚ	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))?Ú
charactersrä   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)?rJ  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indeterminateru   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miniaturizablerV  zminimized imagezminimized titlezminimum column widthzminimum( content)? sizeZmodalÚmodifiedzmouse down statezmovie( (controller|file|rect))?Zmutedr~   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 windowrN  zpath( (names|separator))?Zplayingzplays every framezplays selection onlyrÚ   z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)?rP  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 resizablerQ  zvisible( document rect)?ÚvolumeÚwidthrR  zwindows menuÚwrapsZzoomablerX  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({})\br1   z^(\s*(?:on|end)\s+)({})NrÕ   z^(\s*)(in|on|script|to)(\s+)z\b(as )({})\bz
\b({})s?\bú"(\\\\|\\[^\\]|[^"\\])*"z\b(z)\bz&[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?z[-+]?\d+r
  z\*\)rZ   z[^*(]+z[*(])rb   r  )4rz   r{   r|   r}   r~   r   r€   r�   rƒ   rÿ   r  r   r  ZIdentifiersZLiteralsZClassesZBuiltInZHandlerParamsZCommandsZ
ReferencesZ	OperatorsÚControlZDeclarationsr�   ZStudioClassesZStudioEventsZStudioCommandsZStudioPropertiesr   r   rš   r	   rŠ   r   r   r   rq   r   r
   rÛ   r×   r�   r“   r—   r’   r™   r•   r”   r   r�   rŽ   r›   r#   r#   r#   r'   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d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 d0fe!d1fe"d2fe%d2fe#d2fe$d3fe&d0ffZ'd4d5„ Z(d6S )7r   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.
    ÚRexxzhttp://www.rexxinfo.org/ÚrexxÚarexx)z*.rexxz*.rexz*.rxz*.arexxztext/x-rexxrõ   r¹   r  r  rX   r²   rU   r°   z[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c2xrZ  ZcharinZcharoutÚcharsÚcompareÚ	conditionZcopiesZd2cZd2xÚdatatypeÚdateZdelstrZdelwordÚdigitsZ	errortextÚformrÛ   ZfuzzrØ   ÚlastposÚleftÚlengthZlineinZlineoutÚlinesÚmaxÚminÚoverlayÚposZqueuedÚrandomÚreverseÚrightÚsignZ
sourceliner  ÚstreamÚstripÚsubstrZsubwordÚsymbolÚtimeÚtraceÚ	translateÚtruncrw   Úverifyr  Z	wordindexZ
wordlengthZwordposr   Zx2bZx2cZx2dÚxrangez	(\s*)(\()rK   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]+ú""rZ   rá   z[^\'\n]+z\'\'z\'z[^*]+r  ú\*)rb   r„  r…  r†  r²   r°   r  c                 C   s   t  | t j¡S ©N)rÿ   Úcompiler  )Úsr#   r#   r'   Ú_cx  s    zRexxLexer._cz^\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 r«  )Úsearch)r$   ÚpatternÚweight©Z	lowerTextr#   r'   Ú	<genexpr>˜  s   
þz)RexxLexer.analyse_text.<locals>.<genexpr>ç{®Gáz„?N)	rÿ   r³  Ú
IGNORECASEÚ
startswithÚlowerÚsumr   ÚPATTERNS_AND_WEIGHTSr—  ©rt   r  r#   r¶  r'   Úanalyse_text‹  s    
ÿþzRexxLexer.analyse_textN))rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   rÿ   r¹  r  r   r	   rŠ   r   r   r   r   r“   r
   r   r‘   r˜   r   r   r   rq   r�   r›   r®  Z_ADDRESS_COMMAND_PATTERNZ_ADDRESS_PATTERNZ_DO_WHILE_PATTERNZ_IF_THEN_DO_PATTERNZ_PROCEDURE_PATTERNZ_ELSE_DO_PATTERNZ_PARSE_ARG_PATTERNr½  r¿  r#   r#   r#   r'   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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   z3
    For MOOCode (the MOO scripting language).
    ÚMOOCodezhttp://www.moo.mud.org/z*.mooÚmoocodeÚmooztext/x-moocodez0.9rb   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¹   rá   z([!;=,{}&|:.\[\]@()<>?]+)z	(\w+)(\()z(\w+)N)rz   r{   r|   r}   r~   r   r�   r€   r‚   rƒ   r   rŽ   r   r   Ú	ExceptionÚEntityr   rq   r”   ÚInstancer   r
   r   r“   r›   r#   r#   r#   r'   r   ž  s0   þ
çÿr   c                   @   s8  e Zd ZdZdZdgZdgZddgZdZd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.
    ÚHybrisÚhybrisz*.hybztext/x-hybriszapplication/x-hybrisz$https://github.com/evilsocket/hybrisz1.4z>^(\s*(?:function|method|operator\s+)+?)([a-zA-Z_]\w*)(\s*)(\()râ   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+)rä   z(import|include)(\s+)rç   )’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typeofÚ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Úsleepr¢  ZstrtimeZstrdateZdllopenZdlllinkZdllcallZdllcall_argvZdllcloseÚenvÚexecZforkÚgetpidÚwaitÚpopenZpcloser;  ÚkillZpthread_createZpthread_create_argvZpthread_exitZpthread_joinZ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ftellZfsizeZfreadZfwriteZfgetsZfcloseÚfileZreaddirZpcre_replaceÚsizeÚpopZunmapÚhasÚkeysr%   r”  Úfindr   Úreplacerr   ZtrimÚremoveÚcontainsr×   rJ   rK   )ZMethodReferenceZRunnerZDllÚThreadZPipeÚProcessZRunnableZCGIZClientSocketZSocketZServerSocketÚFileÚConsoleZ	DirectoryrÃ  r  z'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'rŸ   rã   z[a-zA-Z_$]\w*z[~^*!%&\[\](){}<>|+=:;,./?\-@]+rû   z0x[0-9a-f]+z[0-9]+L?rá   rÈ   rZ   z	[\w.]+\*?)rb   rä   rç   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\br¸  )rÿ   r³  r¾  r#   r#   r'   r¿    s    zHybrisLexer.analyse_textN))rz   r{   r|   r}   r~   r€   r�   r‚   r   rƒ   rÿ   r  r   r  r   r   r   r“   r   r
   r	   r‹   rŠ   Ú	Decoratorr‘   r’   Ú	Namespacer   rq   rï   r   ÚCharr™   r˜   r   r�   rŒ   rŽ   r—   r›   r¿  r#   r#   r#   r'   r   È  sv   þÿÿÿÿÿèçýü
ÿÄ?
ÿ
ÿ¾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	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   a/  
    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.
    Ú
EasytrieveÚ
easytrievez*.eztz*.macztext/x-easytrievez_https://www.broadcom.com/products/mainframe/application-development/easytrieve-report-generatorú2.1r   z
 \'.,():\nÚ*ú[ú]ú(r2   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COMMITZCONTROLÚCOPYZCURSORÚDZDECLAREÚDEFAULTZDEFINEÚDELETEZDENWAZDISPLAYZDLIZDOZ	DUPLICATEÚEÚELSEzELSE-IFÚ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NQÚNULLZOFÚORZ	OTHERWISEZPA1ZPA2ZPA3z
PAGE-COUNTzPAGE-NUMBERzPARM-REGISTERzPATH-IDZPATTERNZPERFORMÚ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SEQUENCEÚ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)(rK   z+)(\s*)(\.?)(\s*)(PROC)(\s*\n)z[0-9]+\.[0-9]*rü   z'(''|[^'])*'r¹   rZ   )rb   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 ¡r”d
}|r’|d
7 }nøˆ D ]‚}|  ¡ }t|ƒdkr˜|d }|s˜|sî|sà|sÔ|dkrÔd	}|dkràd	}|dkrìd	}q˜|dk� rþd	}q˜|dk�rd	}q˜|dkr˜d	}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�r¤dk�sªn 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•  r#   r'   ÚisCommentLine£  s    z3EasytrieveLexer.analyse_text.<locals>.isCommentLinec                 S   s   t |  ¡ ƒ S r«  )ÚboolrŸ  rD  r#   r#   r'   ÚisEmptyLine¦  s    z1EasytrieveLexer.analyse_text.<locals>.isEmptyLiner   Tgš™™™™™Ù?r    ZPARMÚFILEZJOBZPROCr   r2  r°  gš™™™™™é?r±  g)\�Âõ(¼?r¯  r¸  r²  )rr   r   Ú_MACRO_HEADER_REGEXrC  rs   )rt   r  Z
hasEndProcZhasHeaderCommentZhasFileZhasJobZhasProcZhasParmZ	hasReportrG  rI  rE  r   Z	firstWordr#   rF  r'   r¿  •  sn    





zEasytrieveLexer.analyse_textN))rz   r{   r|   r}   r~   r€   r�   r‚   r   rƒ   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   r‘   r
   r   r�   r“   r   r�   rŽ   r   r   r›   rÿ   r¬  rB  rK  r¿  r#   r#   r#   r'   r   '  sn   %ÿÿ

ÿ

ÿ
ÿÿ
èþ

úá(

r   c                   @   sJ  e Zd ZdZdZdgZdgZdgZdZd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   zí
    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.
    ÚJCLÚjclz*.jclz
text/x-jclz2https://en.wikipedia.org/wiki/Job_Control_Languager  z//\*.*\nz//Ú	statementr  Újes2_statementz.*\nz\s*\nrZ   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)\brª  z[\[\](){}<>;,]z	[-+*/=&%]r‡  z\d+\.\d*z\.\d+r9   rU   Úoption_stringz[ \t]+Úoption_commentz\.z(\n)(//)z''z[^']z.+)rb   rN  rQ  rO  rP  rR  rS  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@  rA  r   r²  )rr   rs   r   Ú_JOB_HEADER_PATTERNrC  )rt   r  r•  r#   r#   r'   r¿  .  s    
zJclLexer.analyse_textN)%rz   r{   r|   r}   r~   r€   r�   r‚   r   rƒ   rÿ   r¹  r  r	   r‹   r   rð   r   r   r   r   r˜   r�   r”   r   rq   r   r
   r   r�   rŽ   r   r   r›   r¬  rT  r¿  r#   r#   r#   r'   r   ç  sn   

ûþ
ú	ÿýÿýõüþÒ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	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.
    Ú
MiniScriptzhttps://miniscript.orgÚ
miniscriptÚmsz*.msztext/x-minicriptzapplication/x-miniscriptz2.6rà   r5   z//.*$r7   r8   r9   rá   râ   rX   r²   z(==|!=|<=|>=|[=+\-*/%^<>.:])z[;,\[\]{}()])r=   rÀ   r?   rA   rB   r„  rC   rD   ZisarG   rE   rF   rI   rJ   rK   )-rˆ  rÌ  rÍ  rÎ  rÐ  ÚcharrÑ  rÕ  r$  r+  Zrndr  r�  rÙ  rÛ  ÚstrrÜ  ZhasIndexÚindexOfrs   ÚvalÚcoder  r»  Úupperr  rr   Zindexesr%   r×   r¼  ÚsortÚshuffleÚpushr   ÚpullrÖ   r(  rü  r¢  rí  ÚlocalsÚglobalsÚouterÚyieldz(true|false|null)\bz(and|or|not|new)\bz(self|super|__isa)\brÈ   r¨  r©  rZ   )rb   r5   r²   N)rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r	   r‰   r   r‹   r   r   r   r
   r   r   r   r   rq   r’   r�   rð   r”   r›   r#   r#   r#   r'   r    ;  sP   þþýùø	
æüßr    )(r}   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   r   r   r   r    r#   r#   r#   r'   Ú<module>   s4   
 4 *  RBT  Cr*_ AT