3

V'ícQÏã@srdZddlZddlmZmZddlmZmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZdgZGdd„deƒZdS)zÔ
    pygments.lexers.modula2
    ~~~~~~~~~~~~~~~~~~~~~~~

    Multi-Dialect Lexer for Modula-2.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
éN)Ú
RegexLexerÚinclude)Úget_bool_optÚget_list_opt)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚModula2LexercK@steZdZdZdZdZddgZddgZdgZe	j
e	jBZd	e
fd
e
fgdejfdejfd
ejfdejfdejfdejfdejfdejfgdefgdejfdejfgdejfdejfdejfgdejfdejfdejfgdejfdejfgdefdefd efd!efd"efd#efd$efd%efd&efd'efg
d(efd)efd*efd+efd,efd-efd.efd/efd0efg	d1efd2efd3efd4efd5efd6efd7efgd8efd9efd:efgd;ejfd<ejfd=ejfgd>ejfd?ejfged@ƒedAƒedBƒedCƒedDƒedEƒedFƒedGƒedHƒedIƒedJƒedKƒedLƒg
dMœZdcZ ddZ!deZ"dfZ#dgZ$dhZ%diZ&djZ'dkZ(dlZ)dmZ*dnZ+doZ,dpZ-dqZ.drZ/dsZ0dtZ1fZ2fZ3duZ4fZ5dvZ6dwZ7fZ8fZ9fZ:dxZ;dyZ<dzZ=d{Z>d|Z?d}Z@d~ZAdZBd€ZCfZDfZEfZFfZGfZHdZId‚ZJdƒZKd„ZLd…ZMd†ZNd‡ZOdˆZPfe#fe'fe+fe/fe'fe#fe'fe'fdWœ	ZQe e$e(e,fe e$fe e(fe e,fe e,e0fe e(e3fe e$e6fe e(e9fe e(e<fdWœ	ZRe!e%e)e-fe!e%fe!e)fe!e-fe!e-e1fe!e)e4fe!e%e7fe!e)e:fe!e)e=fdWœ	ZSe"e&e*e.fe"e&fe"e*fe"e.fe"e.e2fe"e*e5fe"e&e8fe"e*e;fe"e*e>fdWœ	ZTfffeIfeIfffffdWœ	ZUfe?feDfeJeKeIfeJeKfeDfe?feDfeDfdWœ	ZVfe@feEfeLfeLfeEfe@feEfeEfdWœ	ZWfeAfeFfeMfeMfeFfeAfeFfeFfdWœ	ZXfeBfeGfeNfeNfeGfeBfeGfeGfdWœ	ZYfeCfeHfeOfeOfeHfeCfeHfeHfdWœ	ZZdXdY„Z[dZd[„Z\d\d]„Z]d^d_„Z^d`da„Z_dbS(‰ra²
    For Modula-2 source code.

    The Modula-2 lexer supports several dialects.  By default, it operates in
    fallback mode, recognising the *combined* literals, punctuation symbols
    and operators of all supported dialects, and the *combined* reserved words
    and builtins of PIM Modula-2, ISO Modula-2 and Modula-2 R10, while not
    differentiating between library defined identifiers.

    To select a specific dialect, a dialect option may be passed
    or a dialect tag may be embedded into a source file.

    Dialect Options:

    `m2pim`
        Select PIM Modula-2 dialect.
    `m2iso`
        Select ISO Modula-2 dialect.
    `m2r10`
        Select Modula-2 R10 dialect.
    `objm2`
        Select Objective Modula-2 dialect.

    The PIM and ISO dialect options may be qualified with a language extension.

    Language Extensions:

    `+aglet`
        Select Aglet Modula-2 extensions, available with m2iso.
    `+gm2`
        Select GNU Modula-2 extensions, available with m2pim.
    `+p1`
        Select p1 Modula-2 extensions, available with m2iso.
    `+xds`
        Select XDS Modula-2 extensions, available with m2iso.


    Passing a Dialect Option via Unix Commandline Interface

    Dialect options may be passed to the lexer using the `dialect` key.
    Only one such option should be passed. If multiple dialect options are
    passed, the first valid option is used, any subsequent options are ignored.

    Examples:

    `$ pygmentize -O full,dialect=m2iso -f html -o /path/to/output /path/to/input`
        Use ISO dialect to render input to HTML output
    `$ pygmentize -O full,dialect=m2iso+p1 -f rtf -o /path/to/output /path/to/input`
        Use ISO dialect with p1 extensions to render input to RTF output


    Embedding a Dialect Option within a source file

    A dialect option may be embedded in a source file in form of a dialect
    tag, a specially formatted comment that specifies a dialect option.

    Dialect Tag EBNF::

       dialectTag :
           OpeningCommentDelim Prefix dialectOption ClosingCommentDelim ;

       dialectOption :
           'm2pim' | 'm2iso' | 'm2r10' | 'objm2' |
           'm2iso+aglet' | 'm2pim+gm2' | 'm2iso+p1' | 'm2iso+xds' ;

       Prefix : '!' ;

       OpeningCommentDelim : '(*' ;

       ClosingCommentDelim : '*)' ;

    No whitespace is permitted between the tokens of a dialect tag.

    In the event that a source file contains multiple dialect tags, the first
    tag that contains a valid dialect option will be used and any subsequent
    dialect tags will be ignored.  Ideally, a dialect tag should be placed
    at the beginning of a source file.

    An embedded dialect tag overrides a dialect option set via command line.

    Examples:

    ``(*!m2r10*) DEFINITION MODULE Foobar; ...``
        Use Modula2 R10 dialect to render this source file.
    ``(*!m2pim+gm2*) DEFINITION MODULE Bazbam; ...``
        Use PIM dialect with GNU extensions to render this source file.


    Algol Publication Mode:

    In Algol publication mode, source text is rendered for publication of
    algorithms in scientific papers and academic texts, following the format
    of the Revised Algol-60 Language Report.  It is activated by passing
    one of two corresponding styles as an option:

    `algol`
        render reserved words lowercase underline boldface
        and builtins lowercase boldface italic
    `algol_nu`
        render reserved words lowercase boldface (no underlining)
        and builtins lowercase boldface italic

    The lexer automatically performs the required lowercase conversion when
    this mode is activated.

    Example:

    ``$ pygmentize -O full,style=algol -f latex -o /path/to/output /path/to/input``
        Render input file in Algol publication mode to LaTeX output.


    Rendering Mode of First Class ADT Identifiers:

    The rendering of standard library first class ADT identifiers is controlled
    by option flag "treat_stdlib_adts_as_builtins".

    When this option is turned on, standard library ADT identifiers are rendered
    as builtins.  When it is turned off, they are rendered as ordinary library
    identifiers.

    `treat_stdlib_adts_as_builtins` (default: On)

    The option is useful for dialects that support ADTs as first class objects
    and provide ADTs in the standard library that would otherwise be built-in.

    At present, only Modula-2 R10 supports library ADTs as first class objects
    and therefore, no ADT identifiers are defined for any other dialects.

    Example:

    ``$ pygmentize -O full,dialect=m2r10,treat_stdlib_adts_as_builtins=Off ...``
        Render standard library ADTs as ordinary library types.

    .. versionadded:: 1.3

    .. versionchanged:: 2.1
       Added multi-dialect support.
    zModula-2zhttp://www.modula2.org/Zmodula2Úm2z*.defz*.modztext/x-modula2z\n+z\s+z\(\*!m2pim\*\)z\(\*!m2iso\*\)z\(\*!m2r10\*\)z\(\*!objm2\*\)z\(\*!m2iso\+aglet\*\)z\(\*!m2pim\+gm2\*\)z\(\*!m2iso\+p1\*\)z\(\*!m2iso\+xds\*\)z([a-zA-Z_$][\w$]*)z0b[01]+(\'[01]+)*z0[ux][0-9A-F]+(\'[0-9A-F]+)*z>[0-9]+(\'[0-9]+)*\.[0-9]+(\'[0-9]+)*[eE][+-]?[0-9]+(\'[0-9]+)*z$[0-9]+(\'[0-9]+)*\.[0-9]+(\'[0-9]+)*z[0-9]+(\'[0-9]+)*z[0-7]+Bz[0-7]+Cz
[0-9A-F]+Hz"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'z\*\.z\+>ú<>z<=z>=ú==ú::z:=z\+\+ú--z[+-]z[*/]z\\z[=#<>]z\^ú@ú&ú~ú`z\.\.ú<<ú>>ú->z\|#ú##z\|\*z[()\[\]{},.:;|]ú!z\?z^//.*?\nz\(\*([^$].*?)\*\)z/\*(.*?)\*/z	<\*.*?\*>z
\(\*\$.*?\*\)Ú
whitespaceÚdialecttagsÚpragmasÚcommentsÚidentifiersÚsuffixed_number_literalsÚprefixed_number_literalsÚplain_number_literalsÚstring_literalsÚdigraph_punctuationÚdigraph_operatorsÚunigraph_punctuationÚunigraph_operators)rrr"r$r%r#r&r(r*r'r)r!r ÚrootÚANDÚARRAYÚBEGINÚBYÚCASEÚCONSTÚ
DEFINITIONÚDIVÚDOÚELSEÚELSIFÚENDÚEXITÚFORÚFROMÚIFÚIMPLEMENTATIONÚIMPORTÚINÚLOOPÚMODÚMODULEÚNOTÚOFÚORÚPOINTERÚ	PROCEDUREÚRECORDÚREPEATÚRETURNÚSETÚTHENÚTOÚTYPEÚUNTILÚVARÚWHILEÚABSÚBOOLEANÚCARDINALÚCHARÚCHRÚFALSEÚINTEGERÚLONGINTÚLONGREALÚMAXÚMINÚNILÚODDÚORDÚREALÚTRUEÚADDRESSÚBYTEÚWORDÚADRú$ú%ú?ú\ú++ú*.ú+>ú|#ÚEXPORTÚ	QUALIFIEDÚWITHÚBITSETÚCAPÚDECÚDISPOSEÚEXCLÚFLOATÚHALTÚHIGHÚINCÚINCLÚNEWÚPROCÚSIZEÚTRUNCÚVALÚSYSTEMÚPROCESSÚTSIZEÚ
NEWPROCESSÚTRANSFERÚEXCEPTÚFINALLYÚFORWARDÚ	PACKEDSETÚREMÚRETRYÚABSTRACTÚASÚCLASSÚGUARDÚINHERITÚOVERRIDEÚREADONLYÚREVEALÚTRACEDÚ
UNSAFEGUARDEDÚCMPLXÚCOMPLEXÚIMÚINTÚ
INTERRUPTIBLEÚLENGTHÚLFLOATÚLONGCOMPLEXÚ
PROTECTIONÚREÚUNINTERRUBTIBLEÚCREATEÚDESTROYÚEMPTYÚISMEMBERÚSELFÚ
BITSPERLOCÚLOCSPERBYTEÚLOCSPERWORDÚLOCÚADDADRÚSUBADRÚDIFADRÚMAKEADRÚROTATEÚSHIFTÚCASTÚ
COROUTINESÚATTACHÚ	COROUTINEÚCURRENTÚDETACHÚHANDLERÚINTERRUPTSOURCEÚ
IOTRANSFERÚ
IsATTACHEDÚLISTENÚNEWCOROUTINEÚPROTÚ
EXCEPTIONSÚAllocateSourceÚ
CurrentNumberÚExceptionNumberÚExceptionSourceÚ
GetMessageÚIsCurrentSourceÚIsExceptionalExecutionÚRAISEÚTERMINATIONÚ
IsTerminatingÚ	HasHaltedÚM2EXCEPTIONÚM2ExceptionsÚM2ExceptionÚ
IsM2ExceptionÚindexExceptionÚrangeExceptionÚcaseSelectExceptionÚinvalidLocationÚfunctionExceptionÚwholeValueExceptionÚwholeDivExceptionÚrealValueExceptionÚrealDivExceptionÚcomplexValueExceptionÚcomplexDivExceptionÚ
protExceptionÚsysExceptionÚcoExceptionÚexExceptionÚALIASÚARGLISTÚ	BLUEPRINTÚCOPYÚGENLIBÚ
INDETERMINATEÚNONEÚOPAQUEÚREFERENTIALÚRELEASEÚRETAINÚASMÚREGÚCOUNTÚEXISTSÚINSERTÚLONGCARDÚOCTETÚPTRÚPREDÚREADÚREADNEWÚREMOVEÚRETRIEVEÚSORTÚSTOREÚSUBSETÚSUCCÚTLIMITÚTMAXÚTMINÚUNICHARÚWRITEÚWRITEFÚTPROPERTIESÚPROPERTYÚLITERALÚ	TPROPERTYÚTLITERALÚTBUILTINÚTDYNÚTREFCÚTNILÚTBASEÚ
TPRECISIONÚTMAXEXPÚTMINEXPÚ
CONVERSIONÚTSXFSIZEÚSXFÚUNSAFEÚ	INTRINSICÚAVAILÚADDÚSUBÚADDCÚSUBCÚFETCHADDÚFETCHSUBÚSHLÚSHRÚASHRÚROTLÚROTRÚROTLCÚROTRCÚBWNOTÚBWANDÚBWORÚBWXORÚBWNANDÚBWNORÚSETBITÚTESTBITÚLSBITÚMSBITÚCSBITSÚBAILÚTODOÚFFIÚADDRÚVARGLISTÚVARGCÚATOMICÚSWAPÚCASÚCOMPILERÚDEBUGÚMODNAMEÚPROCNAMEÚLINENUMÚDEFAULTÚHASHÚ	ASSEMBLERÚREGISTERÚSETREGÚGETREGÚCODEÚBYCOPYÚBYREFÚCONTINUEÚCRITICALÚINOUTÚMETHODÚONÚOPTIONALÚOUTÚPRIVATEÚ	PROTECTEDÚPROTOCOLÚPUBLICÚSUPERÚTRYÚOBJECTÚNOÚYESÚBITSET8ÚBITSET16ÚBITSET32Ú	CARDINAL8Ú
CARDINAL16Ú
CARDINAL32ÚINTEGER8Ú	INTEGER16Ú	INTEGER32Ú
__ATTRIBUTE__Ú__BUILTIN__Ú
__COLUMN__Ú__DATE__Ú__FILE__Ú__FUNCTION__Ú__LINE__Ú
__MODULE__ÚVOLATILEÚ
CARDINAL64Ú	COMPLEX32Ú	COMPLEX64Ú	COMPLEX96Ú
COMPLEX128Ú	INTEGER64ÚREAL8ÚREAL16ÚREAL32ÚREAL96ÚREAL128ÚTHROWÚBCDÚSEQÚASHÚASSERTÚDIFFADR_TYPEÚENTIERÚINDEXÚLENÚ	SHORTCARDÚSHORTINTÚBOOL8ÚBOOL16ÚBOOL32ÚCARD8ÚCARD16ÚCARD32ÚINT8ÚINT16ÚINT32ÚREFÚMOVEÚFILLÚGETÚPUTÚCCÚintÚunsignedÚsize_tÚvoidCOMPILERÚOPTIONÚEQUATIONÚTerminalÚ
FileSystemÚInOutÚ	RealInOutÚMathLib0ÚStorageÚFlagÚFlagSetÚResponseÚCommandÚLockÚ
PermissionÚ
MediumTypeÚFileÚFileProcÚ
DirectoryProcÚFileCommandÚDirectoryCommandÚReadÚBusyReadÚ	ReadAgainÚWriteÚWriteStringÚWriteLnÚCreateÚLookupÚCloseÚDeleteÚRenameÚSetReadÚSetWriteÚ	SetModifyÚSetOpenÚDoioÚSetPosÚGetPosÚLengthÚResetÚAgainÚReadWordÚ	WriteWordÚReadCharÚ	WriteCharÚCreateMediumÚDeleteMediumÚ
AssignNameÚDeassignNameÚ
ReadMediumÚLookupMediumÚ	OpenInputÚ
OpenOutputÚ
CloseInputÚCloseOutputÚ
ReadStringÚReadIntÚReadCardÚReadWrdÚWriteIntÚ	WriteCardÚWriteOctÚWriteHexÚWriteWrdÚReadRealÚ	WriteRealÚ
WriteFixPtÚWriteRealOctÚsqrtÚexpÚlnÚsinÚcosÚarctanÚentierÚALLOCATEÚ
DEALLOCATEÚDoneÚtermCHÚinÚoutÚEOLÚLONGBCDÚSHORTBITSETÚ
LONGBITSETÚLONGLONGBITSETÚLONGLONGCARDÚLONGLONGINTÚPOSINTÚSHORTPOSINTÚ
LONGPOSINTÚLONGLONGPOSINTÚBITSET64Ú	BITSET128ÚBS8ÚBS16ÚBS32ÚBS64ÚBS128ÚCARDINAL128ÚCARD64ÚCARD128Ú
INTEGER128ÚINT64ÚINT128ÚSTRINGÚ	UNISTRINGÚ	ProtoRootÚProtoComputationalÚProtoNumericÚProtoScalarÚProtoNonScalarÚ
ProtoCardinalÚProtoIntegerÚ	ProtoRealÚProtoComplexÚProtoVectorÚ
ProtoTupleÚProtoCompArrayÚProtoCollectionÚProtoStaticArrayÚProtoStaticSetÚProtoStaticStringÚ
ProtoArrayÚProtoStringÚProtoSetÚ
ProtoMultiSetÚProtoDictionaryÚProtoMultiDictÚProtoExtensionÚProtoIOÚ
ProtoCardMathÚProtoIntMathÚ
ProtoRealMathÚASCIIÚ	BooleanIOÚCharIOÚ	UnicharIOÚOctetIOÚ
CardinalIOÚ
LongCardIOÚ	IntegerIOÚ	LongIntIOÚRealIOÚ
LongRealIOÚBCDIOÚ	LongBCDIOÚCardMathÚLongCardMathÚIntMathÚLongIntMathÚRealMathÚLongRealMathÚBCDMathÚLongBCDMathÚFileIOÚ	IOSupportÚStatusÚstdInÚstdOutÚstdErrÚpiÚtauÚunknownÚm2pimÚm2isoÚm2r10Úobjm2úm2iso+agletú	m2pim+gm2úm2iso+p1ú	m2iso+xds)	r,r-r.r/r0zm2iso+agletz	m2pim+gm2zm2iso+p1z	m2iso+xdscKs’t|dgƒ}x4|D]"}||jdd
…kr|j|ƒPqW|jdƒd|_t|dgƒ}d|ksdd|krld|_nd|_t|d	dƒ|_tj|f|ŽdS)NÚdialectér,FÚstyleZalgolZalgol_nuTÚtreat_stdlib_adts_as_builtinséÿÿÿÿ)	rÚdialectsÚset_dialectÚdialect_set_by_tagÚalgol_publication_moderr8rÚ__init__)ÚselfÚoptionsr:Zdialect_optionZstyles©rAú;/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/modula2.pyr>ñs


zModula2Lexer.__init__cCs$||jkrd}n|}tƒ}x |j|D]}|jt|ƒƒq&Wtƒ}x |j|D]}|jt|ƒƒqNWtƒ}x&|j|D]}|jt|ƒj|ƒƒqvWtƒ}x&|j|D]}|jt|ƒj|ƒƒq¤Wtƒ}x&|j|D]}|jt|ƒj|ƒƒqÒWtƒ}	x(|j	|D]}|	jt|ƒj|ƒƒqWtƒ}
x(|j
|D]}|
jt|ƒj|ƒƒq0Wtƒ}x(|j|D]}|jt|ƒj|ƒƒq`Wtƒ}x(|j|D]}|jt|ƒj|ƒƒqWtƒ}
x(|j
|D]}|
jt|ƒj|ƒƒqÀW||_||_||_||_||_||_|	|_|
|_||_||_|
|_dS)Nr,)r:ÚsetÚlexemes_to_reject_dbÚupdateÚreserved_words_dbÚbuiltins_dbÚ
differenceÚpseudo_builtins_dbÚstdlib_adts_dbÚstdlib_modules_dbÚstdlib_types_dbÚstdlib_procedures_dbÚstdlib_variables_dbÚstdlib_constants_dbr5Úlexemes_to_rejectÚreserved_wordsÚbuiltinsÚpseudo_builtinsÚadtsÚmodulesÚtypesÚ
proceduresÚ	variablesÚ	constants)r?Z
dialect_idr5Zlexemes_to_reject_setÚlistZreswords_setZbuiltins_setZpseudo_builtins_setZadts_setZmodules_setZ	types_setZprocedures_setZ
variables_setZ
constants_setrArArBr;sX
zModula2Lexer.set_dialectc
CsŒd}d}t|ƒ}t|ƒ}|}|}t|ƒ||kr„|j|ƒr„|j|ƒr„|||…}x4tdt|jƒƒD]}	||j|	krd|SqdWdSndSdS)Nz(*!z*)r6r,)ÚlenÚ
startswithÚendswithÚranger:)
r?Zdialect_tagZleft_tag_delimZright_tag_delimZleft_tag_delim_lenZright_tag_delim_lenZindicator_startZ
indicator_endZ	indicatorÚindexrArArBÚget_dialect_from_dialect_tag}s

z)Modula2Lexer.get_dialect_from_dialect_tagccsܐxÔtj||ƒD]Â\}}}|jrP|tjkrP|j|ƒ}|dkrP|j|ƒd|_|tkrR||jkrzt	j
}|jrx|jƒ}nÔ||j
krštj}|jr˜|jƒ}n´||jkr¼tjj}|jrº|jƒ}n’||jkrì|jsÔtj}ntjj}|jrê|jƒ}nb||jkrtj}nN||jkrtj}n:||jkr(tj}n&||jkr<tj}n||jkrÈtj}nv|tkrà|jdkrŠd|ks„|dd…dkrÞt}nT|jdkrÈ|tj kr¨t}n6|tj!krÄd|krÄt}n|tj"krÈd|krÈt}nè|tkrb|tj#kr|jdkrt}|tj$krÈ|j%d
ƒr2|jj%dƒr2t}n.|j%dƒrÈ|jdkrÈ|jj%dƒrÈtj&}nf||j'krrt}|jrÈ|dkrŠd}n>|dkršd}n.|dkrªd}n|dkrºd}n|dkrÈd}|||fVqWdS)Nr,Tr/r0ú'réÚ0bÚ0xÚ0uÚHÚEz<*r-z(*$ú#u≠z<=u≤z>=u≥z==u≡z*.u•)r,r/r0)rcrdre)r/r0)r,r/r0)(rÚget_tokens_unprocessedr<rÚSpecialr`r;r
rQr	ZReservedr=ÚlowerrRZBuiltinrSZPseudorTr8Ú	NamespacerUrVZClassrWZFunctionrXÚVariablerYÚConstantrr5rÚOctÚHexÚFloatÚSingleÚPreprocr\Ú	MultilinerP)r?Útextr_ÚtokenÚvalueZindicated_dialectrArArBri­s


















z#Modula2Lexer.get_tokens_unprocessedcCsHd|kod|kod|ksdSd}tjd|ƒr4|d7}tjd|ƒrDd	}|S)
zNIt's Pascal-like, but does not use FUNCTION -- uses PROCEDURE
        instead.z(*z*)z:=Nrz
\bPROCEDURE\bg333333ã?z\bFUNCTION\bg)ÚreÚsearch)ruÚresultrArArBÚanalyse_textszModula2Lexer.analyse_textN)%r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrP)rQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`)rarbrcrd)rrrrerfrgrhrrirrrjrkrrrrlr)rmrnro)rprqrrrsrtrurvrwrxryrzr\r{r|r}r~)rr€rr‚rƒ)rrerfrgrhrrirrrjrkrrrrlr)r„rmr…r†r‡rnrˆr‰rorŠr‹rŒrrŽrrr‘r’r“)rprqr”r•rrrsrtrurvrwr–rxryr—r˜r™ršr›rzr{rœrr|r}ržr~rŸr r¡r¢r£):rr¤r¥r¦r§r¨r©rªr«rdr¬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Ù)rrrrerfrr)rÚrÛrÜrÝrÞrßrzràrárârãräråræ)rSrçr¡rèrér™rêrërìrírîrïrðrñròrórôrõrör÷rør`rrùrúrû)Krürýrþrÿrrrrrrrrrr	r
rr~rr®r
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'rvr(r)r*r+r,r-r
rr.r/rxrrrr rrr0r1r2r3r4r5r6r7r8r9r:r;)rrerfrr)r<r=rŒr>r?r@rArBrCrDrErFrGrHrIrJ)rKrLrM)	rNrOrPrQrRrSrTrUrV)
rårWrXrYrZr[r\r]r^r_)rNrOrPrQrRrSr`rarbrcrdrTrUrVrerfrgrhrirjrk)rl)rm)	rnrorprqrrrsrêrtru)r€r‚rvrwrxryrzr{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œ)9r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Ú)0rlrÛrprÜrÝrÞr•r›rtrßruràrárârãrärNrOrPrårærçrèrérêrërQrRrSr`rìryrzr{rírîrTrUrVrerïr|r}r~rðrñròró)rôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr	r
rrr
r)rrrrrrrrrrrrrrrrrr r!r"r#r$rŒrr%)r˜r&)rÔrÕr|)r'r(r))r*r+)	r,r-r.r/r0r1r2r3r4)`Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesrxÚ	MULTILINEÚDOTALLÚflagsrrrjr
rZBinrprqZIntegerrorÚDoublerrrr
rtrsrÚtokensZcommon_reserved_wordsZcommon_builtinsZcommon_pseudo_builtinsZpim_lexemes_to_rejectZpim_additional_reserved_wordsZpim_additional_builtinsZpim_additional_pseudo_builtinsZiso_lexemes_to_rejectZiso_additional_reserved_wordsZiso_additional_builtinsZiso_additional_pseudo_builtinsZm2r10_lexemes_to_rejectZm2r10_additional_reserved_wordsZm2r10_additional_builtinsZ m2r10_additional_pseudo_builtinsZobjm2_lexemes_to_rejectZobjm2_additional_reserved_wordsZobjm2_additional_builtinsZ objm2_additional_pseudo_builtinsZaglet_additional_reserved_wordsZaglet_additional_builtinsZ aglet_additional_pseudo_builtinsZgm2_additional_reserved_wordsZgm2_additional_builtinsZgm2_additional_pseudo_builtinsZp1_additional_reserved_wordsZp1_additional_builtinsZp1_additional_pseudo_builtinsZxds_additional_reserved_wordsZxds_additional_builtinsZxds_additional_pseudo_builtinsZpim_stdlib_module_identifiersZpim_stdlib_type_identifiersZpim_stdlib_proc_identifiersZpim_stdlib_var_identifiersZpim_stdlib_const_identifiersZiso_stdlib_module_identifiersZiso_stdlib_type_identifiersZiso_stdlib_proc_identifiersZiso_stdlib_var_identifiersZiso_stdlib_const_identifiersZm2r10_stdlib_adt_identifiersZ"m2r10_stdlib_blueprint_identifiersZm2r10_stdlib_module_identifiersZm2r10_stdlib_type_identifiersZm2r10_stdlib_proc_identifiersZm2r10_stdlib_var_identifiersZm2r10_stdlib_const_identifiersr:rDrFrGrIrJrKrLrMrNrOr>r;r`rir{rArArArBrsØ






	
	
&f0n)rrxZpygments.lexerrrZ
pygments.utilrrZpygments.tokenrrrr	r
rrr
rÚ__all__rrArArArBÚ<module>	s,