a
    DfH                     @   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 g dZG dd deZG dd	 d	eZG d
d deZdS )z
    pygments.lexers.unicon
    ~~~~~~~~~~~~~~~~~~~~~~

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

    :copyright: Copyright 2006-2024 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                   @   st  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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dejfed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d0Z&d1S )2r   z!
    For Unicon source code.
    ZUniconZuniconz*.icnztext/uniconzhttps://www.unicon.org2.4[^\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initialZ	initially	invocablenextrepeatreturnsuspendthenthreaduntilwhile\bprefixsuffix(+  ZAbortabsacosActiveAlertanyAnyZArbZArbnoargsarrayasinatanatanhAttribZBalbalBgBreakZBreakxcalloutcentercharchdirchmodchownchroot	classnameClipCloneclosecofailcollectColor
ColorValuecondvarconstructorcopyCopyAreacosCouplecryptcsetctimeZ	dbcolumnsZdbdriverZdbkeysZdblimitsZ	dbproductZ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EyeZFailfcntlfdupZFencefetchFg
fieldnamesZfilepairFillArc
FillCircleFillPolygonFillRectanglefindflockflushFontfork	FreeColor	FreeSpacefunctiongetgetchgetchegetegidgetenvgeteuidgetgidZgetgrZgethostgetpgrpgetpidgetppidZgetpwZ	getrusageZ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PixelZ	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RposZRtabrtodrunerrsaveScaleseekselectsendseqserialsetsetenvsetgidZsetgrentZ
sethostentsetpgrpZsetpwentZ
setserventsetuidsignalsinsortsortfZSpanspawnsqlsqrtstatstaticnamesstopZ	StopAudiostring	structureZSucceedSwisymlink
sys_errstrsystemsyswriteZTabtabtabletanTexcoordTexture	TextWidth	TranslatetraptrimtruncatetrylocktypeumaskUncoupleunlockuptoutimevariableZ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;rR  "[^"]+"|\w+rootrS  \)\w+,(:string|:integer|:real)\brV  rF  r   r   rS  N'__name__
__module____qualname____doc__r   aliases	filenames	mimetypesurlversion_addedre	MULTILINEflagsr   r	   Singler   Declarationr   TypeZPreProcConstantZReservedr   r   Functionr   r
   r   Z	Characterr   r   r   r   ZHexFloatIntegerVariabletokens rr  rr  c/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/pygments/lexers/unicon.pyr      s   
=>?lr   c                   @   sn  e Zd ZdZdZdgZddgZg ZdZd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dejfed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&d0S )1r   z
    Lexer for Icon.
    ZIconZiconz*.iconz*.ICONz https://www2.cs.arizona.edu/iconz1.6r   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+   r,   r-   r.   r/   r0   r1   r3   r4   r5   r6   )r9   r:   r;   r<   r=   r?   r@   rA   rB   rC   rD   rE   rF   rH   rI   rJ   rK   rL   rM   rN   rP   rQ   rR   rS   rT   rU   rV   rW   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   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   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  zS===|~===|\*\*|\+\+|--|\.|==|~==|<=|>=|=|~=|<<=|<<|>>=|>>|:=:|:=|<->|<-|\+:=|\|\||\|rG  rH  rI  rJ  rK  z<>|=>|[()|:;,.'`{}%\^&?]rL  rM  rN  rO  rP  rQ  rT  rR  rU  rV  rS  rW  rX  rY  rZ  r[  Nr\  rr  rr  rr  rs  r      s   
:;<hr   c                   @   s   e Zd ZdZdZdgZg dZg ZdZdZ	e
jZddefedd	d	d
ejfedd	d	d
efedd	d	d
ejfed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d ZdS )r   z%
    Lexer for Icon ucode files.
    Zucode)z*.uz*.u1z*.u2zhttp://www.unicon.orgr   rV  z(#.*\n))conZdeclendr#   globalimplr,   Zlabrt  localrecorduidZunionsversionr5   r6   )ZcolmZfilenlineZsynt)YZasgnZbangZbscancatZccaseZchfailZcoactrS   ZcomplZcoretr    r^   diffdivdupZefailZeinitr#   ZeqvZereterrorZescanZesuspfieldgotoinitintinterZinvokeZkeywdZlconcatZlexeqZlexgeZlexgtZlexleZlexltZlexnelimitllistZlsuspmarkZmark0minusmodZmultnegZneqvZnonnullZnoopnullnumberZnumeqZnumgeZnumgtZnumleZnumltZnumneZpfailplusZpnullr   powerZpretr   ZpsuspZpush1Zpushn1randomZrasgnZrcvZrcvbkr   ZrefreshZrswapZsdupsectsizeZsndZsndbkstrZsubscZswapZtabmatZtallyZtobytraceZunmarkvaluevar)r=   r   ZendcaseZendeveryendifZ	endifelse	endrepeat
endsuspendZenduntilZendwhiler'   r)   Zifelser.   r0   r3   r4   z\d+(\s*|\.$|$)z[+-]?\d*\.\d+(E[-+]?\d+)?z[+-]?\d+\.\d*(E[-+]?\d+)?z"(<>|=>|[()|:;,.'`]|[{}]|[%^]|[&?])z\s+\bz[\w-]+c                 C   sh   d}d| v r|d7 }d| v r$|d7 }d| v r4|d7 }d| v rLd| v rL|d7 }d	| v rdd
| v rd|d7 }|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{Gz?Z	procedurer#   z\selfz/selfg      ?rr  )textresultrr  rr  rs  analyse_text  s    zUcodeLexer.analyse_textN)r]  r^  r_  r`  r   ra  rb  rc  rd  re  rf  rg  rh  r	   r   r   rm  r   rj  rl  r   ro  rn  r   r   rq  r  rr  rr  rr  rs  r   3  sN   	
Fr   )r`  rf  Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   __all__r   r   r   rr  rr  rr  rs  <module>   s   
 (  