Ë
    !täiy  ã                   ó¤   — d Z ddlZddlmZ ddl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 ddlmZ ddlmZ dd	gZ G d
„ d	e«      Z G d„ de«      Zy)z×
    pygments.lexers.pascal
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Pascal family languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexer)Úget_bool_optÚget_list_opt)	ÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚ
Whitespace)ÚScanner)ÚModula2LexerÚDelphiLexerÚPortugolLexerc                   ó:   — e Zd ZdZdZdgZddgZg ZdZdZ	d„ Z
d	„ Zy
)r   z;For Portugol, a Pascal dialect with keywords in Portuguese.ÚPortugolÚportugolz*.algz
*.portugolz>https://www.apoioinformatica.inf.br/produtos/visualg/linguagemÚ c                 óX   — t        j                  | fi |¤Ž t        di |¤ddi¤Ž| _        y )Nr   T© )r   Ú__init__r   Úlexer)ÚselfÚoptionss     úe/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/pascal.pyr   zPortugolLexer.__init__"   s'   € Ü�‰�tÑ'˜wÒ'Ü Ñ: 7Ñ:°TÒ:ˆ�
ó    c                 ó8   — | j                   j                  |«      S )N)r   Úget_tokens_unprocessed)r   Útexts     r   r    z$PortugolLexer.get_tokens_unprocessed&   s   € Ø�z‰z×0Ñ0°Ó6Ð6r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr   r    r   r   r   r   r      s4   „ ÙEØ€DØˆl€GØ˜,Ð'€IØ€IØ
J€CØ€Mò;ó7r   c                   ó”   — e Zd ZdZdZg d¢ZddgZdgZdZdZ	d	Z
d
ZdZh d£Zh d£Zh d£Zh d£ZdddddœZh d£Zh d£ZdZh d£Zd„ Zd„ Zy)r   aF  
    For Delphi (Borland Object Pascal),
    Turbo Pascal and Free Pascal source code.

    Additional options accepted:

    `turbopascal`
        Highlight Turbo Pascal specific keywords (default: ``True``).
    `delphi`
        Highlight Borland Delphi specific keywords (default: ``True``).
    `freepascal`
        Highlight Free Pascal specific keywords (default: ``True``).
    `units`
        A list of units that should be considered builtin, supported are
        ``System``, ``SysUtils``, ``Classes`` and ``Math``.
        Default is to consider all of them builtin.
    ÚDelphi)ÚdelphiÚpasÚpascalÚobjectpascalz*.pasz*.dprztext/x-pascalz+https://www.embarcadero.com/products/delphir   )8ÚabsoluteÚandÚarrayÚasmÚbeginÚbreakÚcaseÚconstÚconstructorÚcontinueÚ
destructorÚdivÚdoÚdowntoÚelseÚendÚfileÚforÚfunctionÚgotoÚifÚimplementationÚinÚ	inheritedÚinlineÚ	interfaceÚlabelÚmodÚnilÚnotÚobjectÚofÚonÚoperatorÚorÚpackedÚ	procedureÚprogramÚrecordÚreintroduceÚrepeatr   ÚsetÚshlÚshrÚstringÚthenÚtoÚtypeÚunitÚuntilÚusesÚvarÚwhileÚwithÚxor)ÚasÚclassÚexceptÚexportsÚfinalizationÚfinallyÚinitializationÚisÚlibraryrR   ÚpropertyÚraiseÚ	threadvarÚtry)ÚdisposeÚexitÚfalseÚnewÚtrue>   rA   re   ra   rb   rd   r6   rj   r9   rL   rX   rq   rW   rD   rS   rr   rV   rt   r<   r:   rm   rG   ro   >   r&   ÚnearÚaliasÚcdeclÚexportrJ   r0   ÚdynamicÚstdcallÚvarargsÚvirtualÚexternalÚoverrideÚregisterÚsafecallÚ	assemblerÚ	interruptÚ	softfloatÚnostackframe>   ÚfarÚfar16ÚindexÚpublicÚcppdeclÚdefaultÚforwardÚprivater2   Úabstractr‡   Ú	protectedÚ	publishedÚ
oldfpccall>G   ÚboolÚbyteÚcharÚcompÚrealÚwordÚdwordÚint64ÚpboolÚpbyteÚpcharÚpcompÚpdateÚpwordÚtdateÚttimeÚdoubleÚpdwordÚpint64Úreal48Úsingler^   ÚtclassÚbooleanÚintegerÚlongintÚpdoubleÚphandleÚpointerÚpsingleÚpstringÚthandleÚtobjectÚvariantÚansicharÚbyteboolÚcardinalÚcurrencyÚextendedÚiunknownÚlongboolÚlongwordÚpbooleanÚpintegerÚplongintÚppointerÚpvariantÚshortintÚsmallintÚtextfileÚwidecharÚwordboolÚ	pansicharÚ	pcardinalÚ	pcurrencyÚ	pdatetimeÚ	pextendedÚ	plongwordÚ	pshortintÚ	psmallintÚ	pwidecharÚ	pwordboolÚ	tdatetimeÚ
ansistringÚ
pbytearrayÚ
pwordarrayÚ
widestringÚpansistringÚpwidestringÚshortstringÚpshortstring)ŠÚabsÚacquireexceptionobjectÚaddrÚ
ansitoutf8ÚappendÚarctanÚassertÚassignedÚ
assignfileÚbeginthreadÚ	blockreadÚ
blockwriter7   ÚchdirÚchrÚcloseÚ	closefileÚcomptocurrencyÚcomptodoubleÚconcatr;   ÚcopyÚcosÚdecÚdeleterv   ÚdoubletocompÚ	endthreadÚenummodulesÚenumresourcemodulesÚeofÚeolnÚeraseÚ
exceptaddrÚexceptobjectÚexcluderw   ÚexpÚfileposÚfilesizeÚfillcharÚfinalizeÚfindclasshinstanceÚfindhinstanceÚfindresourcehinstanceÚflushÚfracÚfreememÚ	get8087cwÚgetdirÚgetlasterrorÚgetmemÚgetmemorymanagerÚgetmodulefilenameÚgetvariantmanagerÚhaltÚhiÚhighÚincÚincludeÚ
initializeÚinsertÚintÚioresultÚismemorymanagersetÚisvariantmanagersetÚlengthÚlnÚloÚlowÚmkdirÚmovery   ÚoddÚolestrtostringÚolestrtostrvarÚordÚ
paramcountÚparamstrÚpiÚposÚpredÚptrÚ
pucs4charsÚrandomÚ	randomizeÚreadÚreadlnÚ
reallocmemÚreleaseexceptionobjectÚrenameÚresetÚrewriteÚrmdirÚroundÚrunerrorÚseekÚseekeofÚseekeolnÚ	set8087cwÚ	setlengthÚsetlinebreakstyleÚsetmemorymanagerÚ	setstringÚ
settextbufÚsetvariantmanagerÚsinÚsizeofÚsliceÚsqrÚsqrtÚstrÚstringofcharÚstringtoolestrÚstringtowidecharÚsuccÚswapÚtruncÚtruncateÚtypeinfoÚucs4stringtowidestringÚunicodetoutf8ÚuniquestringÚupcaseÚ
utf8decodeÚ
utf8encodeÚ
utf8toansiÚutf8tounicodeÚvalÚvararrayredimÚvarclearÚwidecharlentostringÚwidecharlentostrvarÚwidechartostringÚwidechartostrvarÚwidestringtoucs4stringÚwriteÚwriteln)ùÚabortÚaddexitprocÚaddterminateprocÚadjustlinebreaksÚallocmemÚansicomparefilenameÚansicomparestrÚansicomparetextÚansidequotedstrÚansiextractquotedstrÚansilastcharÚansilowercaseÚansilowercasefilenameÚansiposÚansiquotedstrÚansisamestrÚansisametextÚansistrcompÚansistricompÚansistrlastcharÚansistrlcompÚansistrlicompÚansistrlowerÚ
ansistrposÚansistrrscanÚansistrscanÚansistrupperÚansiuppercaseÚansiuppercasefilenameÚ	appendstrÚ	assignstrÚbeepÚ	booltostrÚbytetocharindexÚbytetocharlenÚbytetypeÚcallterminateprocsÚchangefileextÚ
charlengthÚchartobyteindexÚchartobytelenÚ
comparememÚ
comparestrÚcomparetextÚ	createdirÚ
createguidÚcurrentyearÚ	currtostrÚ
currtostrfÚdateÚdatetimetofiledateÚdatetimetostrÚdatetimetostringÚdatetimetosystemtimeÚdatetimetotimestampÚ	datetostrÚ	dayofweekÚ
decodedateÚdecodedatefullyÚ
decodetimeÚ
deletefileÚdirectoryexistsÚdiskfreeÚdisksizeÚ
disposestrÚ
encodedateÚ
encodetimeÚexceptionerrormessageÚexcludetrailingbackslashÚexcludetrailingpathdelimiterÚexpandfilenameÚexpandfilenamecaseÚexpanduncfilenameÚextractfiledirÚextractfiledriveÚextractfileextÚextractfilenameÚextractfilepathÚextractrelativepathÚextractshortpathnameÚfileageÚ	filecloseÚ
filecreateÚfiledatetodatetimeÚ
fileexistsÚfilegetattrÚfilegetdateÚfileisreadonlyÚfileopenÚfilereadÚ
filesearchÚfileseekÚfilesetattrÚfilesetdateÚfilesetreadonlyÚ	filewriteÚfinalizepackageÚ	findcloseÚfindcmdlineswitchÚ	findfirstÚfindnextÚfloattocurrÚfloattodatetimeÚfloattodecimalÚ
floattostrÚfloattostrfÚfloattotextÚfloattotextfmtÚ
fmtloadstrÚfmtstrÚforcedirectoriesÚformatÚ	formatbufÚ
formatcurrÚformatdatetimeÚformatfloatÚ
freeandnilÚgetcurrentdirÚgetenvironmentvariableÚgetfileversionÚgetformatsettingsÚgetlocaleformatsettingsÚgetmodulenameÚgetpackagedescriptionÚgetpackageinfoÚgettimeÚguidtostringÚ	incamonthÚincludetrailingbackslashÚincludetrailingpathdelimiterÚincmonthÚinitializepackageÚinterlockeddecrementÚinterlockedexchangeÚinterlockedexchangeaddÚinterlockedincrementÚinttohexÚinttostrÚisdelimiterÚisequalguidÚ
isleapyearÚispathdelimiterÚisvalididentÚ	languagesÚlastdelimiterÚloadpackageÚloadstrÚ	lowercaseÚmsecstotimestampÚnewstrÚnextcharindexÚnowÚoutofmemoryerrorÚ	quotedstrÚraiselastoserrorÚraiselastwin32errorÚ	removedirÚ
renamefileÚreplacedateÚreplacetimeÚsafeloadlibraryÚsamefilenameÚsametextÚsetcurrentdirÚshowexceptionÚsleepÚstrallocÚ
strbufsizeÚstrbytetypeÚstrcatÚstrcharlengthÚstrcompÚstrcopyÚ
strdisposeÚstrecopyÚstrendÚstrfmtÚstricompÚstringreplaceÚstringtoguidÚstrlcatÚstrlcompÚstrlcopyÚstrlenÚstrlfmtÚ	strlicompÚstrlowerÚstrmoveÚstrnewÚstrnextcharÚstrpasÚstrpcopyÚ	strplcopyÚstrposÚstrrscanÚstrscanÚ	strtoboolÚstrtobooldefÚ	strtocurrÚstrtocurrdefÚ	strtodateÚstrtodatedefÚstrtodatetimeÚstrtodatetimedefÚ
strtofloatÚstrtofloatdefÚstrtointÚ
strtoint64Ústrtoint64defÚstrtointdefÚ	strtotimeÚstrtotimedefÚstrupperÚsupportsÚsyserrormessageÚsystemtimetodatetimeÚtexttofloatÚtimeÚtimestamptodatetimeÚtimestamptomsecsÚ	timetostrÚtrimÚtrimleftÚ	trimrightÚtryencodedateÚtryencodetimeÚtryfloattocurrÚtryfloattodatetimeÚtrystrtoboolÚtrystrtocurrÚtrystrtodateÚtrystrtodatetimeÚtrystrtofloatÚtrystrtointÚtrystrtoint64ÚtrystrtotimeÚunloadpackageÚ	uppercaseÚwidecomparestrÚwidecomparetextÚ
widefmtstrÚ
wideformatÚwideformatbufÚwidelowercaseÚwidesamestrÚwidesametextÚwideuppercaseÚ
win32checkÚwraptext),ÚactivateclassgroupÚallocatehwndÚbintohexÚchecksynchronizeÚcollectionsequalÚcountgenerationsÚdeallocatehwndÚ	equalrectÚextractstringsÚ	findclassÚfindglobalcomponentÚgetclassÚgroupdescendantswithÚhextobinÚ
identtointÚinitinheritedcomponentÚ
inttoidentÚinvalidpointÚisuniqueglobalcomponentnameÚ	linestartÚobjectbinarytotextÚobjectresourcetotextÚobjecttexttobinaryÚobjecttexttoresourceÚpointsequalÚreadcomponentresÚreadcomponentresexÚreadcomponentresfileÚrectÚregisterclassÚregisterclassaliasÚregisterclassesÚregistercomponentsÚregisterintegerconstsÚregisternoiconÚregisternonactivexÚ
smallpointÚstartclassgroupÚteststreamformatÚunregisterclassÚunregisterclassesÚunregisterintegerconstsÚunregistermoduleclassesÚwritecomponentresfile)dÚarccosÚarccoshÚarccotÚarccothÚarccscÚarccschÚarcsecÚarcsechÚarcsinÚarcsinhÚarctan2ÚarctanhÚceilÚcomparevalueÚcosecantÚcoshÚcotÚcotanÚcothÚcscÚcschÚ
cycletodegÚcycletogradÚ
cycletoradÚ
degtocycleÚ	degtogradÚdegtoradÚdivmodÚdoubledecliningbalanceÚensurerangeÚfloorÚfrexpÚfuturevalueÚgetexceptionmaskÚgetprecisionmodeÚgetroundmodeÚgradtocycleÚ	gradtodegÚ	gradtoradÚhypotÚinrangeÚinterestpaymentÚinterestrateÚinternalrateofreturnÚintpowerÚ
isinfiniteÚisnanÚiszeroÚldexpÚlnxp1Úlog10Úlog2ÚlognÚmaxÚmaxintvalueÚmaxvalueÚmeanÚmeanandstddevÚminÚminintvalueÚminvalueÚmomentskewkurtosisÚnetpresentvalueÚnormÚnumberofperiodsÚpaymentÚperiodpaymentÚpolyÚ
popnstddevÚpopnvarianceÚpowerÚpresentvalueÚ
radtocycleÚradtodegÚ	radtogradÚrandgÚrandomrangeÚroundtoÚ	samevalueÚsecÚsecantÚsechÚsetexceptionmaskÚsetprecisionmodeÚsetroundmodeÚsignÚsimpleroundtoÚsincosÚsinhÚslndepreciationÚstddevÚsumÚsumintÚsumofsquaresÚsumsandsquaresÚsyddepreciationÚtanÚtanhÚtotalvarianceÚvariance)ÚSystemÚSysUtilsÚClassesÚMath>C   ÚahÚalÚaxÚbhÚblÚbpÚbxÚchÚclÚcsÚcxÚdhÚdiÚdlÚdsÚdxÚesÚfsÚgsÚsiÚspÚssÚcr0Úcr1Úcr2Úcr3Úcr4Údr0Údr1Údr2Údr3Údr4Údr5Údr6Údr7ÚeaxÚebpÚebxÚecxÚediÚedxÚesiÚespÚmm0Úmm1Úmm2Úmm3Úmm4Úmm5Úmm6Úmm7Úst0Úst1Úst2Úst3Úst4Úst5Úst6Úst7Úxmm0Úxmm1Úxmm2Úxmm3Úxmm4Úxmm5Úxmm6Úxmm7>  ÚbtrH   ÚjaÚjbÚjcÚjeÚjgÚjlÚjoÚjpÚjsÚjzrT   ÚaaaÚaadÚaamÚaasÚadcÚaddr3   ÚbsfÚbsrÚbtcÚbtrÚbtsÚcbwÚcdqÚclcÚcldÚcliÚcmcÚcmpÚcwdÚdaaÚdasrò   r=   Úhltr  r  ÚjaeÚjbeÚjgeÚjleÚjmpÚjnaÚjnbÚjncÚjneÚjngÚjnlÚjnoÚjnpÚjnsÚjnzÚjpeÚjpoÚlarÚldsÚleaÚlesÚlfsÚlgsÚlslÚlssÚltrÚmovÚmulÚnegÚnoprO   ÚoutÚpopÚrclÚrcrÚrepÚretÚrolÚrorÚrsmÚsalÚsarÚsbbr\   r]   ÚsmiÚstcÚstdÚstirG  ÚsubÚud1Úud2rh   ÚarplÚcallÚcltsÚcwdeÚemmsÚibtsÚidivÚimulÚinsbÚinsdÚinswÚint1Úint3ÚintoÚinvdÚiretÚjcxzÚjnaeÚjnbeÚjngeÚjnleÚlahfÚlgdtÚlidtÚljmpÚlldtÚlmswÚlockÚloopÚmovdÚmovqÚpopaÚpopfÚpushÚrepeÚrepzÚretfÚretnÚrsdcÚsahfÚsalcÚsetaÚsetbÚsetcÚseteÚsetgÚsetlÚsetoÚsetpÚsetsÚsetzÚsgdtÚshldÚshrdÚsidtÚsldtÚsmswÚsvdcÚsvtsÚtestÚumovÚverrÚverwÚwaitÚxaddÚxbtsÚxchgÚxlatÚboundÚbswapÚcmovaÚcmovbÚcmovcÚcmoveÚcmovgÚcmovlÚcmovoÚcmovpÚcmovsÚcmovzÚcmpsbÚcmpsdÚcmpswÚcpuidÚenterÚicebpÚint01Úint03ÚiretdÚiretwÚjecxzÚlcallÚleaveÚlodsbÚlodsdÚlodswÚloopeÚloopzÚmovsbÚmovsdÚmovswÚmovsxÚmovzxÚoutsbÚoutsdÚoutswÚpopadÚpopawÚpopfdÚpopfwÚpushaÚpushfÚrdmsrÚrdpmcÚrdshrÚrdtscÚrepneÚrepnzÚrsldtÚscasbÚscasdÚscaswÚsetaeÚsetbeÚsetgeÚsetleÚsetnaÚsetnbÚsetncÚsetneÚsetngÚsetnlÚsetnoÚsetnpÚsetnsÚsetnzÚsetpeÚsetpoÚsmintÚstosbÚstosdÚstoswÚsvldtÚwrmsrÚwrshrÚxlatbÚcmovaeÚcmovbeÚcmovgeÚcmovleÚcmovnaÚcmovnbÚcmovncÚcmovneÚcmovngÚcmovnlÚcmovnoÚcmovnpÚcmovnsÚcmovnzÚcmovpeÚcmovpoÚinvlpgÚloopneÚloopnzÚpushadÚpushawÚpushfdÚpushfwÚsetcxzÚsetnaeÚsetnbeÚsetngeÚsetnleÚsysretÚwbinvdÚcmovcxzÚcmovnaeÚcmovnbeÚcmovngeÚcmovnleÚcmpxchgÚloadallÚsyscallÚsysexitÚsmintoldÚsysenterÚ	cmpxchg8bÚ
cmpxchg486Ú
loadall286)MÚ	aleatorioÚ	algoritmoÚarquivoÚateÚcasoÚ
cronometroÚdebugÚeÚecoÚenquantoÚentaoÚescolhaÚescrevaÚescrevalÚfacaÚfalsoÚfimalgoritmoÚfimenquantoÚ
fimescolhaÚ	fimfuncaoÚfimparaÚfimprocedimentoÚ	fimrepitaÚfimseÚfuncaoÚinicior  Ú
interrompaÚleiaÚ	limpatelarM   ÚnaoÚouÚ	outrocasoÚparaÚpassoÚpausaÚprocedimentoÚrepitaÚretorneÚseÚsenaoÚtimerre   ÚvetorÚ
verdadeiroÚxour=   rM   rÝ   r‡  Úarcsenrâ   rñ   r˜  ÚExpÚgraupradr  Úlogr»  r'  ÚquadÚradpgrauÚraizqÚrandÚrandiÚsenÚTanÚascÚcaracÚ	caracpnumÚcomprÚcopiaÚmaiuscÚminuscÚ	numpcaracr(  >   r›   ÚlogicoÚinteiroÚ	caracterec                 óþ  — t        j                  | fi |¤Ž t        «       | _        t        «       | _        t        |dd«      rR| j                  j                  | j                  «       | j                  j                  | j                  «       d| _	        y d| _	        t        |dd«      r%| j                  j                  | j                  «       t        |dd«      r%| j                  j                  | j                  «       t        |dd«      r%| j                  j                  | j                  «       t        |dt        | j                  «      «      D ]*  }| j                  j                  | j                  |   «       Œ, y )Nr   FTÚturbopascalr.   Ú
freepascalÚunits)r   r   r[   ÚkeywordsÚbuiltinsr   ÚupdateÚPORTUGOL_KEYWORDSÚPORTUGOL_BUILTIN_TYPESÚis_portugolÚTURBO_PASCAL_KEYWORDSÚDELPHI_KEYWORDSÚFREE_PASCAL_KEYWORDSr   ÚlistÚBUILTIN_UNITS)r   r   rb   s      r   r   zDelphiLexer.__init__’  s  € Ü�‰�tÑ'˜wÒ'Ü›ˆŒÜ›ˆŒÜ˜ ¨UÔ3Ø�M‰M× Ñ  ×!7Ñ!7Ô8Ø�M‰M× Ñ  ×!<Ñ!<Ô=Ø#ˆDÕà$ˆDÔä˜G ]°DÔ9Ø—‘×$Ñ$ T×%?Ñ%?Ô@Ü˜G X¨tÔ4Ø—‘×$Ñ$ T×%9Ñ%9Ô:Ü˜G \°4Ô8Ø—‘×$Ñ$ T×%>Ñ%>Ô?Ü$ W¨g´t¸D×<NÑ<NÓ7OÖP�Ø—‘×$Ñ$ T×%7Ñ%7¸Ñ%=Õ>ñ Qr   c              #   óÞ  K  — t        |t        j                  t        j                  z  t        j                  z  «      }dg}d}d}d}d}d}d}	t        «       }
ddg}|j                  �	sƒt        }|d   dk(  �rº|j                  d«      rt        }�nø| j                  sP|j                  d«      r?|j                  j                  d«      rt        j                  }�n®t        j                  }�nœ|j                  d«      rt        j                   }�ny| j                  r|j                  d	«      rt"        }�nT| j                  s.|j                  d
«      rt"        }|	�r.|j                  dk(  �rd}	�n|j                  d«      r†t$        }d}|s|�rü|j                  dk(  r|dxx   dz  cc<   �nÞ|j                  dk(  r|dxx   dz  cc<   �nÀ|j                  dk(  r|dxx   dz  cc<   �n¢|j                  dk(  �r’|dxx   dz  cc<   �nƒ|j                  d«      �rÚ|j                  j'                  «       }|dk(  rt(        j*                  j,                  }�n6|| j.                  v r‡t0        }| j                  r|dv �rd}d}�n|s|r0|| j2                  v r"|d   dk  r|d   dk  rd}d}ddg}t        «       }
|dv rd}	�nÏ|dk(  r|j5                  d«       �n·|dk(  rd}d}�n¬|dv �r§d}d}�n¡| j                  s"|r || j6                  v rt0        j,                  }�ns| j                  s|r|dv rt0        j,                  }d}�nM|ry| j                  s#|j9                  d«      rt(        j:                  }�nt(        j<                  }d}| j                  �rý|
j?                  |j                  j'                  «       «       �nÒ| j                  s|rt(        j@                  }d}�n°| j                  s=|	r;t(        jB                  }|
j?                  |j                  j'                  «       «       �ng||
v rt(        jB                  }�nQ| j                  r || jD                  v rt0        jF                  }�n%| j                  s || jH                  v rt0        jF                  }�nù| j                  s || jJ                  v rt0        j,                  }�nÍ| j                  s"|s || jL                  v rt(        j*                  }�nŸt(        }�n—| j                  r*|j                  d«      rtN        }|j5                  d«       �na| j                  s*|j                  d«      rtN        }|j5                  d«       �n+| j                  s#|j                  d«      rtN        jP                  }�nü| j                  s#|j                  d «      rtR        jT                  }�nÍ|j                  d!«      rtR        jV                  }�nª|j                  d"«      rtR        jX                  }�n‡t[        |«      dkD  r|j]                  «        |j_                  «        �nW|d   dk(  �r| j                  r‡|j                  d#«      rtN        j`                  }�n|j                  d«      rtN        }|j]                  «        �nö|j                  d$«      rtN        }�nÝ|j_                  «        |j]                  «        �n»|j                  d#«      rtN        j`                  }�n˜|j                  d«      rtN        }|j]                  «        �no|j                  d%«      rtN        }�nV|j_                  «        |j]                  «        �n4| j                  �s'|d   dk(  �r|j                  d«      rt        }�n|j                  d&«      rt0        }|j]                  «        �nÜ|j                  d«      r?|j                  j                  d«      rt        j                  }�nžt        j                  }�nŒ|j                  d«      rt        j                   }�ni|j                  d«      rtN        }|j5                  d«       �n?|j                  d'«      rt(        jB                  }�n|j                  d«      rU|j                  j'                  «       }|| jb                  v rt0        }nÜ|| jd                  v rt(        j*                  }n½t(        }n¶|j                  d(«      rt"        }nž|j                  d«      rt$        }n†|j                  d «      rtR        jT                  }nd|j                  d!«      rtR        jV                  }nB|j                  d"«      rtR        jX                  }n |j_                  «        |j]                  «        | j                  s)|j                  jg                  «       r|j                  d)k(  }|jh                  ||j                  xs d*f–— |j                  s�	Œ‚y y ­w)+NÚinitialFr   éÿÿÿÿz\s+z\{.*?\}|\(\*.*?\*\)Ú$z//.*?$z/(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,z[-+*\/=<>:;,.@\^]Ú;z[\(\)\[\]]+Ú(é   Ú)Ú[Ú]z[A-Za-z_][A-Za-z_0-9]*Úresult)rZ  re  T)rL   rE   r5   rr   )rV   rS   rD   r:   r<   )r.  r`  z\s*\.\s*z\"r^   Ú'z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^\"]*z[^']*rA   z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+Ú.r   )5r   ÚreÚDOTALLÚ	MULTILINEÚ
IGNORECASEr[   Úeosr   Úscanr   r�  ÚmatchÚ
startswithr   ÚPreprocÚ	MultilineÚSingler   r   Úlowerr	   ÚBuiltinÚPseudorˆ  r   ÚBLOCK_KEYWORDSrá   ÚFUNCTION_MODIFIERSr¿  ÚClassÚFunctionrB  ÚPropertyÚLabelrŒ  ÚTypeÚBUILTIN_TYPESÚ
DIRECTIVESr‰  r
   ÚCharr   ÚHexÚIntegerÚFloatÚlenrr  Úget_charÚEscapeÚASM_INSTRUCTIONSÚASM_REGISTERSÚstripÚ	start_pos)r   r!   ÚscannerÚstackÚin_function_blockÚin_property_blockÚwas_dotÚnext_token_is_functionÚnext_token_is_propertyÚcollect_labelsÚblock_labelsÚbrace_balanceÚtokenÚlowercase_names                 r   r    z"DelphiLexer.get_tokens_unprocessed¦  sž  è ø€ Ü˜$¤§	¡	¬B¯L©LÑ 8¼2¿=¹=Ñ HÓIˆØ�ˆØ!ÐØ!ÐØˆØ!&ÐØ!&ÐØˆÜ“uˆØ˜A˜ˆà—+“+ÜˆEà�R‰y˜IÓ%Ø—<‘< Ô'Ü&’EØ×)Ò)¨g¯l©lÐ;QÔ.RØ—}‘}×/Ñ/°Ô4Ü '§¡šä '× 1Ñ 1šØ—\‘\ )Ô,Ü#ŸN™N’EØ×%Ò%¨'¯,©,Ð7iÔ*jÜ$’EØ×)Ò)¨g¯l©lÐ;OÔ.PÜ$�Eâ%¨'¯-©-¸3Ó*>Ø).šØ—\‘\ .Ô1Ü'�Eà-2Ð*ñ )Ò,=Ø"Ÿ=™=¨CÒ/Ø)¨!Ó,°Ñ1Õ,Ø$Ÿ]™]¨cÒ1Ø)¨!Ó,°Ñ1Õ,Ø$Ÿ]™]¨cÒ1Ø)¨!Ó,°Ñ1Õ,Ø$Ÿ]™]¨cÓ1Ø)¨!Ó,°Ñ1Õ,Ø—\‘\Ð";Õ<Ø%,§]¡]×%8Ñ%8Ó%:�NØ%¨Ò1Ü $§¡× 3Ñ 3šØ'¨4¯=©=Ñ8Ü '˜ð  ×+Ò+Ø-Ð1KÒKØ48Ð 1Ø9=Ò 6á 1Ñ5FØ$2°d×6IÑ6IÑ$IØ$1°!Ñ$4¸Ò$9Ø$1°!Ñ$4¸Ò$9Ø49Ð 1Ø49Ð 1Ø12°A° Ü/2«u Ø-Ð1BÑBØ15¢Ø!/°5Ò!8Ø %§¡¨UÖ 3Ø!/°:Ò!=Ø48Ð 1Ø9=Ò 6Ø!/ð 4Bò "Bð 59Ð 1Ø9=Ò 6ð "×-Ò-Ñ2CØ*¨d×.EÑ.EÑEÜ '§¡šð "×-Ò-Ñ2CØ*Ð.?Ñ?Ü '§¡˜Ø15Ò.ñ 0ð  $×/Ò/°G·L±LÀÔ4MÜ$(§J¡JšEô %)§M¡M˜EØ5:Ð2à#×/Ó/Ø ,× 0Ñ 0°·±×1DÑ1DÓ1FÖ Gð "×-Ò-Ñ2HÜ $§¡˜Ø16Ò.ð "×-Ò-±.Ü $§
¡
˜Ø$×(Ñ(¨¯©×)<Ñ)<Ó)>Ö?à'¨<Ñ7Ü $§
¡
šØ×)Ò)¨nÀ×@[Ñ@[Ñ.[Ü '§¡šØ!×-Ò-°.ÀD×DVÑDVÑ2VÜ '§¡šØ!×-Ò-°.ÀDÇOÁOÑ2SÜ '§¡šð "×-Ò-±gÀ.ÐTX×TaÑTaÑBaÜ $§¡šä $šØ×%Ò%¨'¯,©,°uÔ*=Ü"�EØ—L‘L Ö*Ø×)Ò)¨g¯l©l¸4Ô.@Ü"�EØ—L‘L Ö*Ø×)Ò)¨g¯l©lÐ;TÔ.UÜ"ŸK™K’EØ×)Ò)¨g¯l©lÐ;LÔ.MÜ"ŸJ™J’EØ—\‘\Ð"7Ô8Ü"ŸN™N’EØ—\‘\Ð"KÔLÜ"ŸL™L’Eô ˜5“z A’~ØŸ	™	œØ×$Ñ$Ö&à�r‘˜hÓ&Ø×#Ò#Ø—|‘| EÔ*Ü &§¡šØ Ÿ™ eÔ,Ü &˜ØŸ	™	žØ Ÿ™ iÔ0Ü &šà×(Ñ(Ô*ØŸ	™	žà—|‘| EÔ*Ü &§¡šØ Ÿ™ dÔ+Ü &˜ØŸ	™	žØ Ÿ™ hÔ/Ü &šà×(Ñ(Ô*ØŸ	™	žØ×%Ó%¨%°©)°uÓ*<Ø—<‘< Ô'Ü&’EØ—\‘\ &Ô)Ü#�EØ—I‘I–KØ—\‘\Ð"8Ô9Ø—}‘}×/Ñ/°Ô4Ü '§¡šä '× 1Ñ 1šØ—\‘\ )Ô,Ü#ŸN™N’EØ—\‘\ $Ô'Ü"�EØ—L‘L Ö*Ø—\‘\Ð"=Ô>Ü ŸJ™J’EØ—\‘\Ð";Ô<Ø%,§]¡]×%8Ñ%8Ó%:�NØ%¨×)>Ñ)>Ñ>Ü '™Ø'¨4×+=Ñ+=Ñ=Ü $§¡™ä $™Ø—\‘\Ð"7Ô8Ü$‘EØ—\‘\ .Ô1Ü'‘EØ—\‘\Ð"3Ô4Ü"ŸJ™J‘EØ—\‘\Ð"7Ô8Ü"ŸN™N‘EØ—\‘\Ð"KÔLÜ"ŸL™L‘Eà×$Ñ$Ô&Ø—I‘I”Kð ×#Ò#¨¯©×(;Ñ(;Ô(=Ø!Ÿ-™-¨3Ñ.�à×#Ñ# U¨G¯M©MÒ,?¸RÐ?Ò?ðe —+–+ùs   ‚g'g-ç+g-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   *   s²   „ ñð" €DÚ9€GØ˜'Ð"€IØ Ð!€IØ
7€CØ€Mð	Ðð€OðÐò€NòÐò€Jò€Mð" 
ðBB
ðF
ð 
ñkJ€MòX	€Mò'ÐðRNÐò`Ðò?ó(^@r   )r%   r   Úpygments.lexerr   Úpygments.utilr   r   Úpygments.tokenr   r   r   r	   r
   r   r   r   r   Úpygments.scannerr   Úpygments.lexers.modula2r   Ú__all__r   r   r   r   r   Ú<module>rÔ     sR   ðñó 
å  ß 4÷+÷ +õ +å $õ 1à˜/Ð
*€ô7�Eô 7ô"Z	@�%õ Z	@r   