o
    ‡ÎÖa`  ã                   @   s´   d Z ddlZddlmZmZmZmZmZmZm	Z	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-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexerÚ
RegexLexerÚincludeÚbygroupsÚwordsÚusingÚthisÚdefault)Úget_bool_optÚget_list_opt)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚError)ÚScanner)ÚModula2LexerÚDelphiLexerÚAdaLexerc                   @   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
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d„ Zdd„ ZdS )r   aj  
    For `Delphi <http://www.borland.com/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-pascal)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ÚrepeatÚselfÚsetÚshlÚshrÚstringÚthenÚtoÚtypeÚunitÚuntilÚusesÚvarÚwhileÚwithÚxor)ÚasÚclassÚexceptÚexportsÚfinalizationÚfinallyÚinitializationÚisÚlibraryr>   ÚpropertyÚraiseÚ	threadvarÚtry)ÚdisposeÚexitÚfalseÚnewÚtrue>   r-   rR   rN   rO   rQ   r"   rW   r%   r8   rD   r^   rC   r0   r?   r_   rB   ra   r(   r&   rZ   r3   r\   >   ÚnameÚnearÚaliasÚcdeclÚexportr6   r   ÚdynamicÚstdcallÚvarargsÚvirtualÚexternalÚoverrideÚregisterÚsafecallÚ	assemblerÚ	interruptÚ	softfloatÚnostackframe>   ÚfarÚfar16ÚindexÚpublicÚcppdeclr	   ÚforwardÚprivater   Úabstractru   Ú	protectedÚ	publishedÚ
oldfpccall>G   ÚboolÚbyteÚcharÚcompÚrealÚwordÚdwordÚint64ÚpboolÚpbyteÚpcharÚpcompÚpdateÚpwordÚtdateÚttimeÚdoubleÚpdwordÚpint64Úreal48ÚsinglerK   Ú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Ú
blockwriter#   ÚchdirÚchrÚcloseÚ	closefileÚcomptocurrencyÚcomptodoubleÚconcatr'   ÚcopyÚcosÚdecÚdeleterc   ÚdoubletocompÚ	endthreadÚenummodulesÚenumresourcemodulesÚeofÚeolnÚeraseÚ
exceptaddrÚexceptobjectÚexcluderd   ÚexpÚfileposÚfilesizeÚfillcharÚfinalizeÚfindclasshinstanceÚfindhinstanceÚfindresourcehinstanceÚflushÚfracÚfreememÚ	get8087cwÚgetdirÚgetlasterrorÚgetmemÚgetmemorymanagerÚgetmodulefilenameÚgetvariantmanagerÚhaltÚhiÚhighÚincr   Ú
initializeÚinsertÚintÚioresultÚismemorymanagersetÚisvariantmanagersetÚlengthÚlnÚloÚlowÚmkdirÚmoverf   Ú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>  Úbtr4   ÚjaÚjbÚjcÚjeÚjgÚjlÚjoÚjpÚjsÚjzr@   ÚaaaÚaadÚaamÚaasÚadcÚaddr   Ú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Únopr;   ÚoutÚpopÚrclÚrcrÚrepÚretÚrolÚrorÚrsmÚsalÚsarÚsbbrI   rJ   ÚsmiÚstcÚstdÚstir3  ÚsubÚud1Úud2rU   Ú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Ú
loadall286c                 K   sž   t j| fi |¤Ž tƒ | _t|ddƒr| j | j¡ t|ddƒr'| j | j¡ t|ddƒr4| j | j¡ tƒ | _	t
|dt| jƒƒD ]}| j	 | j| ¡ qAd S )NÚturbopascalTr   Ú
freepascalÚunits)r   Ú__init__rH   Úkeywordsr
   ÚupdateÚTURBO_PASCAL_KEYWORDSÚDELPHI_KEYWORDSÚFREE_PASCAL_KEYWORDSÚbuiltinsr   ÚlistÚBUILTIN_UNITS)rG   ÚoptionsrO   © r;  ú8/usr/lib/python3/dist-packages/pygments/lexers/pascal.pyr1  ,  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¡r9t	}�n…| d¡rN|j
 d¡rItj}�nutj}�np| d¡rXtj}�nf| d	¡rjt}|	rh|j
d
krhd}	�nT| d¡r³t}d}|sw|r±|j
dkr†|d  d7  < �n8|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}|sÔ|rð|| jv rð|d dkrð|d dkrðd}d}ddg}tƒ }
|dv rød}	�nÆ|dk�r| d¡ �nº|dk�rd}d}�n¯|dv �rd}d}�n¤|�r(|| jv �r(tj}�n–|�r7|dv �r7tj}d}�n‡|�rL| d¡�rEtj}�nytj}d}�nr|�rVtj}d}�nh|	�rftj}|
  |j
 ¡ ¡ �nX||
v �rptj}�nN|| j!v �r{tj"}�nC|| j#v �r†tj}�n8|�s”|| j$v �r”tj}�n*t}�n&| d¡�r§t%}| d¡ �n| d¡�r²t%j&}�n| d¡�r½t'j(}�n| d¡�rÇt'j)}n÷| d¡�rÑt'j*}nít+|ƒdk�rÜ| ,¡  | -¡  nÝ|d dk�r| d ¡�ròt%j.}nÌ| d¡�rÿt%}| ,¡  n¿| d!¡�rt%}n¶| -¡  | ,¡  n­|d dk�r¾| d¡�r!t	}n�| d"¡�r.t}| ,¡  n�| d¡�rC|j
 d¡�r?tj}ntj}n{| d¡�rMtj}nq| d¡�r[t%}| d¡ nc| d#¡�retj}nY| d¡�r†|j
 ¡ }|| j/v �ryt}nE|| j0v �rƒtj}n;t}n8| d$¡�r�t}n/| d¡�r˜t}n&| d¡�r¢t'j(}n| d¡�r¬t'j)}n| d¡�r¶t'j*}n| -¡  | ,¡  |j
 1¡ �rÉ|j
d%k}|j2||j
�pÑd&fV  |jr'd S d S )'NÚinitialFr   éÿÿÿÿú\s+z\{.*?\}|\(\*.*?\*\)ú$z//.*?$z[-+*\/=<>:;,.@\^]ú;z[\(\)\[\]]+ú(é   ú)ú[ú]z[A-Za-z_][A-Za-z_0-9]*Úresult)r8   r1   Tr!   r_   )rB   r?   r0   r&   r(   )r  rL  z\s*\.\s*ú'rK   z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^']*r-   z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+Ú.Ú )3r   ÚreÚDOTALLÚ	MULTILINEÚ
IGNORECASErH   Úeosr   Úscanr   ÚmatchÚ
startswithr   ÚPreprocÚ	MultilineÚSingler   r   Úlowerr   ÚBuiltinÚPseudor2  r   ÚBLOCK_KEYWORDSrÎ   ÚFUNCTION_MODIFIERSr«  ÚClassÚFunctionÚPropertyÚLabelr.  ÚBUILTIN_TYPESÚTypeÚ
DIRECTIVESr7  r   ÚCharr   ÚHexÚIntegerÚFloatÚlenr^  Úget_charÚEscapeÚASM_INSTRUCTIONSÚASM_REGISTERSÚstripÚ	start_pos)rG   ÚtextÚ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<  Úget_tokens_unprocessed9  s:  €






€




€




€















 �Éz"DelphiLexer.get_tokens_unprocessedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rh   ÚaliasesÚ	filenamesÚ	mimetypesr4  r5  r6  rY  rZ  ra  r_  r9  rj  ri  r1  rz  r;  r;  r;  r<  r      s.    	!C‹ )c                   @   sú  e Zd ZdZdZg d¢Zg d¢ZdgZej	ej
B Zdefdejfdefdejd	fd
eejeejƒdfdejfdeejeƒfdeejeƒdfdeejeejƒfdejfeddd�ejfdejfdejfdejdfdejdfdeejeƒdfdeejeeeejƒfdejfdeejeeeejƒfedddd �ejfd!efed"ƒed#ƒd$ejfd%eee e!ƒƒfd&efd'efd(efgd)e"j#fd*e"j$fd+e"j%fgd,eeej&ƒfgd-ed.fd/ed0fd1ejd0fd2ej'fed3ƒgd4ejfd5ej'fd6efd/ed0fgd/ed0fd-ed7fd8ejfdejd9fd:ejd;fd<eejeƒd0fed3ƒgd/ed0fd=eejeejƒfed3ƒgd>ejd0fed3ƒgd?ejd0fe(d0ƒgd@ed0fdAej)fdBefdCejfed3ƒgdDejfdEejfdFejd0fd/ed0fd-edGfdHej*fed3ƒgdIeej)eeƒfdJefd@ed0fed3ƒgdKœZ+dLS )Mr   z9
    For Ada source code.

    .. versionadded:: 1.3
    ÚAda)ÚadaÚada95Úada2005)z*.adbz*.adsz*.adaz
text/x-adaz[^\S\n]+z--.*?\nzfunction|procedure|entryÚ
subprogramz(subtype|type)(\s+)(\w+)Útype_defztask|protectedz(subtype)(\s+)z
(end)(\s+)r-   z(pragma)(\s+)(\w+)z(true|false|null)\b)ÚAddressÚByteÚBooleanÚ	CharacterÚ
ControlledÚCountÚCursorÚDurationÚ	File_ModeÚ	File_Typere  Ú	Generatorrd  Ú
Long_FloatÚLong_IntegerÚLong_Long_FloatÚLong_Long_IntegerÚNaturalÚPositiveÚReference_TypeÚShort_FloatÚShort_IntegerÚShort_Short_FloatÚShort_Short_Integerr   ÚWide_CharacterÚWide_Stringz\b)Úsuffixz,(and(\s+then)?|in|mod|not|or(\s+else)|rem)\bzgeneric|privateÚpackagezarray\bÚ	array_defz(with|use)(\s+)Úimportz(\w+)(\s*)(:)(\s*)(constant)z<<\w+>>z0(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while))=rN  rÊ   r€   ÚacceptÚaccessÚaliasedÚallr    Úatr"   Úbodyr$   ÚconstantÚdeclareÚdelayÚdeltaÚdigitsr*   r,   Úelsifr-   ÚentryÚ	exceptionrd   r7   r/   r1   r2   r]   ÚlimitedrŒ  rf   Únullr=   r@   Úothersr]  Ú
overridingÚpragmar�   r`   ÚrangerD   ÚrenamesÚrequeueÚreturnÚreverseÚselectÚseparateÚsomeÚsubtypeÚsynchronizedÚtaskÚtaggedÚ	terminaterL   rN   rP   ÚwhenrS   rU   )Úprefixr   z"[^"]*"Ú	attributeÚnumbersz'[^']'z(\w+)(\s*|[(,])z(<>|=>|:=|[()|:;,.'])z
[*<>+=/&-]z\n+z[0-9_]+#[0-9a-f_\.]+#z[0-9_]+\.[0-9_]*z[0-9_]+z(')(\w+)z\()ú#popÚformal_partrA  rÈ  zis\bz"[^"]+"|\w+Úrootz(if|case|record|loop|select)z"[^"]+"|[\w.]+r?  rÉ  zwith|and|use)rÈ  r¢  zrecord\bÚ
record_defz(null record)(;)z(\w+)(\s+)(range)z
end recordz[\w.]+z\)z\w+z,|:[^=]z(in|not|null|out|access)\br©  zis\s+new|renamesr]   Úpackage_instantiationz([\w.]+)z("[^"]+"|\w+)(\s+)(=>)z[\w.\'"])rÊ  rÇ  rÆ  r†  r-   r‡  r¢  rË  r£  rÉ  r¡  rÌ  N),r{  r|  r}  r~  rh   r  r€  r�  rK  rM  rN  Úflagsr   r   rU  r   ÚDeclarationr   r`  ÚReservedrS  ÚConstantr   r   ÚWordÚ	Namespacer   r   r^  r   r   r‹  r   r   r   rc  re  rd  Ú	Attributer\  r	   ÚVariabler[  Útokensr;  r;  r;  r<  r   þ  sÚ    
ÿ
ÿùø	

ÿÿÿ	÷
öÍ6ýÿ
ûü

ù
ý
þ
þû
ù
ü
�)r~  rK  Úpygments.lexerr   r   r   r   r   r   r   r	   Ú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    
(,   g