U
    luf x  ã                   @   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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-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexer)Úget_bool_optÚget_list_opt)
ÚTextÚ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d„ Z	d	d
„ Z
dS )r   z;For Portugol, a Pascal dialect with keywords in Portuguese.ZPortugolÚportugolz*.algz
*.portugolz>https://www.apoioinformatica.inf.br/produtos/visualg/linguagemc                 K   s&   t j| f|Ž tf |ddi—Ž| _d S )Nr   T)r   Ú__init__r   Úlexer)ÚselfÚoptions© r   ú:/tmp/pip-unpacked-wheel-7eq1ciah/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Úurlr   r   r   r   r   r   r      s   c                  @   s,  e Zd ZdZdZddddgZddgZd	gZd
ZdZ	dZ
dddddddddddddddddddd d!d"hZd#d$d%d&d'd(dd)d*d+d,d-d.d/d0d1d2d3d4hZd5d6d4d7d8d9d:d;d<d=d>d?d@dAhZdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡dˆhGZd‰dŠd‹dŒdœZdŽddd‘d’d“d”d•d–d—d˜d™dšd›dœddždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐhCZdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìdídîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýdþdÿd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽddd‘d’d“d”d•d–d—d˜d™dšd›dœddždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìhZdíZdîdvdïdðh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.
    ZDelphiÚdelphiZpasZpascalZobjectpascalz*.pasz*.dprztext/x-pascal)8ÚabsoluteÚandÚarrayÚasmÚbeginÚbreakZcaseÚconstÚconstructorÚcontinueÚ
destructorÚdivZdoZdowntoÚelseÚendÚfileÚforÚfunctionÚgotoÚifÚimplementationÚinZ	inheritedÚinlineZ	interfaceÚlabelÚmodÚnilÚnotÚobjectZofÚonÚoperatorÚorÚpackedÚ	procedureÚprogramÚrecordZreintroduceÚrepeatr   ÚsetÚshlÚshrÚstringZthenÚtoÚtypeÚunitZuntilÚusesÚvarÚwhileÚwithÚxor)ÚasÚclassÚexceptÚexportsÚfinalizationÚfinallyÚinitializationÚisÚlibraryr@   ÚpropertyÚraiseÚ	threadvarÚtry)ÚdisposeÚexitÚfalseÚnewÚtruer*   rU   r,   r-   r/   r2   rX   r5   r8   rZ   r;   r\   rA   rD   rE   r]   rF   r_   rM   rN   rO   rP   ÚaliasZcdeclÚexportr:   Z	interruptZnostackframeÚregisterZsafecallZ	softfloatZstdcallÚvarargsr    ZdynamicZnearZvirtualZexternalÚoverrideZ	assemblerr&   ZabstractZcppdeclÚdefaultZfarZfar16ZforwardÚindexZ
oldfpccallÚprivateZ	protectedZ	publishedÚpublicZansicharZ
ansistringÚboolÚbooleanÚbyteZbyteboolZcardinalÚcharÚcompÚcurrencyÚdoubleZdwordÚextendedZint64ÚintegerZiunknownZlongboolZlongintZlongwordZ	pansicharZpansistringZpboolZpbooleanZpbyteZ
pbytearrayZ	pcardinalZpcharZpcompZ	pcurrencyZpdateZ	pdatetimeZpdoubleZpdwordZ	pextendedZphandleZpint64ZpintegerZplongintZ	plongwordÚpointerZppointerZ	pshortintZpshortstringZpsingleZ	psmallintZpstringZpvariantZ	pwidecharZpwidestringZpwordZ
pwordarrayZ	pwordboolÚrealZreal48ZshortintZshortstringZsingleZsmallintrK   ZtclassZtdateZ	tdatetimeZtextfileZthandleZtobjectZttimeÚvariantZwidecharZ
widestringÚwordZwordbool)ŠÚabsZacquireexceptionobjectÚaddrZ
ansitoutf8ÚappendÚarctanÚassertÚassignedZ
assignfileZbeginthreadZ	blockreadZ
blockwriter+   ÚchdirÚchrÚcloseZ	closefileZcomptocurrencyZcomptodoubleÚconcatr.   ÚcopyÚcosÚdecÚdeletera   ZdoubletocompZ	endthreadZenummodulesZenumresourcemodulesÚeofZeolnZeraseZ
exceptaddrZexceptobjectÚexcluderb   ÚexpÚfileposÚfilesizeZfillcharÚfinalizeZfindclasshinstanceZfindhinstanceZfindresourcehinstanceÚflushÚfracZfreememZ	get8087cwZgetdirZgetlasterrorZgetmemZgetmemorymanagerZgetmodulefilenameZgetvariantmanagerZhaltÚhiÚhighÚincÚincludeZ
initializeÚinsertÚintZioresultZismemorymanagersetZisvariantmanagersetÚlengthÚlnÚloÚlowÚmkdirÚmoverd   ZoddZolestrtostringZolestrtostrvarÚordZ
paramcountZparamstrÚpiÚposÚpredÚptrZ
pucs4charsÚrandomZ	randomizeÚreadZreadlnZ
reallocmemZreleaseexceptionobjectÚrenameÚresetZrewriteÚrmdirÚroundZrunerrorÚseekZseekeofZseekeolnZ	set8087cwZ	setlengthZsetlinebreakstyleZsetmemorymanagerZ	setstringZ
settextbufZsetvariantmanagerÚsinÚsizeofÚsliceZsqrÚsqrtÚstrZstringofcharZstringtoolestrZstringtowidecharÚsuccZswapÚtruncÚtruncateZtypeinfoZucs4stringtowidestringZunicodetoutf8ZuniquestringZupcaseZ
utf8decodeZ
utf8encodeZ
utf8toansiZutf8tounicodeÚvalZvararrayredimZvarclearZwidecharlentostringZwidecharlentostrvarZwidechartostringZwidechartostrvarZwidestringtoucs4stringÚwriteÚwriteln)ùÚabortZaddexitprocZaddterminateprocZadjustlinebreaksZallocmemZansicomparefilenameZansicomparestrZansicomparetextZansidequotedstrZansiextractquotedstrZansilastcharZansilowercaseZansilowercasefilenameZansiposZansiquotedstrZansisamestrZansisametextZansistrcompZansistricompZansistrlastcharZansistrlcompZansistrlicompZansistrlowerZ
ansistrposZansistrrscanZansistrscanZansistrupperZansiuppercaseZansiuppercasefilenameZ	appendstrZ	assignstrZbeepZ	booltostrZbytetocharindexZbytetocharlenZbytetypeZcallterminateprocsZchangefileextZ
charlengthZchartobyteindexZchartobytelenZ
comparememZ
comparestrZcomparetextZ	createdirZ
createguidZcurrentyearZ	currtostrZ
currtostrfÚdateZdatetimetofiledateZdatetimetostrZdatetimetostringZdatetimetosystemtimeZdatetimetotimestampZ	datetostrZ	dayofweekZ
decodedateZdecodedatefullyZ
decodetimeZ
deletefileZdirectoryexistsZdiskfreeZdisksizeZ
disposestrZ
encodedateZ
encodetimeZexceptionerrormessageZexcludetrailingbackslashZexcludetrailingpathdelimiterZexpandfilenameZexpandfilenamecaseZexpanduncfilenameZextractfiledirZextractfiledriveZextractfileextZextractfilenameZextractfilepathZextractrelativepathZextractshortpathnameZfileageZ	filecloseZ
filecreateZfiledatetodatetimeZ
fileexistsZfilegetattrZfilegetdateZfileisreadonlyZfileopenZfilereadZ
filesearchZfileseekZfilesetattrZfilesetdateZfilesetreadonlyZ	filewriteZfinalizepackageZ	findcloseZfindcmdlineswitchZ	findfirstZfindnextZfloattocurrZfloattodatetimeZfloattodecimalZ
floattostrZfloattostrfZfloattotextZfloattotextfmtZ
fmtloadstrZfmtstrZforcedirectoriesÚformatZ	formatbufZ
formatcurrZformatdatetimeZformatfloatZ
freeandnilZgetcurrentdirZgetenvironmentvariableZgetfileversionZgetformatsettingsZgetlocaleformatsettingsÚgetmodulenameZgetpackagedescriptionZgetpackageinfoZgettimeZguidtostringZ	incamonthZincludetrailingbackslashZincludetrailingpathdelimiterZincmonthZinitializepackageZinterlockeddecrementZinterlockedexchangeZinterlockedexchangeaddZinterlockedincrementZinttohexZinttostrZisdelimiterZisequalguidZ
isleapyearZispathdelimiterZisvalididentÚ	languagesZlastdelimiterZloadpackageZloadstrZ	lowercaseZmsecstotimestampZnewstrZnextcharindexÚnowZoutofmemoryerrorZ	quotedstrZraiselastoserrorZraiselastwin32errorZ	removedirZ
renamefileZreplacedateZreplacetimeZsafeloadlibraryZsamefilenameZsametextZsetcurrentdirZshowexceptionÚsleepZstrallocZ
strbufsizeZstrbytetypeZstrcatZstrcharlengthZstrcompZstrcopyZ
strdisposeZstrecopyZstrendZstrfmtZstricompZstringreplaceZstringtoguidZstrlcatZstrlcompZstrlcopyZstrlenZstrlfmtZ	strlicompZstrlowerZstrmoveZstrnewZstrnextcharZstrpasZstrpcopyZ	strplcopyZstrposZstrrscanZstrscanÚ	strtoboolZstrtobooldefZ	strtocurrZstrtocurrdefZ	strtodateZstrtodatedefZstrtodatetimeZstrtodatetimedefZ
strtofloatZstrtofloatdefZstrtointZ
strtoint64Zstrtoint64defZstrtointdefZ	strtotimeZstrtotimedefZstrupperZsupportsZsyserrormessageZsystemtimetodatetimeZtexttofloatÚtimeZtimestamptodatetimeZtimestamptomsecsZ	timetostrZtrimZtrimleftZ	trimrightZtryencodedateZtryencodetimeZtryfloattocurrZtryfloattodatetimeZtrystrtoboolZtrystrtocurrZtrystrtodateZtrystrtodatetimeZtrystrtofloatZtrystrtointZtrystrtoint64ZtrystrtotimeZunloadpackageZ	uppercaseZwidecomparestrZwidecomparetextZ
widefmtstrZ
wideformatZwideformatbufZwidelowercaseZwidesamestrZwidesametextZwideuppercaseZ
win32checkZwraptext),ZactivateclassgroupZallocatehwndZbintohexZchecksynchronizeZcollectionsequalZcountgenerationsZdeallocatehwndZ	equalrectZextractstringsZ	findclassZfindglobalcomponentZgetclassZgroupdescendantswithZhextobinZ
identtointZinitinheritedcomponentZ
inttoidentZinvalidpointZisuniqueglobalcomponentnameZ	linestartZobjectbinarytotextZobjectresourcetotextZobjecttexttobinaryZobjecttexttoresourceZpointsequalZreadcomponentresZreadcomponentresexZreadcomponentresfileZrectZregisterclassZregisterclassaliasZregisterclassesZregistercomponentsZregisterintegerconstsZregisternoiconZregisternonactivexZ
smallpointZstartclassgroupZteststreamformatZunregisterclassZunregisterclassesZunregisterintegerconstsZunregistermoduleclassesZwritecomponentresfile)dÚarccosZarccoshZarccotZarccothZarccscZarccschZarcsecZarcsechZarcsinZarcsinhZarctan2ZarctanhÚceilZcomparevalueZcosecantÚcoshZcotÚcotanZcothZcscZcschZ
cycletodegZcycletogradZ
cycletoradZ
degtocycleZ	degtogradZdegtoradÚdivmodZdoubledecliningbalanceZensurerangeÚfloorÚfrexpZfuturevalueZgetexceptionmaskZgetprecisionmodeZgetroundmodeZgradtocycleZ	gradtodegZ	gradtoradÚhypotZinrangeZinterestpaymentZinterestrateZinternalrateofreturnZintpowerZ
isinfiniteÚisnanZiszeroÚldexpZlnxp1Úlog10Úlog2ÚlognÚmaxZmaxintvalueZmaxvalueZmeanZmeanandstddevÚminZminintvalueZminvalueZmomentskewkurtosisZnetpresentvalueZnormZnumberofperiodsÚpaymentZperiodpaymentZpolyZ
popnstddevZpopnvarianceÚpowerZpresentvalueZ
radtocycleZradtodegZ	radtogradZrandgZrandomrangeZroundtoZ	samevalueÚsecZsecantZsechZsetexceptionmaskZsetprecisionmodeZsetroundmodeÚsignZsimpleroundtoZsincosÚsinhZslndepreciationÚstddevÚsumZsumintZsumofsquaresZsumsandsquaresZsyddepreciationÚtanÚtanhZtotalvarianceZvariance)ÚSystemZSysUtilsZClassesZMathZahÚalZaxZbhÚblZbpZbxÚchZclZcr0Zcr1Zcr2Zcr3Zcr4ÚcsZcxZdhZdiÚdlZdr0Zdr1Zdr2Zdr3Zdr4Zdr5Zdr6Zdr7ZdsZdxZeaxZebpZebxZecxZediZedxÚesZesiZespÚfsZgsZmm0Zmm1Zmm2Zmm3Zmm4Zmm5Zmm6Zmm7ÚsiÚspÚssZst0Zst1Zst2Zst3Zst4Zst5Zst6Zst7Zxmm0Zxmm1Zxmm2Zxmm3Zxmm4Zxmm5Zxmm6Zxmm7ZaaaZaadZaamZaasZadcÚaddr'   ZarplÚboundZbsfZbsrZbswapZbtZbtcZbtrZbtsÚcallZcbwZcdqZclcZcldÚcliZcltsZcmcZcmovaZcmovaeZcmovbZcmovbeZcmovcZcmovcxzZcmoveZcmovgZcmovgeZcmovlZcmovleZcmovnaZcmovnaeZcmovnbZcmovnbeZcmovncZcmovneZcmovngZcmovngeZcmovnlZcmovnleZcmovnoZcmovnpZcmovnsZcmovnzZcmovoZcmovpZcmovpeZcmovpoZcmovsZcmovzÚcmpZcmpsbZcmpsdZcmpswZcmpxchgZ
cmpxchg486Z	cmpxchg8bZcpuidÚcwdZcwdeZdaaZdasrˆ   r0   ZemmsZenterZhltZibtsZicebpZidivÚimulr9   r”   ZinsbZinsdZinswr—   Zint01Zint03Zint1Zint3ZintoZinvdZinvlpgZiretZiretdZiretwÚjaZjaeZjbZjbeZjcZjcxzZjeZjecxzZjgZjgeZjlZjleZjmpÚjnaZjnaeZjnbZjnbeZjncZjneZjngZjngeZjnlZjnleZjnoZjnpZjnsZjnzZjoZjpZjpeZjpoZjsZjzZlahfZlarZlcallZldsZleaZleaveZlesZlfsZlgdtZlgsZlidtZljmpZlldtZlmswZloadallZ
loadall286ÚlockZlodsbZlodsdZlodswZloopZloopeZloopneZloopnzZloopzZlslZlssZltrZmovZmovdZmovqZmovsbZmovsdZmovswZmovsxZmovzxÚmulÚnegZnopr>   rB   ÚoutZoutsbZoutsdZoutswÚpopZpopaZpopadZpopawZpopfZpopfdZpopfwÚpushZpushaZpushadZpushawZpushfZpushfdZpushfwZrclZrcrZrdmsrZrdpmcZrdshrZrdtscÚrepZrepeZrepneZrepnzZrepzÚretZretfZretnZrolZrorZrsdcZrsldtZrsmZsahfZsalZsalcZsarZsbbZscasbZscasdZscaswZsetaZsetaeZsetbZsetbeZsetcZsetcxzZseteZsetgZsetgeZsetlZsetleZsetnaZsetnaeZsetnbZsetnbeZsetncZsetneZsetngZsetngeZsetnlZsetnleZsetnoZsetnpZsetnsZsetnzZsetoZsetpZsetpeZsetpoZsetsZsetzZsgdtrI   ZshldrJ   ZshrdZsidtZsldtZsmiZsmintZsmintoldZsmswZstcZstdZstiZstosbZstosdZstoswr®   ÚsubZsvdcZsvldtZsvtsZsyscallZsysenterZsysexitZsysretÚtestZud1Zud2ZumovZverrZverwÚwaitZwbinvdZwrmsrZwrshrZxaddZxbtsZxchgZxlatZxlatbrS   )MZ	aleatorioZ	algoritmoZarquivoZateZcasoZ
cronometroÚdebugÚeZecoZenquantoZentaoZescolhaZescrevaZescrevalZfacaZfalsoZfimalgoritmoZfimenquantoZ
fimescolhaZ	fimfuncaoZfimparaZfimprocedimentoZ	fimrepitaZfimseÚfuncaoZinicior—   Z
interrompaZleiaZ	limpatelar<   ZnaoZouZ	outrocasoÚparaZpassoZpausaÚprocedimentoZrepitaZretorneÚseZsenaoZtimerrP   ZvetorZ
verdadeiroZxour0   r<   r|   r¾   Zarcsenr   r‡   rÁ   ZExpZgraupradr—   ÚlogrÊ   rŸ   ZquadZradpgrauZraizqZrandZrandiZsenZTanZascZcaracZ	caracpnumZcomprZcopiaZmaiuscZminuscZ	numpcaracr    ZinteiroZ	caractereZlogicoc                 K   sÐ   t j| f|Ž tƒ | _tƒ | _t|ddƒrN| j | j¡ | j | j¡ d| _	n~d| _	t|ddƒrn| j | j
¡ t|ddƒrˆ| j | j¡ t|ddƒr¢| j | j¡ t|dt| jƒƒD ]}| j | j| ¡ q´d S )Nr   FTZturbopascalr%   Z
freepascalZunits)r   r   rH   ÚkeywordsÚbuiltinsr   ÚupdateÚPORTUGOL_KEYWORDSÚPORTUGOL_BUILTIN_TYPESÚis_portugolÚTURBO_PASCAL_KEYWORDSÚDELPHI_KEYWORDSÚFREE_PASCAL_KEYWORDSr   ÚlistÚBUILTIN_UNITS)r   r   rN   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r¨| d¡rpt	}qÊ| j
sž| d¡rž|j d¡r”tj}ntj}qÊ| d¡r²tj}qÊ| j
rÊ| d	¡rÊt}qÊ| j
sô| d
¡rôt}|	rð|jdkrðd}	qÊ| d¡rŽt}d}|s|r¤|jdkr2|d  d7  < nX|jdkrP|d  d8  < n:|jdkrn|d  d7  < n|jdkr¤|d  d8  < qÊ| d¡rÞ|j ¡ }|dkrºtjj}q¤|| jkr€t}| j
ræ|dkr|d}d}n–|sò|r0|| jkr0|d dkr0|d dkr0d}d}ddg}tƒ }
|dkr@d}	n<|dkrV| d¡ n&|dkrjd}d}n|dkrÜd}d}q¤| j
s¤|r¤|| jkr¤tj}q¤| j
sÊ|rÊ|dkrÊtj}d}q¤|r| j
sì| d¡rìtj}n"tj}d}| j
rÜ|
 |j ¡ ¡ nÌ| j
s*|r*tj }d}n²| j
sP|	rPtj!}|
 |j ¡ ¡ nŒ||
krbtj!}nz| j
r~|| j"kr~tj#}n^| j
sš|| j$krštj#}nB| j
s¶|| j%kr¶tj}n&| j
sØ|sØ|| j&krØtj}nt}nÆ| j
r| d¡rt'}| d¡ n¢| j
s&| d¡r&t'}| d¡ n~| j
sB| d¡rBt'j(}nb| j
s^| d ¡r^t)j*}nF| d!¡rrt)j+}n2| d"¡r†t)j,}nt-|ƒdkrœ| .¡  | /¡  n"|d dkrd| j
r| d#¡rÒt'j0}n<| d¡rìt'}| .¡  n"| d$¡rþt'}n| /¡  | .¡  nP| d#¡r$t'j0}n<| d¡r>t'}| .¡  n"| d%¡rPt'}n| /¡  | .¡  nf| j
sÊ|d dkrÊ| d¡rŽt	}n<| d&¡rªt}| .¡  n | d¡rÔ|j d¡rÌtj}ntj}nö| d¡rètj}nâ| d¡rt'}| d¡ nÆ| d'¡rtj!}n²| d¡rZ|j ¡ }|| j1kr@t}n|| j2krTtj}nt}np| d(¡rlt}n^| d¡r~t}nL| d ¡r’t)j*}n8| d!¡r¦t)j+}n$| d"¡rºt)j,}n| /¡  | .¡  | j
sè|j 3¡ rè|jd)k}|j4||jpød*fV  qDd S )+NÚinitialFr   éÿÿÿÿz\s+z\{.*?\}|\(\*.*?\*\)ú$z//.*?$z/(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,z[-+*\/=<>:;,.@\^]ú;z[\(\)\[\]]+ú(é   ú)ú[ú]z[A-Za-z_][A-Za-z_0-9]*Úresult)r÷   rù   T)r;   r6   r)   r]   )rD   rA   r5   r-   r/   )r¤   r³   z\s*\.\s*z\"rK   ú'z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^\"]*z[^']*r2   z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+Ú.Ú )5r   ÚreÚDOTALLÚ	MULTILINEÚ
IGNORECASErH   Zeosr   Úscanr   r  ÚmatchÚ
startswithr   ZPreprocZ	MultilineÚSingler   r   Úlowerr	   ZBuiltinZPseudorü   r   ÚBLOCK_KEYWORDSr~   ÚFUNCTION_MODIFIERSró   ZClassZFunctionrá   ZPropertyZLabelr   ÚTypeÚBUILTIN_TYPESÚ
DIRECTIVESrý   r
   ÚCharr   ZHexZIntegerZFloatÚlenrî   Zget_charZEscapeÚASM_INSTRUCTIONSÚASM_REGISTERSÚstripZ	start_pos)r   r   ÚscannerÚstackZin_function_blockZin_property_blockZwas_dotZnext_token_is_functionZnext_token_is_propertyZcollect_labelsZblock_labelsZbrace_balanceÚtokenZlowercase_namer   r   r   r   £  sf   






ÿ
þ
ý



ÿ
ÿ





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   )   sô                    ü               ü
           ý                                                          ó!C‹                                                            ø                                                                                                                                                                                                                                                       Ú)Q   ÿ)r   r  Zpygments.lexerr   Zpygments.utilr   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   r   Zpygments.scannerr   Zpygments.lexers.modula2r   Ú__all__r   r   r   r   r   r   Ú<module>   s   
0