o a`@sdZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z m Z ddlmZmZmZmZmZmZmZmZmZddlmZddlmZdd gZGd ddeZGd d d eZdS) 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 RegexLexerincludebygroupswordsusingthisdefault) get_bool_opt get_list_opt) TextCommentOperatorKeywordNameStringNumber PunctuationError)Scanner) Modula2Lexer DelphiLexerAdaLexerc@seZdZdZdZgdZddgZdgZdZdZ d Z hd Z hd Z hd Z hd ZdddddZhdZhdZddZddZdS)raj 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)delphipaspascal objectpascalz*.pasz*.dprz text/x-pascal)8absoluteandarrayasmbeginbreakcaseconst constructorcontinue destructordivdodowntoelseendfileforfunctiongotoifimplementationin inheritedinline interfacelabelmodnilnotobjectofonoperatororpacked procedureprogramrecord reintroducerepeatselfsetshlshrstringthentotypeunituntilusesvarwhilewithxor)asclassexceptexports finalizationfinallyinitializationislibraryr>propertyraise threadvartry)disposeexitfalsenewtrue>r-rRrNrOrQr"rWr%r8rDr^rCr0r?r_rBrar(r&rZr3r\>namenearaliascdeclexportr6rdynamicstdcallvarargsvirtualexternaloverrideregistersafecall assembler interrupt softfloat nostackframe>farfar16indexpubliccppdeclr forwardprivaterabstractru protected published oldfpccall>Gboolbytecharcomprealworddwordint64pboolpbytepcharpcomppdatepwordtdatettimedoublepdwordpint64real48singlerKtclassbooleanintegerlongintpdoublephandlepointerpsinglepstringthandletobjectvariantansicharbyteboolcardinalcurrencyextendediunknownlongboollongwordpbooleanpintegerplongintppointerpvariantshortintsmallinttextfilewidecharwordbool pansichar pcardinal pcurrency pdatetime pextended plongword pshortint psmallint pwidechar pwordbool tdatetime ansistring pbytearray pwordarray widestring pansistring pwidestring shortstring pshortstring)absacquireexceptionobjectaddr ansitoutf8appendarctanassertassigned assignfile beginthread blockread blockwriter#chdirchrclose closefilecomptocurrency comptodoubleconcatr'copycosdecdeleterc doubletocomp endthread enummodulesenumresourcemoduleseofeolnerase exceptaddr exceptobjectexcluderdexpfileposfilesizefillcharfinalizefindclasshinstance findhinstancefindresourcehinstanceflushfracfreemem get8087cwgetdir getlasterrorgetmemgetmemorymanagergetmodulefilenamegetvariantmanagerhalthihighincr initializeinsertintioresultismemorymanagersetisvariantmanagersetlengthlnlolowmkdirmoverfoddolestrtostringolestrtostrvarord paramcountparamstrpipospredptr pucs4charsrandom randomizereadreadln reallocmemreleaseexceptionobjectrenameresetrewritermdirroundrunerrorseekseekeofseekeoln set8087cw setlengthsetlinebreakstylesetmemorymanager setstring settextbufsetvariantmanagersinsizeofslicesqrsqrtstr stringofcharstringtoolestrstringtowidecharsuccswaptrunctruncatetypeinfoucs4stringtowidestring unicodetoutf8 uniquestringupcase utf8decode utf8encode utf8toansi utf8tounicodeval vararrayredimvarclearwidecharlentostringwidecharlentostrvarwidechartostringwidechartostrvarwidestringtoucs4stringwritewriteln)abort addexitprocaddterminateprocadjustlinebreaksallocmemansicomparefilenameansicomparestransicomparetextansidequotedstransiextractquotedstr ansilastchar ansilowercaseansilowercasefilenameansipos ansiquotedstr ansisamestr ansisametext ansistrcomp ansistricompansistrlastchar ansistrlcomp ansistrlicomp ansistrlower ansistrpos ansistrrscan ansistrscan ansistrupper ansiuppercaseansiuppercasefilename appendstr assignstrbeep booltostrbytetocharindex bytetocharlenbytetypecallterminateprocs changefileext charlengthchartobyteindex chartobytelen comparemem comparestr comparetext createdir createguid currentyear currtostr currtostrfdatedatetimetofiledate datetimetostrdatetimetostringdatetimetosystemtimedatetimetotimestamp datetostr dayofweek decodedatedecodedatefully decodetime deletefiledirectoryexistsdiskfreedisksize disposestr encodedate encodetimeexceptionerrormessageexcludetrailingbackslashexcludetrailingpathdelimiterexpandfilenameexpandfilenamecaseexpanduncfilenameextractfiledirextractfiledriveextractfileextextractfilenameextractfilepathextractrelativepathextractshortpathnamefileage fileclose filecreatefiledatetodatetime fileexists filegetattr filegetdatefileisreadonlyfileopenfileread filesearchfileseek filesetattr filesetdatefilesetreadonly filewritefinalizepackage findclosefindcmdlineswitch findfirstfindnext floattocurrfloattodatetimefloattodecimal floattostr floattostrf floattotextfloattotextfmt fmtloadstrfmtstrforcedirectoriesformat formatbuf formatcurrformatdatetime formatfloat freeandnil getcurrentdirgetenvironmentvariablegetfileversiongetformatsettingsgetlocaleformatsettings getmodulenamegetpackagedescriptiongetpackageinfogettime guidtostring incamonthincludetrailingbackslashincludetrailingpathdelimiterincmonthinitializepackageinterlockeddecrementinterlockedexchangeinterlockedexchangeaddinterlockedincrementinttohexinttostr isdelimiter isequalguid isleapyearispathdelimiter isvalidident languages lastdelimiter loadpackageloadstr lowercasemsecstotimestampnewstr nextcharindexnowoutofmemoryerror quotedstrraiselastoserrorraiselastwin32error removedir renamefile replacedate replacetimesafeloadlibrary samefilenamesametext setcurrentdir showexceptionsleepstralloc strbufsize strbytetypestrcat strcharlengthstrcompstrcopy strdisposestrecopystrendstrfmtstricomp stringreplace stringtoguidstrlcatstrlcompstrlcopystrlenstrlfmt strlicompstrlowerstrmovestrnew strnextcharstrpasstrpcopy strplcopystrposstrrscanstrscan strtobool strtobooldef strtocurr strtocurrdef strtodate strtodatedef strtodatetimestrtodatetimedef strtofloat strtofloatdefstrtoint strtoint64 strtoint64def strtointdef strtotime strtotimedefstruppersupportssyserrormessagesystemtimetodatetime texttofloattimetimestamptodatetimetimestamptomsecs timetostrtrimtrimleft trimright tryencodedate tryencodetimetryfloattocurrtryfloattodatetime trystrtobool trystrtocurr trystrtodatetrystrtodatetime trystrtofloat trystrtoint trystrtoint64 trystrtotime unloadpackage uppercasewidecomparestrwidecomparetext widefmtstr wideformat wideformatbuf widelowercase widesamestr widesametext wideuppercase win32checkwraptext),activateclassgroup allocatehwndbintohexchecksynchronizecollectionsequalcountgenerationsdeallocatehwnd equalrectextractstrings findclassfindglobalcomponentgetclassgroupdescendantswithhextobin identtointinitinheritedcomponent inttoident invalidpointisuniqueglobalcomponentname linestartobjectbinarytotextobjectresourcetotextobjecttexttobinaryobjecttexttoresource pointsequalreadcomponentresreadcomponentresexreadcomponentresfilerect registerclassregisterclassaliasregisterclassesregistercomponentsregisterintegerconstsregisternoiconregisternonactivex smallpointstartclassgroupteststreamformatunregisterclassunregisterclassesunregisterintegerconstsunregistermoduleclasseswritecomponentresfile)darccosarccosharccotarccotharccscarccscharcsecarcsecharcsinarcsinharctan2arctanhceil comparevaluecosecantcoshcotcotancothcsccsch cycletodeg cycletograd cycletorad degtocycle degtograddegtoraddivmoddoubledecliningbalance ensurerangefloorfrexp futurevaluegetexceptionmaskgetprecisionmode getroundmode gradtocycle gradtodeg gradtoradhypotinrangeinterestpayment interestrateinternalrateofreturnintpower isinfiniteisnaniszeroldexplnxp1log10log2lognmax maxintvaluemaxvaluemean meanandstddevmin minintvalueminvaluemomentskewkurtosisnetpresentvaluenormnumberofperiodspayment periodpaymentpoly popnstddev popnvariancepower presentvalue radtocycleradtodeg radtogradrandg randomrangeroundto samevaluesecsecantsechsetexceptionmasksetprecisionmode setroundmodesign simpleroundtosincossinhslndepreciationstddevsumsumint sumofsquaressumsandsquaressyddepreciationtantanh totalvariancevariance)SystemSysUtilsClassesMath>Cahalaxbhblbpbxchclcscxdhdidldsdxesfsgssispsscr0cr1cr2cr3cr4dr0dr1dr2dr3dr4dr5dr6dr7eaxebpebxecxediedxesiespmm0mm1mm2mm3mm4mm5mm6mm7st0st1st2st3st4st5st6st7xmm0xmm1xmm2xmm3xmm4xmm5xmm6xmm7>btr4jajbjcjejgjljojpjsjzr@aaaaadaamaasadcaddrbsfbsrbtcbtrbtscbwcdqclccldclicmccmpcwddaadasrr)hltrrjaejbejgejlejmpjnajnbjncjnejngjnljnojnpjnsjnzjpejpolarldslealeslfslgslsllssltrmovmulnegnopr;outpoprclrcrrepretrolrorrsmsalsarsbbrIrJsmistcstdstir3subud1ud2rUarplcallcltscwdeemmsibtsidivimulinsbinsdinswint1int3intoinvdiretjcxzjnaejnbejngejnlelahflgdtlidtljmplldtlmswlockloopmovdmovqpopapopfpushreperepzretfretnrsdcsahfsalcsetasetbsetcsetesetgsetlsetosetpsetssetzsgdtshldshrdsidtsldtsmswsvdcsvtstestumovverrverwwaitxaddxbtsxchgxlatboundbswapcmovacmovbcmovccmovecmovgcmovlcmovocmovpcmovscmovzcmpsbcmpsdcmpswcpuidentericebpint01int03iretdiretwjecxzlcallleavelodsblodsdlodswloopeloopzmovsbmovsdmovswmovsxmovzxoutsboutsdoutswpopadpopawpopfdpopfwpushapushfrdmsrrdpmcrdshrrdtscrepnerepnzrsldtscasbscasdscaswsetaesetbesetgesetlesetnasetnbsetncsetnesetngsetnlsetnosetnpsetnssetnzsetpesetposmintstosbstosdstoswsvldtwrmsrwrshrxlatbcmovaecmovbecmovgecmovlecmovnacmovnbcmovnccmovnecmovngcmovnlcmovnocmovnpcmovnscmovnzcmovpecmovpoinvlpgloopneloopnzpushadpushawpushfdpushfwsetcxzsetnaesetnbesetngesetnlesysretwbinvdcmovcxzcmovnaecmovnbecmovngecmovnlecmpxchgloadallsyscallsysexitsmintoldsysenter cmpxchg8b cmpxchg486 loadall286cKstj|fi|t|_t|ddr|j|jt|ddr'|j|jt|ddr4|j|jt|_ t |dt |j D] }|j |j |qAdS)N turbopascalTr freepascalunits) r__init__rHkeywordsr updateTURBO_PASCAL_KEYWORDSDELPHI_KEYWORDSFREE_PASCAL_KEYWORDSbuiltinsr list BUILTIN_UNITS)rGoptionsrOr;8/usr/lib/python3/dist-packages/pygments/lexers/pascal.pyr1,s   zDelphiLexer.__init__ccst|tjtjBtjB}dg}d}d}d}d}d}d} t} ddg} |jst} |ddkr|dr9t } n|drN|j drIt j } nut j} np|drXt j} nf|d rjt} | rh|j d krhd} nT|d rt} d}|sw|r|j d kr| dd 7<n8|j dkr| dd 8<n)|j dkr| d d 7<n|j dkr| d d 8<n |dr|j } | dkrtjj} n| |jvrt} |s|r| |jvr| ddkr| d dkrd}d}ddg} t} | dvrd} n| dkr|dn| dkrd}d}n| dvrd}d}n|r(| |jvr(tj} n|r7| dvr7tj} d}n|rL|drEtj} nytj} d}nr|rVtj} d}nh| rftj} | |j nX| | vrptj} nN| |j!vr{tj"} nC| |j#vrtj} n8|s| |j$vrtj} n*t} n&|drt%} |dn|drt%j&} n |drt'j(} n|drt'j)} n|drt'j*} nt+|d kr|,|-n|ddkr|d rt%j.} n|drt%} |,n|d!rt%} n|-|,n|ddkr|dr!t } n|d"r.t} |,n|drC|j dr?t j } nt j} n{|drMt j} nq|dr[t%} |dnc|d#retj} nY|dr|j } | |j/vryt} nE| |j0vrtj} n;t} n8|d$rt} n/|d rt} n&|drt'j(} n|drt'j)} n|drt'j*} n|-|,|j 1r|j d%k}|j2| |j pd&fV|jr'dSdS)'NinitialFr\s+z\{.*?\}|\(\*.*?\*\)$z//.*?$z[-+*\/=<>:;,.@\^];z [\(\)\[\]]+()[]z[A-Za-z_][A-Za-z_0-9]*result)r8r1Tr!r_)rBr?r0r&r()rrLz\s*\.\s*'rKz\#(\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[-+*\/=<>:;,.@\^]+.)3rreDOTALL MULTILINE IGNORECASErHeosrscanr match startswithr Preproc MultilineSinglerrlowerrBuiltinPseudor2rBLOCK_KEYWORDSrFUNCTION_MODIFIERSrClassFunctionPropertyLabelr. BUILTIN_TYPESType DIRECTIVESr7rCharrHexIntegerFloatlenr^get_charEscapeASM_INSTRUCTIONS ASM_REGISTERSstrip start_pos)rGtextscannerstackin_function_blockin_property_blockwas_dotnext_token_is_functionnext_token_is_propertycollect_labels block_labels brace_balancetokenlowercase_namer;r;r<get_tokens_unprocessed9s:                                                                   z"DelphiLexer.get_tokens_unprocessedN)__name__ __module__ __qualname____doc__rhaliases filenames mimetypesr4r5r6rYrZrar_r9rjrir1rzr;r;r;r<rs.  !C  ) c@seZdZdZdZgdZgdZdgZej ej BZ de fde jfde fdejd fd eeje ejd fd ejfd eeje fdeeje dfdeeje e jfdejfedddejfdejfdejfdejdfdejdfdeeje dfdeeje ee ejfdejfdeeje ee ejfedddd ejfd!efed"ed#d$ejfd%eee e!fd&efd'efd(e fgd)e"j#fd*e"j$fd+e"j%fgd,eeej&fgd-ed.fd/ed0fd1ejd0fd2ej'fed3gd4ejfd5ej'fd6e fd/ed0fgd/ed0fd-ed7fd8ejfdejd9fd:ejd;fdejd0fed3gd?ejd0fe(d0gd@ed0fdAej)fdBefdCejfed3gdDejfdEejfdFejd0fd/ed0fd-edGfdHej*fed3gdIeej)e efdJe fd@ed0fed3gdK Z+dLS)Mrz9 For Ada source code. .. versionadded:: 1.3 Ada)adaada95ada2005)z*.adbz*.adsz*.adaz text/x-adaz[^\S\n]+z--.*?\nzfunction|procedure|entry subprogramz(subtype|type)(\s+)(\w+)type_defztask|protectedz(subtype)(\s+)z (end)(\s+)r-z(pragma)(\s+)(\w+)z(true|false|null)\b)AddressByteBoolean Character ControlledCountCursorDuration File_Mode File_Typere Generatorrd Long_Float Long_IntegerLong_Long_FloatLong_Long_IntegerNaturalPositiveReference_Type Short_Float Short_IntegerShort_Short_FloatShort_Short_IntegerrWide_Character Wide_Stringz\b)suffixz,(and(\s+then)?|in|mod|not|or(\s+else)|rem)\bzgeneric|privatepackagezarray\b array_defz(with|use)(\s+)importz(\w+)(\s*)(:)(\s*)(constant)z<<\w+>>z0(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while))=rNrracceptaccessaliasedallr atr"bodyr$constantdeclaredelaydeltadigitsr*r,elsifr-entry exceptionrdr7r/r1r2r]limitedrrfnullr=r@othersr] overridingpragmarr`rangerDrenamesrequeuereturnreverseselectseparatesomesubtype synchronizedtasktagged terminaterLrNrPwhenrSrU)prefixrz"[^"]*" attributenumbersz'[^']'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_partrArzis\bz "[^"]+"|\w+rootz(if|case|record|loop|select)z"[^"]+"|[\w.]+r?rz with|and|use)rrzrecord\b record_defz(null record)(;)z(\w+)(\s+)(range)z end recordz[\w.]+z\)z\w+z,|:[^=]z(in|not|null|out|access)\brzis\s+new|renamesr]package_instantiationz([\w.]+)z("[^"]+"|\w+)(\s+)(=>)z[\w.\'"]) rrrrr-rrrrrrrN),r{r|r}r~rhrrrrKrMrNflagsr r rUr Declarationrr`ReservedrSConstantrrWord Namespacerrr^rrrrrrrcrerd Attributer\r Variabler[tokensr;r;r;r<rs          6         )r~rKpygments.lexerrrrrrrrr pygments.utilr r pygments.tokenr r rrrrrrrpygments.scannerrpygments.lexers.modula2r__all__rrr;r;r;r<s (,  g