§
    £E±cPH  ã                   ó¶   — 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 g d¢Z G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        ZdS )zî
    pygments.lexers.unicon
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Icon and Unicon languages, including ucode VM.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚincludeÚbygroupsÚwordsÚusingÚthis)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuation)Ú	IconLexerÚ
UcodeLexerÚUniconLexerc                   ó~  — e Zd ZdZdZdgZdgZdgZej	        Z
defdej        fdefdej        d	fd
 eej        e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 eddd¬¦  «        ej        f eddd¬¦  «        ej        f ed¦  «        defdefdej        fdefdefd ee ee¦  «        ¦  «        fdefdefdefgd ej         fd!ej!        fd"ej"        fgd#ed$fd%ed&fd'ej        f ed(¦  «        gd#ed)fgd*ed&fd+ej#        fd,efd-ej        f ed(¦  «        gd.œZ$d/S )0r   z<
    For Unicon source code.

    .. versionadded:: 2.4
    ÚUniconÚuniconz*.icnztext/uniconú[^\S\n]+ú#.*?\núclass|method|procedureÚ
subprogramú(record)(\s+)(\w+)Útype_defú^(#line|\$C|\$Cend|\$define|\$else|\$endif|\$error|\$ifdef|\$ifndef|\$include|\$line|\$undef)\bú(&null|&fail)\báù  &allocated|&ascii|&clock|&collections|&column|&col|&control|&cset|&current|&dateline|&date|&digits|&dump|&errno|&errornumber|&errortext|&errorvalue|&error|&errout|&eventcode|&eventvalue|&eventsource|&e|&features|&file|&host|&input|&interval|&lcase|&letters|&level|&line|&ldrag|&lpress|&lrelease|&main|&mdrag|&meta|&mpress|&mrelease|&now|&output|&phi|&pick|&pi|&pos|&progname|&random|&rdrag|&regions|&resize|&row|&rpress|&rrelease|&shift|&source|&storage|&subject|&time|&trace|&ucase|&version|&window|&x|&yú(by|of|not|to)\bz (global|local|static|abstract)\bzpackage|link|import)ÚbreakÚcaseÚcreateÚcriticalÚdefaultÚendÚallÚdoÚelseÚeveryÚfailÚifÚimportÚinitialÚ	initiallyÚ	invocableÚnextÚrepeatÚreturnÚsuspendÚthenÚthreadÚuntilÚwhileú\b©ÚprefixÚsuffix(+  ÚAbortÚabsÚacosÚActiveÚAlertÚanyÚAnyÚArbÚArbnoÚargsÚarrayÚasinÚatanÚatanhÚAttribÚBalÚbalÚBgÚBreakÚBreakxÚcalloutÚcenterÚcharÚchdirÚchmodÚchownÚchrootÚ	classnameÚClipÚCloneÚcloseÚcofailÚcollectÚColorÚ
ColorValueÚcondvarÚconstructorÚcopyÚCopyAreaÚcosÚCoupleÚcryptÚcsetÚctimeÚ	dbcolumnsÚdbdriverÚdbkeysÚdblimitsÚ	dbproductÚdbtablesÚdelayÚdeleteÚdetabÚdisplayÚDrawArcÚ
DrawCircleÚDrawCubeÚ	DrawCurveÚDrawCylinderÚDrawDiskÚ	DrawImageÚDrawLineÚ	DrawPointÚDrawPolygonÚDrawRectangleÚDrawSegmentÚ
DrawSphereÚ
DrawStringÚ	DrawTorusÚdtorÚentabÚ	EraseAreaÚ
errorclearÚEventÚ	eventmaskÚEvGetÚEvSendÚexecÚexitÚexpÚEyeÚFailÚfcntlÚfdupÚFenceÚfetchÚFgÚ
fieldnamesÚfilepairÚFillArcÚ
FillCircleÚFillPolygonÚFillRectangleÚfindÚflockÚflushÚFontÚforkÚ	FreeColorÚ	FreeSpaceÚfunctionÚgetÚgetchÚgetcheÚgetegidÚgetenvÚgeteuidÚgetgidÚgetgrÚgethostÚgetpgrpÚgetpidÚgetppidÚgetpwÚ	getrusageÚgetservÚGetSpaceÚgettimeofdayÚgetuidÚglobalnamesÚGotoRCÚGotoXYÚgtimeÚhardlinkÚiandÚicomÚIdentityMatrixÚimageÚInPortÚinsertÚInt86ÚintegerÚioctlÚiorÚishiftÚistateÚixorÚkbhitÚkeyÚkeywordÚkillÚleftÚLenÚlistÚloadÚloadfuncÚ
localnamesÚlockÚlogÚLowerÚlstatÚmanyÚmapÚmatchÚ
MatrixModeÚmaxÚmemberÚmembernamesÚmethodnamesÚmethodsÚminÚmkdirÚmoveÚ
MultMatrixÚmutexÚnameÚNewColorÚNormalsÚNotAnyÚnumericÚopenÚopenclÚoprecÚordÚOutPortÚPaletteCharsÚPaletteColorÚ
PaletteKeyÚ
paramnamesÚparentÚPatternÚPeekÚPendingÚpipeÚPixelÚ	PlayAudioÚPokeÚpopÚ	PopMatrixÚPosÚposÚprocÚpullÚpushÚ
PushMatrixÚ
PushRotateÚ	PushScaleÚPushTranslateÚputÚQueryPointerÚRaiseÚreadÚ	ReadImageÚreadlinkÚreadsÚreadyÚrealÚreceiveÚRefreshÚRemÚremoveÚrenameÚreplÚreverseÚrightÚrmdirÚRotateÚRposÚRtabÚrtodÚrunerrÚsaveÚScaleÚseekÚselectÚsendÚseqÚserialÚsetÚsetenvÚsetgidÚsetgrentÚ
sethostentÚsetpgrpÚsetpwentÚ
setserventÚsetuidÚsignalÚsinÚsortÚsortfÚSpanÚspawnÚsqlÚsqrtÚstatÚstaticnamesÚstopÚ	StopAudioÚstringÚ	structureÚSucceedÚSwiÚsymlinkÚ
sys_errstrÚsystemÚsyswriteÚTabÚtabÚtableÚtanÚTexcoordÚTextureÚ	TextWidthÚ	TranslateÚtrapÚtrimÚtruncateÚtrylockÚtypeÚumaskÚUncoupleÚunlockÚuptoÚutimeÚvariableÚVAttribÚwaitÚWAttribÚWDefaultÚWFlushÚwhereÚWinAssociateÚ	WinButtonÚWinColorDialogÚWindowContentsÚWinEditRegionÚWinFontDialogÚ
WinMenuBarÚWinOpenDialogÚWinPlayMediaÚWinSaveDialogÚWinScrollBarÚWinSelectDialogÚwriteÚ
WriteImageÚwritesÚWSectionÚWSyncÚnumberszc<@|<<@|>@|>>@|\.>|->|===|~===|\*\*|\+\+|--|\.|~==|~=|<=|>=|==|=|<<=|<<|>>=|>>|:=:|:=|->|<->|\+:=|\|ú"(?:[^\\"]|\\.)*"ú'(?:[^\\']|\\.)*'ú[*<>+=/&!?@~\\-]z\^ú(\w+)(\s*|[(,])ú[\[\]]z<>|=>|[()|:;,.'`{}%&?]ú\n+ú3\b([+-]?([2-9]|[12][0-9]|3[0-6])[rR][0-9a-zA-Z]+)\bú'[+-]?[0-9]*\.([0-9]*)([Ee][+-]?[0-9]*)?ú\b([+-]?[0-9]+[KMGTPkmgtp]?)\bú\(©ú#popÚformal_partú;rt  ú"[^"]+"|\w+Úrootru  ú\)ú\w+ú,ú(:string|:integer|:real)\b©rx  rh  r   r   ru  N©%Ú__name__Ú
__module__Ú__qualname__Ú__doc__râ   ÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚflagsr	   r
   ÚSingler   ÚDeclarationr   ÚTypeÚPreProcÚConstantÚReservedr   r   ÚFunctionr   r   r   Ú	Characterr   r   r   r   ÚHexÚFloatÚIntegerÚVariableÚtokens© ó    ú8/usr/lib/python3/dist-packages/pygments/lexers/unicon.pyr   r      sd  € € € € € ðð ð €DØˆj€GØ�	€IØ�€IàŒL€Eð ˜$ÐØ˜œÐ'Ø˜$ÐØ&¨Ô(;¸\ÐJØ"ØˆX�gÔ)¨4°´Ñ>Ô>À
ðLð5Ø6=´oðGà Ô!1Ð2ðð  'Ô/ð1ð ! 'Ô"2Ð3Ø0°'Ô2BÐCØ# WÔ%8Ð9ØˆUð 4ð
 =BÈ%ðQñ Qô Qð Ôðð ˆUð =ðz "'¨uð{=6ñ =6ô =6ð| Œ]ð}>ð~ ˆG�IÑÔð6Ø7?ðAà! 6Ð*Ø! 6Ô#3Ð4Ø  (Ð+Ø�HÐØ  ¨$°°°d±´Ñ!<Ô!<Ð=Ø˜Ð$Ø&¨Ð4Ø�TˆNðSj
ðX DÀVÄZÐPØ7¸¼ÐFØ.°´Ð?ð
ð �KÐ!8Ð9Ø�; Ð'Ø˜Tœ]Ð+ØˆG�F‰OŒOð	
ð �K Ð/ð
ð �K Ð(Ø�T”]Ð#Ø�;ÐØ*¨GÔ,<Ð=ØˆG�F‰OŒOð
ðuAð A€F€F€Fr—  r   c                   óx  — e Zd ZdZdZdgZddgZg Zej	        Z
defdej        fdefdej        d	fd
 eej        e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 eddd¬¦  «        ej        f eddd¬¦  «        ej        f ed¦  «        defdefdej        fdefd ee ee¦  «        ¦  «        fdefdefdefgdej         fd ej!        fd!ej"        fgd"ed#fd$ed%fd&ej        f ed'¦  «        gd"ed(fgd)ed%fd*ej#        fd+efd,ej        f ed'¦  «        gd-œZ$d.S )/r   z4
    Lexer for Icon.

    .. versionadded:: 1.6
    ÚIconÚiconz*.iconz*.ICONr   r   r   r   r   r   r   r   r   r    z(global|local|static)\bÚlink)r!   r"   r#   r%   r&   r'   r(   r)   r*   r+   r,   r.   r0   r1   r2   r3   r4   r5   r7   r8   r9   r:   )ÿr>   r?   r@   rA   rB   rF   rG   rH   rI   rJ   rK   rM   rN   rQ   rR   rS   rT   rU   rV   rW   rY   rZ   r[   r\   r]   r^   r_   r`   rb   rc   rd   re   rf   rg   rh   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   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˜   r™   rš   r›   rœ   r�   rŸ   r    r¡   r¢   r£   r¤   r¦   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r)  r*  r+  r,  r-  r/  r0  r1  r2  r3  r4  r6  r7  r9  r:  r;  r<  r=  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  zS===|~===|\*\*|\+\+|--|\.|==|~==|<=|>=|=|~=|<<=|<<|>>=|>>|:=:|:=|<->|<-|\+:=|\|\||\|ri  rj  rk  rl  rm  z<>|=>|[()|:;,.'`{}%\^&?]rn  ro  rp  rq  rr  rs  rv  rt  rw  rx  ru  ry  rz  r{  r|  r}  Nr~  r–  r—  r˜  r   r   ¦   s[  € € € € € ðð ð
 €DØˆh€GØ˜8Ð$€IØ€IØŒL€Eð ˜$ÐØ˜œÐ'Ø˜$ÐØ&¨Ô(;¸\ÐJØ"ØˆX�gÔ)¨4°´Ñ>Ô>À
ðLð5Ø6=´oðGà Ô!1Ð2ðð  'Ô/ð1ð ! 'Ô"2Ð3Ø'¨Ô)9Ð:Ø�gÔ)Ð*ØˆUð *ð
 38ÀðGñ Gô Gð Ôðð ˆUð :ðt "'¨uðu:6ñ :6ô :6ðv Œ]ðw;ðx ˆG�IÑÔð+Ø,4ð6à! 6Ð*Ø! 6Ô#3Ð4Ø  (Ð+Ø  ¨$°°°d±´Ñ!<Ô!<Ð=Ø˜Ð$Ø(¨+Ð6Ø�TˆNðKf
ðP DÀVÄZÐPØ7¸¼ÐFØ.°´Ð?ð
ð �KÐ!8Ð9Ø�; Ð'Ø˜Tœ]Ð+ØˆG�F‰OŒOð	
ð �K Ð/ð
ð �K Ð(Ø�T”]Ð#Ø�;ÐØ*¨GÔ,<Ð=ØˆG�F‰OŒOð
ðm}ð }€F€F€Fr—  r   c                   ó"  — e Zd ZdZdZdgZg d¢Zg Zej	        Z
ddef eddd¬¦  «        ej        f ed	dd¬¦  «        ef ed
dd¬¦  «        ej        f edd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giZd„ ZdS )r   z@
    Lexer for Icon ucode files.

    .. versionadded:: 2.4
    Úucode)z*.uz*.u1z*.u2rx  z(#.*\n))ÚconÚdeclendr&   ÚglobalÚimplr0   Úlabrœ  ÚlocalÚrecordÚuidÚunionsÚversionr9   r:   )ÚcolmÚfilenÚlineÚsynt)YÚasgnÚbangÚbscanÚcatÚccaseÚchfailÚcoactr\   ÚcomplÚcoretr#   rg   ÚdiffÚdivÚdupÚefailÚeinitr&   ÚeqvÚeretÚerrorÚescanÚesuspÚfieldÚgotoÚinitÚintÚinterÚinvokeÚkeywdÚlconcatÚlexeqÚlexgeÚlexgtÚlexleÚlexltÚlexneÚlimitÚllistÚlsuspÚmarkÚmark0ÚminusÚmodÚmultÚnegÚneqvÚnonnullÚnoopÚnullÚnumberÚnumeqÚnumgeÚnumgtÚnumleÚnumltÚnumneÚpfailÚplusÚpnullrø   ÚpowerÚpretrü   ÚpsuspÚpush1Úpushn1ÚrandomÚrasgnÚrcvÚrcvbkr  ÚrefreshÚrswapÚsdupÚsectÚsizeÚsndÚsndbkÚstrÚsubscÚswapÚtabmatÚtallyÚtobyÚtraceÚunmarkÚvalueÚvar)rB   r"   ÚendcaseÚendeveryÚendifÚ	endifelseÚ	endrepeatÚ
endsuspendÚenduntilÚendwhiler*   r,   Úifelser2   r4   r7   r8   z\d+(\s*|\.$|$)z[+-]?\d*\.\d+(E[-+]?\d+)?z[+-]?\d+\.\d*(E[-+]?\d+)?z"(<>|=>|[()|:;,.'`]|[{}]|[%^]|[&?])z\s+\bz[\w-]+c                 ót   — d}d| v r|dz  }d| v r|dz  }d| v r|dz  }d| v r	d| v r|dz  }d	| v r	d
| v r|dz  }|S )z}endsuspend and endrepeat are unique to this language, and
        \self, /self doesn't seem to get used anywhere else either.r   r  gš™™™™™¹?r  z:=g{®Gáz„?Ú	procedurer&   z\selfz/selfg      à?r–  )ÚtextÚresults     r˜  Úanalyse_textzUcodeLexer.analyse_text„  s„   € ð ˆà˜4ÐÐØ�c‰MˆFà˜$ÐÐØ�c‰MˆFà�4ˆ<ˆ<Ø�d‰NˆFà˜$ÐÐ 5¨D = =Ø�d‰NˆFð
 �tÐÐ ¨DÐ 0Ð 0Ø�c‰MˆFàˆr—  N)r  r€  r�  r‚  râ   rƒ  r„  r…  r†  r‡  rˆ  r
   r   r   r�  r   rŠ  r�  r   r“  r’  r   r	   r•  r  r–  r—  r˜  r   r   2  sZ  € € € € € ðð ð
 €DØˆi€GØ'Ð'Ð'€IØ€IØŒL€Eð 	Ø˜Ð!ØˆUð ð  Uð,ñ ,ô ,ð Œ]ð	ð ˆUð 1à Uð,ñ ,ô ,ð ðð ˆUð  ð: ).°eð;=ñ =ô =ð< Ô ð="ð> ˆUð 
ð  %ð)ñ )ô )ð Œ]ðð  ¤Ð/Ø)¨6¬<Ð8Ø)¨6¬<Ð8Ø2°KÐ@Ø�tÐØ˜ÐðCB
ðD€FðLð ð ð ð r—  r   )r‚  r†  Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   Ú__all__r   r   r   r–  r—  r˜  ú<module>r     s_  ððð ð 
€	€	€	à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð
4Ð
4€ðOð Oð Oð Oð O�*ñ Oô Oð OðdIð Ið Ið Ið I�
ñ Iô Ið IðXið ið ið ið i�ñ iô ið ið ið ir—  