o
    Ñ­jy  ã                   @   s˜   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	„ d	eƒZG dd„ deƒZdS )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                   @   s>   e Zd ZdZdZdgZddgZg ZdZdZ	dd	„ Z
d
d„ ZdS )r   z;For Portugol, a Pascal dialect with keywords in Portuguese.ÚPortugolÚportugolz*.algz
*.portugolz>https://www.apoioinformatica.inf.br/produtos/visualg/linguagemÚ c                 K   s.   t j| fi |¤Ž tdi |¤ddi¤Ž| _d S )Nr   T© )r   Ú__init__r   Úlexer)ÚselfÚoptionsr   r   úS/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/pascal.pyr   "   s   zPortugolLexer.__init__c                 C   s   | j  |¡S )N)r   Úget_tokens_unprocessed)r   Útextr   r   r   r   &   s   z$PortugolLexer.get_tokens_unprocessedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr   r   r   r   r   r   r      s    c                   @   s˜   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d„ Zdd„ ZdS )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ÚlibraryrL   ÚpropertyÚraiseÚ	threadvarÚtry)ÚdisposeÚexitÚfalseÚnewÚtrue>   r;   r_   r[   r\   r^   r0   rd   r3   rF   rR   rk   rQ   r>   rM   rl   rP   rn   r6   r4   rg   rA   ri   >   r!   ÚnearÚaliasÚcdeclÚexportrD   r*   ÚdynamicÚstdcallÚvarargsÚvirtualÚexternalÚoverrideÚregisterÚsafecallÚ	assemblerÚ	interruptÚ	softfloatÚnostackframe>   ÚfarÚfar16ÚindexÚpublicÚcppdeclÚdefaultÚforwardÚprivater,   Ú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ÚsinglerX   Ú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Ú
blockwriter1   ÚchdirÚchrÚcloseÚ	closefileÚcomptocurrencyÚcomptodoubleÚconcatr5   ÚcopyÚcosÚdecÚdeleterp   ÚdoubletocompÚ	endthreadÚenummodulesÚenumresourcemodulesÚeofÚeolnÚeraseÚ
exceptaddrÚexceptobjectÚexcluderq   Ú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Úmovers   Ú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>  ÚbtrB   ÚjaÚjbÚjcÚjeÚjgÚjlÚjoÚjpÚjsÚjzrN   ÚaaaÚaadÚaamÚaasÚadcÚaddr-   ÚbsfÚbsrÚbtcÚbtrÚbtsÚcbwÚcdqÚclcÚcldÚcliÚcmcÚcmpÚcwdÚdaaÚdasrì   r7   Ú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ÚnoprI   ÚoutÚpopÚrclÚrcrÚrepÚretÚrolÚrorÚrsmÚsalÚsarÚsbbrV   rW   ÚsmiÚstcÚstdÚstirA  ÚsubÚud1Úud2rb   Ú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Ú	limpatelarG   ÚnaoÚouÚ	outrocasoÚparaÚpassoÚpausaÚprocedimentoÚrepitaÚretorneÚseÚsenaoÚtimerr_   ÚvetorÚ
verdadeiroÚxour7   rG   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                 K   sÖ   t j| fi |¤Ž tƒ | _tƒ | _t|ddƒr*| j | j¡ | j | j¡ d| _	d S d| _	t|ddƒr:| j | j
¡ t|ddƒrG| j | j¡ t|ddƒrT| j | j¡ t|dt| jƒƒD ]}| j | j| ¡ q]d S )Nr   FTÚturbopascalr(   Ú
freepascalÚunits)r   r   rU   ÚkeywordsÚbuiltinsr   ÚupdateÚPORTUGOL_KEYWORDSÚPORTUGOL_BUILTIN_TYPESÚis_portugolÚTURBO_PASCAL_KEYWORDSÚDELPHI_KEYWORDSÚFREE_PASCAL_KEYWORDSr   ÚlistÚBUILTIN_UNITS)r   r   r\   r   r   r   r   ’  s"   
ÿzDelphiLexer.__init__c                 c   s"  � t |tjtjB tjB ƒ}dg}d}d}d}d}d}d}	tƒ }
ddg}|j�s�t}|d dk�rb| d¡r9t	}�n7| j
sQ| d¡rQ|j d¡rLtj}�n$tj}�n| d¡r[tj}�n| j
rg| d	¡rgt}�n	| j
s|| d
¡r|t}|	rz|jdkrzd}	�nô| d¡rÅt}d}|s‰|rÃ|jdkr˜|d  d7  < �nØ|jdkr§|d  d8  < �nÉ|jdkr¶|d  d7  < �nº|jdkrÃ|d  d8  < �n«| d¡�r÷|j ¡ }|dkrÚtjj}�n–|| jv �r>t}| j
rï|dv ríd}d}�n�|sô|�r|| jv �r|d dk�r|d dk�rd}d}ddg}tƒ }
|dv �rd}	�nT|dk�r(| d¡ �nH|dk�r3d}d}�n=|dv �r<d}d}�n2| j
�sP|�rP|| jv �rPtj}�n | j
�sc|�rc|dv �rctj}d}�n|�rˆ| j
�su| d¡�rutj}�nûtj}d}| j
�r†|
 |j ¡ ¡ �nè| j
�s–|�r–tj }d}�nÚ| j
�sª|	�rªtj!}|
 |j ¡ ¡ �nÆ||
v �r´tj!}�n¼| j
�rÃ|| j"v �rÃtj#}�n­| j
�sÒ|| j$v �rÒtj#}�nž| j
�sá|| j%v �rátj}�n�| j
�só|�só|| j&v �rótj}�n}t}�ny| j
�r
| d¡�r
t'}| d¡ �nf| j
�s| d¡�rt'}| d¡ �nS| j
�s,| d¡�r,t'j(}�nD| j
�s;| d ¡�r;t)j*}�n5| d!¡�rFt)j+}�n*| d"¡�rQt)j,}�nt-|ƒdk�r\| .¡  | /¡  �n|d dk�r¿| j
�r–| d#¡�rwt'j0}nù| d¡�r„t'}| .¡  nì| d$¡�r�t'}nã| /¡  | .¡  nÚ| d#¡�r t'j0}nÐ| d¡�r­t'}| .¡  nÃ| d%¡�r¶t'}nº| /¡  | .¡  n±| j
�sp|d dk�rp| d¡�rÓt	}n�| d&¡�ràt}| .¡  n�| d¡�rõ|j d¡�rñtj}ntj}n{| d¡�rÿtj}nq| d¡�rt'}| d¡ nc| d'¡�rtj!}nY| d¡�r8|j ¡ }|| j1v �r+t}nE|| j2v �r5tj}n;t}n8| d(¡�rAt}n/| d¡�rJt}n&| d ¡�rTt)j*}n| d!¡�r^t)j+}n| d"¡�rht)j,}n| /¡  | .¡  | j
�s|j 3¡ �r|jd)k}|j4||j�p‡d*fV  |jr'd S d S )+NÚinitialFr   éÿÿÿÿz\s+z\{.*?\}|\(\*.*?\*\)ú$z//.*?$z/(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,z[-+*\/=<>:;,.@\^]ú;z[\(\)\[\]]+ú(é   ú)ú[ú]z[A-Za-z_][A-Za-z_0-9]*Úresult)rT  r_  T)rF   r?   r/   rl   )rP   rM   r>   r4   r6   )r(  rZ  z\s*\.\s*z\"rX   ú'z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^\"]*z[^']*r;   z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+Ú.r   )5r   ÚreÚDOTALLÚ	MULTILINEÚ
IGNORECASErU   Úeosr   Úscanr   r†  ÚmatchÚ
startswithr   ÚPreprocÚ	MultilineÚSingler   r   Úlowerr   ÚBuiltinÚPseudor�  r   ÚBLOCK_KEYWORDSrÛ   ÚFUNCTION_MODIFIERSr¹  ÚClassÚFunctionr<  ÚPropertyÚLabelr…  ÚTypeÚBUILTIN_TYPESÚ
DIRECTIVESr‚  r	   ÚCharr
   ÚHexÚIntegerÚFloatÚlenrl  Ú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_namer   r   r   r   ¦  sl  €




€




€
€




€


€
















 �­z"DelphiLexer.get_tokens_unprocessedN)r   r   r   r    r!   r"   r#   r$   r%   r&   r‡  rˆ  r‰  r¦  r§  r®  r­  r‹  r·  r¶  r„  r…  r   r   r   r   r   r   r   *   s6    	!C‹ )P)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   r   Ú<module>   s    
,