3

V'íc xã@sœdZddlZddlmZddlmZmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZddlmZdd	gZGd
d	„d	eƒZGdd„deƒZdS)zÔ
    pygments.lexers.pascal
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Pascal family languages.

    :copyright: Copyright 2006-2022 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:eZdZdZdZdgZddgZgZdZdd„Z	d	d
„Z
dS)rz;For Portugol, a Pascal dialect with keywords in Portuguese.ZPortugolÚportugolz*.algz
*.portugolz>https://www.apoioinformatica.inf.br/produtos/visualg/linguagemcKs&tj|f|Žtf|ddi—Ž|_dS)NrT)rÚ__init__rÚlexer)ÚselfÚoptions©rú:/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/pascal.pyr!szPortugolLexer.__init__cCs|jj|ƒS)N)rÚget_tokens_unprocessed)rÚtextrrrr%sz$PortugolLexer.get_tokens_unprocessedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlrrrrrrrsc@s
eZdZdZdZddddgZddgZd	gZd`ZdaZ	dbZ
ddCdddddFdddHd$dJd+d.d/dKd0dMd:d;d=d>hZdTdUdVd"dWdXddYdZd[d\d]d^d_d`dadbdcddhZd
dedddfdgdhdidjdkdldmdndodphZ
dqdrdsdtdudvdwdxdydzd{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ªd7d«d¬d­d®d¯d°d±d²d³d´dµd¶hGZdcdddedfdŜZ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dhCZ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/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdÌddKdLdMdNdOdPdQd dídRdSdTdñdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdd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êdëdìdídîdïdðdñdòdód5dôd6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ddAhZdgZdXd¥dYdZhZd[d\„Zd]d^„Zd_S(hraF
    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.
    ZDelphiÚdelphiZpasZpascalZobjectpascalz*.pasz*.dprz
text/x-pascalÚ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ÚlibraryÚpropertyÚraiseÚ	threadvarÚtryÚdisposeÚexitÚfalseÚnewÚtrueÚaliasZcdeclÚexportZ	interruptZnostackframeÚregisterZsafecallZ	softfloatZstdcallÚvarargsr ZdynamicZnearZvirtualZexternalÚoverrideZ	assemblerZabstractZcppdeclÚdefaultZfarZfar16ZforwardÚindexZ
oldfpccallZprivateZ	protectedZ	publishedÚpublicZansicharZ
ansistringÚboolÚbooleanZbyteZbyteboolZcardinalÚcharÚcompÚcurrencyÚdoubleZdwordÚextendedZint64ÚintegerZiunknownZlongboolZlongintZlongwordZ	pansicharZpansistringZpboolZpbooleanZpbyteZ
pbytearrayZ	pcardinalZpcharZpcompZ	pcurrencyZpdateZ	pdatetimeZpdoubleZpdwordZ	pextendedZphandleZpint64ZpintegerZplongintZ	plongwordÚpointerZppointerZ	pshortintZpshortstringZpsingleZ	psmallintZpstringZpvariantZ	pwidecharZpwidestringZpwordZ
pwordarrayZ	pwordboolÚrealZreal48ZshortintZshortstringZsingleZsmallintZtclassZtdateZ	tdatetimeZtextfileZthandleZtobjectZttimeÚvariantZwidecharZ
widestringÚwordZwordboolÚabsÚacquireexceptionobjectÚaddrÚ
ansitoutf8ÚappendÚarctanÚassertÚassignedÚ
assignfileÚbeginthreadÚ	blockreadÚ
blockwriteÚchdirÚchrÚcloseÚ	closefileÚcomptocurrencyÚcomptodoubleÚconcatÚcopyÚcosÚdecÚdeleteÚdoubletocompÚ	endthreadÚenummodulesÚenumresourcemodulesÚeofÚeolnÚeraseÚ
exceptaddrÚexceptobjectÚexcludeÚ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ÚmoveÚ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Ú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)ÚSystemZSysUtilsZClassesZMathZahÚalZaxZbhÚblZbpZbxÚchZclZcr0Zcr1Zcr2Zcr3Zcr4ÚcsZcxZdhZdiÚdlZdr0Zdr1Zdr2Zdr3Zdr4Zdr5Zdr6Zdr7ZdsZdxZeaxZebpZebxZecxZediZedxÚesZesiZespÚfsZgsZmm0Zmm1Zmm2Zmm3Zmm4Zmm5Zmm6Zmm7ÚsiÚspÚssZst0Zst1Zst2Zst3Zst4Zst5Zst6Zst7Zxmm0Zxmm1Zxmm2Zxmm3Zxmm4Zxmm5Zxmm6Zxmm7ZaaaZaadZaamZaasZadcÚaddZarplZboundZbsfZbsrZbswapZbtZbtcZbtrZbtsÚcallZcbwZcdqZclcZcldÚcliZcltsZcmcZcmovaZcmovaeZcmovbZcmovbeZcmovcZcmovcxzZcmoveZcmovgZcmovgeZcmovlZcmovleZcmovnaZcmovnaeZcmovnbZcmovnbeZcmovncZcmovneZcmovngZcmovngeZcmovnlZcmovnleZcmovnoZcmovnpZcmovnsZcmovnzZcmovoZcmovpZcmovpeZcmovpoZcmovsZcmovzÚcmpZcmpsbZcmpsdZcmpswZcmpxchgZ
cmpxchg486Z	cmpxchg8bZcpuidÚcwdZcwdeZdaaZdasZemmsZenterZhltZibtsZicebpZidivÚimulZinsbZinsdZinswZint01Zint03Zint1Zint3ZintoZinvdZinvlpgZiretZiretdZiretwÚjaZjaeZjbZjbeZjcZjcxzZjeZjecxzZjgZjgeZjlZjleZjmpÚjnaZjnaeZjnbZjnbeZjncZjneZjngZjngeZjnlZjnleZjnoZjnpZjnsZjnzZjoZjpZjpeZjpoZjsZjzZlahfZlarZlcallZldsZleaZleaveZlesZlfsZlgdtZlgsZlidtZljmpZlldtZlmswZloadallZ
loadall286ÚlockZlodsbZlodsdZlodswZloopZloopeZloopneZloopnzZloopzZlslZlssZltrZmovZmovdZmovqZmovsbZmovsdZmovswZmovsxZmovzxÚmulÚnegZnopÚoutZoutsbZoutsdZoutswÚpopZpopaZpopadZpopawZpopfZpopfdZpopfwÚpushZpushaZpushadZpushawZpushfZpushfdZpushfwZrclZrcrZrdmsrZrdpmcZrdshrZrdtscÚrepZrepeZrepneZrepnzZrepzÚretZretfZretnZrolZrorZrsdcZrsldtZrsmZsahfZsalZsalcZsarZsbbZscasbZscasdZscaswZsetaZsetaeZsetbZsetbeZsetcZsetcxzZseteZsetgZsetgeZsetlZsetleZsetnaZsetnaeZsetnbZsetnbeZsetncZsetneZsetngZsetngeZsetnlZsetnleZsetnoZsetnpZsetnsZsetnzZsetoZsetpZsetpeZsetpoZsetsZsetzZsgdtZshldZshrdZsidtZsldtZsmiZsmintZsmintoldZsmswZstcZstdZstiZstosbZstosdZstoswÚsubZsvdcZsvldtZsvtsZsyscallZsysenterZsysexitZsysretÚtestZud1Zud2ZumovZverrZverwÚwaitZwbinvdZwrmsrZwrshrZxaddZxbtsZxchgZxlatZxlatbÚ	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ÚinicioÚ
interrompaÚleiaÚ	limpatelaÚnaoÚouÚ	outrocasoÚparaÚpassoÚpausaÚprocedimentoÚrepitaÚretorneÚseÚsenaoÚtimerÚvetorÚ
verdadeiroÚxouÚarcsenÚExpÚgraupradÚlogÚquadÚradpgrauÚraizqÚrandÚrandiÚsenÚTanÚascÚcaracÚ	caracpnumÚcomprÚcopiaÚmaiuscÚminuscÚ	numpcaracZinteiroZ	caractereZlogicocKsÔtj|f|Žtƒ|_tƒ|_t|ddƒrN|jj|jƒ|jj|jƒd|_	n‚d|_	t|ddƒrn|jj|j
ƒt|ddƒrˆ|jj|jƒt|ddƒr¢|jj|jƒx,t
|dt|jƒƒD]}|jj|j|ƒq¶WdS)NrFTZturbopascalr%Z
freepascalZunits)rrrOÚkeywordsÚbuiltinsrÚupdateÚPORTUGOL_KEYWORDSÚPORTUGOL_BUILTIN_TYPESÚis_portugolÚTURBO_PASCAL_KEYWORDSÚDELPHI_KEYWORDSÚFREE_PASCAL_KEYWORDSrÚlistÚ
BUILTIN_UNITS)rrrVrrrrs zDelphiLexer.__init__ccs,t|tjtjBtjBƒ}dg}d}d}d}d}d}d}	tƒ}
ddg}xà|js&t}|d1dkrÊ|jdƒrtt	}qî|j
r¤|jdƒr¤|jjdƒršt
j}nt
j}qî|jdƒr¸t
j}qî|j
rÐ|jd	ƒrÐt}qî|j
oà|jd
ƒrþt}|	rú|jdkrúd}	qî|jdƒr˜t}d}|s|rÆ|jd
kr<|dd7<nX|jdkrZ|dd8<n:|jdkrx|dd7<n|jdkrÆ|dd8<qî|jdƒrú|jjƒ}
|
dkrÄtjj}qÆ|
|jkrŠt}|j
rð|
d2kr†d}d}n–|sü|r:|
|jkr:|ddkr:|ddkr:d}d}ddg}tƒ}
|
d3krJd}	n<|
dkr`|jdƒn&|
dkrtd}d}n|
d4krød}d}qÆ|j
r°|r°|
|jkr°tj}qÆ|j
rØ|rØ|
d5krØtj}d}qÆ|r |j
rü|jd!ƒrütj}n"tj}d}|j
rø|
j|jjƒƒnØ|j
r<|r<tj }d}n¼|j
rd|	rdtj!}|
j|jjƒƒn”|
|
krvtj!}n‚|j
r’|
|j"kr’tj#}nf|j
r°|
|j$kr°tj#}nH|j
rÎ|
|j%krÎtj}n*|j
rô|rô|
|j&krôtj}nt}nÌ|j
r|jd"ƒrt'}|jd#ƒn¨|j
rD|jd$ƒrDt'}|jd#ƒn‚|j
rb|jd%ƒrbt'j(}nd|j
r€|jd&ƒr€t)j*}nF|jd'ƒr”t)j+}n2|jd(ƒr¨t)j,}nt-|ƒdkr¾|j.ƒ|j/ƒn$|d6d#kr†|j
r2|jd)ƒrôt'j0}n<|jd"ƒrt'}|j.ƒn"|jd*ƒr t'}n|j/ƒ|j.ƒnP|jd)ƒrFt'j0}n<|jd$ƒr`t'}|j.ƒn"|jd+ƒrrt'}n|j/ƒ|j.ƒnh|j
rî|d7dkrî|jdƒr²t	}n<|jd,ƒrÎt}|j.ƒn |jdƒrø|jjdƒrðt
j}nt
j}nö|jdƒrt
j}nâ|jd$ƒr(t'}|jd#ƒnÆ|jd-ƒr<tj!}n²|jdƒr~|jjƒ}
|
|j1krdt}n|
|j2krxtj}nt}np|jd.ƒrt}n^|jdƒr¢t}nL|jd&ƒr¶t)j*}n8|jd'ƒrÊt)j+}n$|jd(ƒrÞt)j,}n|j/ƒ|j.ƒ|j
r|jj3ƒr|jd/k}|j4||jpd0fVqHWdS)8NÚinitialFréz\s+z\{.*?\}|\(\*.*?\*\)ú$z//.*?$z/(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,z[-+*\/=<>:;,.@\^]ú;z[\(\)\[\]]+ú(ú)ú[ú]z[A-Za-z_][A-Za-z_0-9]*ÚresultrÇrÒTr@r9r)rfrJrGr8r.r0rÔrz\s*\.\s*z\"rRú'z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^\"]*z[^']*r5z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+Ú.Úéÿÿÿÿ)rÇrÒ)r@r9)rJrGr8r.r0)rÔrrr)5rÚreÚDOTALLÚ	MULTILINEÚ
IGNORECASErOZeosr
ÚscanrróÚmatchÚ
startswithrZPreprocZ	MultilineÚSinglerrÚlowerr	ZBuiltinZPseudorîrÚBLOCK_KEYWORDSr‡ÚFUNCTION_MODIFIERSr­ZClassZFunctionrœZPropertyZLabelròÚTypeÚ
BUILTIN_TYPESÚ
DIRECTIVESrïr
ZCharrZHexZIntegerZFloatÚlenr¨Zget_charZEscapeÚASM_INSTRUCTIONSÚ
ASM_REGISTERSÚstripZ	start_pos)rrÚscannerÚstackZin_function_blockZin_property_blockZwas_dotZnext_token_is_functionZnext_token_is_propertyZcollect_labelsZblock_labelsZ
brace_balanceÚtokenZlowercase_namerrrr£s`

















z"DelphiLexer.get_tokens_unprocessedN)8r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrrOrPrQrRrSrTrUrVrWrXrYrZr[r\)r]r^r_r`rarbrcrdrerFrfrgrhri)rjrkrlrmrn)Šrƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽr+rrr‘r’r“r”r•r/r–r—r˜r™rjršr›rœrržrŸr r¡r¢r£rkr¤r¥r¦r§r¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrmrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrr)ùrr	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@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ÿr),rrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,)dr-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)Mr¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈr½rÉrÊrËrArÌrÍrÎrÏrÐrÑrÒrÓrÔrÕrÖr×rYrØrÙrÚr1rArƒr-rÛrˆr—r>rÜrÝr½rÞrarÍrßràrárârãrärårærçrèrérêrërìrírÎ)rrrrr r!r"r#rôrõrörrrrrørrrñròrrrrrrr)sP





(($$$( "$   $$$$         )rrZpygments.lexerrZ
pygments.utilrrZpygments.tokenrrrrr	r
rrr
rZpygments.scannerrZpygments.lexers.modula2rÚ__all__rrrrrrÚ<module>	s0