3

V'ícPHã@s’dZddlZddlmZmZmZmZmZmZddl	m
Z
mZmZm
Z
mZmZmZmZdddgZGdd„deƒZGd	d„deƒZGd
d„deƒZdS)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ÚUniconLexerc8@sªeZdZdZdZdgZdgZdgZej	Z
defdej
fdefdejd	fd
eejeejƒdfdejfd
ejfdejfdejfdejfdejfedpd*d*d+ejfedqd*d*d+ejfedWƒdXefdYefdZejfd[efd\efd]eeeeƒƒfd^efd_efd`efgdaej fdbej!fdcej"fgddedrfdgedefdhejfediƒgddedffgdjedefdkej#fdlefdmejfediƒgdnœZ$doS(srz<
    For Unicon source code.

    .. versionadded:: 2.4
    ZUniconZuniconz*.icnztext/uniconz[^\S\n]+z#.*?\nzclass|method|procedureÚ
subprogramz(record)(\s+)(\w+)Útype_defz^(#line|\$C|\$Cend|\$define|\$else|\$endif|\$error|\$ifdef|\$ifndef|\$include|\$line|\$undef)\bz(&null|&fail)\baù&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|&yz(by|of|not|to)\bz (global|local|static|abstract)\bzpackage|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Úwhilez\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"(?:[^\\"]|\\.)*"z'(?:[^\\']|\\.)*'z[*<>+=/&!?@~\\-]z\^z(\w+)(\s*|[(,])z[\[\]]z<>|=>|[()|:;,.'`{}%&?]z\n+z3\b([+-]?([2-9]|[12][0-9]|3[0-6])[rR][0-9a-zA-Z]+)\bz'[+-]?[0-9]*\.([0-9]*)([Ee][+-]?[0-9]*)?z\b([+-]?[0-9]+[KMGTPkmgtp]?)\bz\(ú#popÚformal_partú;z"[^"]+"|\w+Úrootz\)z\w+ú,z(:string|:integer|:real)\b)r^rZrrr\N)rrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,(+r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrY)r[r\)%Ú__name__Ú
__module__Ú__qualname__Ú__doc__rÔÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚflagsrr	ÚSinglerÚDeclarationrÚTypeÚPreProcÚConstantÚReservedrrÚFunctionrr
r
Ú	CharacterrrrrÚHexÚFloatÚIntegerÚVariableÚtokens©rwrwú:/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/unicon.pyrsä








c@s¢eZdZdZdZdgZddgZgZej	Z
defdej
fdefdejd	fd
eejeejƒdfdejfd
ejfdejfdejfdejfdejfed?d&d&d'ejfed@d&d&d'ejfed'ƒd(efd)efd*ejfd+efd,eeeeƒƒfd-efd.efd/efgd0ej fd1ej!fd2ej"fgd3edAfd6ed4fd7ejfed8ƒgd3ed5fgd9ed4fd:ej#fd;efd<ejfed8ƒgd=œZ$d>S(Brz4
    Lexer for Icon.

    .. versionadded:: 1.6
    ZIconZiconz*.iconz*.ICONz[^\S\n]+z#.*?\nzclass|method|procedurerz(record)(\s+)(\w+)rz^(#line|\$C|\$Cend|\$define|\$else|\$endif|\$error|\$ifdef|\$ifndef|\$include|\$line|\$undef)\bz(&null|&fail)\baù&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|&yz(by|of|not|to)\bz(global|local|static)\bÚlinkrrrrrrrrrrr r"r$r%r&r'r(r)r+r,z\b)r-r.r0r1r2r3r4r8r9r:r;r<r=r?r@rCrDrErFrGrHrIrKrLrMrNrOrPrQrRrTrUrVrWrXrYrZrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrr‚r„r…r†rˆr‰rŠr‹rŒrrŽrr‘r’r“r”r•r–r˜r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖrØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr
rrr
rrrrrrrrrrrrr!r"r#r$r%r&r(r)r+r,r-r.r/r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZzS===|~===|\*\*|\+\+|--|\.|==|~==|<=|>=|=|~=|<<=|<<|>>=|>>|:=:|:=|<->|<-|\+:=|\|\||\|z"(?:[^\\"]|\\.)*"z'(?:[^\\']|\\.)*'z[*<>+=/&!?@~\\-]z(\w+)(\s*|[(,])z[\[\]]z<>|=>|[()|:;,.'`{}%\^&?]z\n+z3\b([+-]?([2-9]|[12][0-9]|3[0-6])[rR][0-9a-zA-Z]+)\bz'[+-]?[0-9]*\.([0-9]*)([Ee][+-]?[0-9]*)?z\b([+-]?[0-9]+[KMGTPkmgtp]?)\bz\(ú#popr\r]z"[^"]+"|\w+r^z\)z\w+r_z(:string|:integer|:real)\b)r^rZrrr\N)rrrrrrrrrrr r"r$r%r&r'r(r)r+r,)ÿr0r1r2r3r4r8r9r:r;r<r=r?r@rCrDrErFrGrHrIrKrLrMrNrOrPrQrRrTrUrVrWrXrYrZrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrr‚r„r…r†rˆr‰rŠr‹rŒrrŽrr‘r’r“r”r•r–r˜r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖrØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr
rrr
rrrrrrrrrrrrr!r"r#r$r%r&r(r)r+r,r-r.r/r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrY)rzr\)%r`rarbrcrÔrdrerfrgrhrirr	rjrrkrrlrmrnrorrrprr
r
rqrrrrrrrsrtrurvrwrwrwrxr¦sÜ








c^@s´eZdZdZdZdgZdddgZgZej	Z
ddefedddde
jfedŽdddefeddddejfedddde
jfd„ejfd…ejfd†ejfd‡efdˆefd‰efgiZdŠd‹„ZdŒS)‘rz@
    Lexer for Icon ucode files.

    .. versionadded:: 2.4
    Zucodez*.uz*.u1z*.u2r^z(#.*\n)ÚconÚdeclendrÚglobalÚimplr$ÚlabryÚlocalÚrecordÚuidÚunionsÚversionz\b)r-r.ÚcolmÚfilenÚlineÚsyntÚasgnÚbangÚbscanÚcatÚccaseÚchfailÚcoactrNÚcomplÚcoretrrYÚdiffÚdivÚdupÚefailÚeinitÚ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Úvarr4rÚendcaseÚendeveryÚendifÚ	endifelseÚ	endrepeatÚ
endsuspendÚenduntilÚendwhilerr Úifelser&r(r+r,z\d+(\s*|\.$|$)z[+-]?\d*\.\d+(E[-+]?\d+)?z[+-]?\d+\.\d*(E[-+]?\d+)?z"(<>|=>|[()|:;,.'`]|[{}]|[%^]|[&?])z\s+\bz[\w-]+cCshd}d|kr|d7}d|kr$|d7}d|kr4|d7}d|krLd|krL|d7}d	|krdd
|krd|d7}|S)z}endsuspend and endrepeat are unique to this language, and
        \self, /self doesn't seem to get used anywhere else either.rràgš™™™™™¹?rßz:=g{®Gáz„?Z	procedurerz\selfz/selfgà?rw)ÚtextÚresultrwrwrxÚanalyse_text„szUcodeLexer.analyse_textN)
r{r|rr}r~r$rryr€rr‚rƒr„)r…r†r‡rˆ)Yr‰rŠr‹rŒrrŽrrNrr‘rrYr’r“r”r•r–rr—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrêrÁrÂrîrÃrÄrÅrÆrÇrÈrÉrýrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚ)r4rrÛrÜrÝrÞrßràrárârr rãr&r(r+r,)r`rarbrcrÔrdrerfrgrhrir	rrrprrkrnrrtrsrrrvrærwrwrwrxr2s’

)rcrgZpygments.lexerrrrrrrZpygments.tokenrr	r
rrr
rrÚ__all__rrrrwrwrwrxÚ<module>	s (