U
    -ex                     @   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.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   W/var/www/html/Darija-Ai-Train/env/lib/python3.8/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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dddddddddhGZdddddZdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddhCZdddddddddddddddddddddddddddddddddddddddddddddddd ddddddddd	d
ddddddddddddd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dZddvddhZdd Zdd ZdS (  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-pascal)8absoluteandarrayasmbeginbreakcaseconstconstructorcontinue
destructordivdoZdowntoelseendfileforfunctiongotoifimplementationin	inheritedinline	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libraryrI   propertyraise	threadvartry)disposeexitfalsenewtruer/   r^   r2   r3   r5   r9   ra   r<   r?   rc   rD   re   rJ   rM   rN   rf   rO   rh   rV   rW   rX   rY   aliasZcdeclZexportrB   Z	interruptZnostackframeregisterZsafecallZ	softfloatZstdcallvarargsr!   ZdynamicZnearZvirtualZexternaloverrideZ	assemblerr+   ZabstractZcppdecldefaultZfarZfar16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	plongwordZpointerZppointerZ	pshortintZpshortstringZpsingleZ	psmallintZpstringZpvariantZ	pwidecharZpwidestringZpwordZ
pwordarrayZ	pwordboolrealZreal48ZshortintZshortstringZsingleZsmallintrT   ZtclassZtdateZ	tdatetimeZtextfileZthandleZtobjectZttimevariantZwidecharZ
widestringwordZwordbool)absZacquireexceptionobjectaddrZ
ansitoutf8appendarctanassertassignedZ
assignfileZbeginthreadZ	blockreadZ
blockwriter0   chdirchrcloseZ	closefileZcomptocurrencyZcomptodoubleconcatr4   copycosdecdeleterj   ZdoubletocompZ	endthreadZenummodulesZenumresourcemoduleseofZeolnZeraseZ
exceptaddrZexceptobjectexcluderk   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moverm   ZoddZolestrtostringZolestrtostrvarordZ
paramcountZparamstrpipospredZptrZ
pucs4charsrandomZ	randomizereadZreadlnZ
reallocmemZreleaseexceptionobjectrenameresetZrewritermdirroundZrunerrorseekZseekeofZseekeolnZ	set8087cwZ	setlengthZsetlinebreakstyleZsetmemorymanagerZ	setstringZ
settextbufZsetvariantmanagersinZ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readcomponentresfile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blbpZbxch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fs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   r6   ZemmsZenterZhltZibtsZicebpZidivimulr@   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jgejlZjleZjmpZjnaZjnaeZjnbZjnbeZjncZjneZjngZjngeZjnlZjnleZjnoZjnpZjnsZjnzZjojpZjpeZjpojsZjzZlahfZlarZlcallZldsZleaZleaveZlesZlfsZlgdtZlgsZlidtZljmpZlldtZlmswZloadallZ
loadall286lockZlodsbZlodsdZlodswloopZloopeZloopneZloopnzZloopzlslZlssZltrZmovZmovdZmovqZmovsbZmovsdZmovswZmovsxZmovzxmulnegZnoprG   rK   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sgdtrR   ZshldrS   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xlatbr\   )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	limpatelarE   ZnaoZouZ	outrocasoparaZpassoZpausaprocedimentoZrepitaZretorneseZsenaotimerrY   ZvetorZ
verdadeiroZxour6   rE   r   r   Zarcsenr   r   r   ZExpZgraupradr   logr   r   quadZradpgrauZraizqZrandZrandiZsenZTan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|  qd S )Nr   FTZturbopascalr'   Z
freepascalZunits)r   r   rQ   keywordsbuiltinsr   updatePORTUGOL_KEYWORDSPORTUGOL_BUILTIN_TYPESis_portugolTURBO_PASCAL_KEYWORDSDELPHI_KEYWORDSFREE_PASCAL_KEYWORDSr   listBUILTIN_UNITS)r   r   rW   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rtj}ntj}q|drtj}q| j
r|d	rt}q| j
s|d
rt}|	r|jdkrd}	q|drt}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rtjj}q|| jkrt}| 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rd}d}q| j
s|r|| jkrtj}q| j
s|r|dkrtj}d}q|r| j
s|drt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rtj#}nB| j
s|| j%krtj}n&| j
s|s|| j&krt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"rt)j,}nt-|dkr|.  |/  n"|d dkrd| j
r|d#rt'j0}n<|drt'}|.  n"|d$rt'}n|/  |.  nP|d#r$t'j0}n<|dr>t'}|.  n"|d%rPt'}n|/  |.  nf| j
s|d dkr|drt	}n<|d&rt}|.  n |dr|jdrtj}ntj}n|drt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 rt)j*}n8|d!rt)j+}n$|d"rt)j,}n|/  |.  | j
s|j3 r|jd)k}|j4||jpd*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)rD   r=   r.   rf   )rM   rJ   r<   r3   r5   )r   r   z\s*\.\s*z\"rT   'z\#(\d+|\$[0-9A-Fa-f]+)z\$[0-9A-Fa-f]+z\d+(?![eE]|\.[^.])z&\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)z''z[^\"]*z[^']*r9   z@@[A-Za-z_][A-Za-z_0-9]*z[-+*\/=<>:;,.@\^]+. )5r   reDOTALL	MULTILINE
IGNORECASErQ   Z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lenr   Zget_charEscapeASM_INSTRUCTIONSASM_REGISTERSstrip	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  r2  r3  r:  r9  r  rB  rA  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