ó
    öÞ jSÏ  ã                   óx   • S r SSKrSSKJrJr  SSKJrJr  SSKJ	r	J
r
JrJrJrJrJrJrJr  S/r " S S\5      rg)zÃ
pygments.lexers.modula2
~~~~~~~~~~~~~~~~~~~~~~~

Multi-Dialect Lexer for Modula-2.

:copyright: Copyright 2006-present 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ÚModula2Lexerc                   ó,  • \ rS rSrSrSrSrSS/rSS/rS	/r	S
r
\R                  \R                  -  rS\4S\4/S\R"                  4S\R"                  4S\R"                  4S\R"                  4S\R"                  4S\R"                  4S\R"                  4S\R"                  4/S\4/S\R(                  4S\R*                  4/S\R,                  4S\R,                  4S\R.                  4/S\R0                  4S\R0                  4S\R*                  4/S\R4                  4S\R6                  4/S \4S!\4S"\4S#\4S$\4S%\4S&\4S'\4S(\4S)\4/
S*\4S+\4S,\4S-\4S.\4S/\4S0\4S1\4S2\4/	S3\4S4\4S5\4S6\4S7\4S8\4S9\4/S:\4S;\4S<\4/S=\R6                  4S>\R<                  4S?\R<                  4/S@\R>                  4SA\R>                  4/\ " SB5      \ " SC5      \ " SD5      \ " SE5      \ " SF5      \ " SG5      \ " SH5      \ " SI5      \ " SJ5      \ " SK5      \ " SL5      \ " SM5      \ " SN5      /SO.r!SPr"SQr#SRr$SSr%STr&SUr'SVr(SWr)SXr*SYr+SZr,S[r-S\r.S]r/S^r0S_r1S`r2Sar3Sbr4Sbr5Scr6Sbr7Sdr8Ser9Sbr:Sbr;Sbr<Sfr=Sgr>Shr?Sir@SjrASkrBSlrCSmrDSnrESbrFSbrGSbrHSbrISbrJSorKSprLSqrMSrrNSsrOStrPSurQSvrRSb\%4\)4\-4\14\)4\%4\)4\)4Sv.	rS\"\&\*\.4\"\&4\"\*4\"\.4\"\.\24\"\*\54\"\&\84\"\*\;4\"\*\>4Sv.	rT\#\'\+\/4\#\'4\#\+4\#\/4\#\/\34\#\+\64\#\'\94\#\+\<4\#\+\?4Sv.	rU\$\(\,\04\$\(4\$\,4\$\04\$\0\44\$\,\74\$\(\:4\$\,\=4\$\,\@4Sv.	rVSbSbSb\K4\K4SbSbSbSbSv.	rWSb\A4\F4\L\M\K4\L\M4\F4\A4\F4\F4Sv.	rXSb\B4\G4\N4\N4\G4\B4\G4\G4Sv.	rYSb\C4\H4\O4\O4\H4\C4\H4\H4Sv.	rZSb\D4\I4\P4\P4\I4\D4\I4\I4Sv.	r[Sb\E4\J4\Q4\Q4\J4\E4\J4\J4Sv.	r\Sw r]Sx r^Sy r_Sz r`S{ raS|rbg})~r   é   a'  
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.

.. versionchanged:: 2.1
   Added multi-dialect support.
zModula-2zhttp://www.modula2.org/Úmodula2Úm2z*.defz*.modztext/x-modula2z1.3z\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$]*)z0b[01]+(\'[01]+)*z0[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^//.*?\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)r%   r&   r)   r+   r,   r*   r-   r/   r1   r.   r0   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)r$   r   r   Ú$Ú%Ú?Ú\r   ú++r   r   ú*.ú+>r"   r    r!   ú|#r#   )ÚEXPORTÚ	QUALIFIEDÚWITH)ÚBITSETÚCAPÚDECÚDISPOSEÚEXCLÚFLOATÚHALTÚHIGHÚINCÚINCLÚNEWrc   ÚPROCÚSIZEÚTRUNCÚVAL)ÚSYSTEMÚPROCESSÚTSIZEÚ
NEWPROCESSÚTRANSFER)r   rl   rm   rn   ro   r   rp   r   r   rq   rr   r"   r    r!   rs   r#   )ÚEXCEPTrt   ÚFINALLYÚFORWARDÚ	PACKEDSETru   ÚREMÚRETRYrv   ÚABSTRACTÚASÚCLASSÚGUARDÚINHERITÚOVERRIDEÚREADONLYÚREVEALÚTRACEDÚUNSAFEGUARDED)rw   rx   ÚCMPLXÚCOMPLEXry   rz   r{   r|   r}   r~   ÚIMr   r€   ÚINTÚINTERRUPTIBLEÚLENGTHÚLFLOATÚLONGCOMPLEXr�   r‚   Ú
PROTECTIONÚRErƒ   r„   ÚUNINTERRUBTIBLEr…   ÚCREATEÚDESTROYÚEMPTYÚISMEMBERÚSELF):r†   Ú
BITSPERLOCÚLOCSPERBYTEÚLOCSPERWORDÚLOCÚADDADRÚSUBADRÚDIFADRÚMAKEADRrk   ÚROTATEÚSHIFTÚCASTrˆ   Ú
COROUTINESÚATTACHÚ	COROUTINEÚCURRENTÚDETACHÚHANDLERÚINTERRUPTSOURCEÚ
IOTRANSFERÚ
IsATTACHEDÚLISTENÚNEWCOROUTINEÚPROTrŠ   Ú
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)r$   r   r   rl   rm   r   r   )ÚALIASÚARGLISTÚ	BLUEPRINTÚCOPYÚGENLIBÚINDETERMINATEr�   ÚNONEÚOPAQUEÚREFERENTIALÚRELEASEÚRETAINÚASMÚREG)rZ   ÚCOUNTr¨   ÚEXISTSÚINSERTr    ÚLONGCARDÚOCTETÚPTRÚPREDÚREADÚREADNEWÚREMOVEÚRETRIEVEÚSORTÚSTOREÚSUBSETÚSUCCÚTLIMITÚTMAXÚTMINrg   rˆ   ÚUNICHARÚWRITEÚWRITEF)KÚTPROPERTIESÚPROPERTYÚLITERALÚ	TPROPERTYÚTLITERALÚTBUILTINÚTDYNÚTREFCÚTNILÚTBASEÚ
TPRECISIONÚTMAXEXPÚTMINEXPÚ
CONVERSIONÚTSXFSIZEÚSXFr…   ÚUNSAFErµ   Ú	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ÚBAILr}   ÚTODOÚFFIÚADDRÚVARGLISTÚVARGCÚATOMICr  r  ÚSWAPÚCASr   ry   r$  r'  r%  r&  ÚCOMPILERÚDEBUGÚMODNAMEÚPROCNAMEÚLINENUMÚDEFAULTÚHASHÚ	ASSEMBLERÚREGISTERÚSETREGÚGETREGÚCODE)r$   rl   rm   r   r   )ÚBYCOPYÚBYREFr“   Ú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)
rì   Ú__ATTRIBUTE__Ú__BUILTIN__Ú
__COLUMN__Ú__DATE__Ú__FILE__Ú__FUNCTION__Ú__LINE__Ú
__MODULE__ÚVOLATILE)rV  rW  rX  rY  rZ  r[  Ú
CARDINAL64Ú	COMPLEX32Ú	COMPLEX64Ú	COMPLEX96Ú
COMPLEX128r\  r]  r^  Ú	INTEGER64ÚREAL8ÚREAL16ÚREAL32ÚREAL96ÚREAL128ÚTHROW)ÚBCD)ÚSEQ)	ÚASHÚASSERTÚDIFFADR_TYPEÚENTIERÚINDEXÚLENrñ   Ú	SHORTCARDÚSHORTINT)r‡   r‰   Ú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)9Ú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)0rt  ÚLONGBCDrw   ÚSHORTBITSETÚ
LONGBITSETÚLONGLONGBITSETrœ   r¢   r|  ÚLONGLONGCARDr}  ÚLONGLONGINTÚPOSINTÚSHORTPOSINTÚ
LONGPOSINTÚLONGLONGPOSINTrV  rW  rX  ÚBITSET64Ú	BITSET128ÚBS8ÚBS16ÚBS32ÚBS64ÚBS128rY  rZ  r[  rh  ÚCARDINAL128r�  r‚  rƒ  ÚCARD64ÚCARD128r\  r]  r^  rm  Ú
INTEGER128r„  r…  r†  Ú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ÚFileIOr”  r˜  Ú	IOSupport)r   ÚStatus)rÜ  rÝ  rƒ   )ÚstdInÚstdOutÚstdErr)ÚpiÚtau)	ÚunknownÚm2pimÚm2isoÚm2r10Úobjm2zm2iso+agletz	m2pim+gm2zm2iso+p1z	m2iso+xdsc                 óL  • [        US/ 5      nU H(  nX0R                  SS ;   d  M  U R                  U5          O   U R                  S5        SU l        [        US/ 5      nSU;   d  SU;   a  S	U l        OSU l        [        US
S	5      U l        [        R                  " U 40 UD6  g )NÚdialecté   éÿÿÿÿr4  FÚstyleÚalgolÚalgol_nuTÚtreat_stdlib_adts_as_builtins)	r   ÚdialectsÚset_dialectÚdialect_set_by_tagÚalgol_publication_moder   r@  r   Ú__init__)ÚselfÚoptionsrA  Údialect_optionÚstyless        ÚQ/var/www/html/gaurav/venv/lib/python3.13/site-packages/pygments/lexers/modula2.pyrE  ÚModula2Lexer.__init__ð  s³   € ô   ¨°BÓ7ˆã&ˆNØ§¡¨q°Ð!4Õ4à× Ñ  Ô0Ùñ	 'ð ×Ñ˜YÔ'à"'ˆÔô ˜g w°Ó3ˆð �fÓ 
¨fÓ 4Ø*.ˆDÕ'à*/ˆDÔ'ô .:ØÐ4°dó.<ˆÔ*ô 	×Ò˜DÑ, GÓ,ó    c                 ó(  • XR                   ;  a  SnOUn[        5       nU R                  U    H  nUR                  [        U5      5        M     [        5       nU R                  U    H  nUR                  [        U5      5        M     [        5       nU R
                  U    H,  nUR                  [        U5      R                  U5      5        M.     [        5       nU R                  U    H,  nUR                  [        U5      R                  U5      5        M.     [        5       nU R                  U    H,  nUR                  [        U5      R                  U5      5        M.     [        5       n	U R                  U    H,  nU	R                  [        U5      R                  U5      5        M.     [        5       n
U R                  U    H,  nU
R                  [        U5      R                  U5      5        M.     [        5       nU R                  U    H,  nUR                  [        U5      R                  U5      5        M.     [        5       nU R                  U    H,  nUR                  [        U5      R                  U5      5        M.     [        5       nU R                  U    H,  nUR                  [        U5      R                  U5      5        M.     X l        X0l        XPl        X`l        Xpl        X€l        X�l        X l        X°l        XÀl        XÐl        g )Nr4  )rA  Ú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_dbr:  Úlexemes_to_rejectÚreserved_wordsÚbuiltinsÚpseudo_builtinsÚadtsÚmodulesÚtypesÚ
proceduresÚ	variablesÚ	constants)rF  Ú
dialect_idr:  Úlexemes_to_reject_setÚlistÚreswords_setÚbuiltins_setÚpseudo_builtins_setÚadts_setÚmodules_setÚ	types_setÚprocedures_setÚvariables_setÚconstants_sets                 rJ  rB  ÚModula2Lexer.set_dialect  sŒ  € ð Ÿ]™]Ó*Ø‰Gà ˆGô !$£Ðà×-Ñ-¨gÔ6ˆDØ!×(Ñ(¬¨T«Ö3ñ 7ô “uˆà×*Ñ*¨7Ô3ˆDØ×Ñ¤ D£	Ö*ñ 4ô “uˆà×$Ñ$ WÔ-ˆDØ×Ñ¤ D£	× 4Ñ 4°\Ó BÖCñ .ô "›eÐà×+Ñ+¨GÔ4ˆDØ×&Ñ&¤s¨4£y×';Ñ';¸LÓ'IÖJñ 5ô “5ˆà×'Ñ'¨Ô0ˆDØ�O‰OœC ›I×0Ñ0°Ó>Ö?ñ 1ô “eˆà×*Ñ*¨7Ô3ˆDØ×Ñœs 4›y×3Ñ3°LÓAÖBñ 4ô “Eˆ	à×(Ñ(¨Ô1ˆDØ×ÑœS ›Y×1Ñ1°,Ó?Ö@ñ 2ô ›ˆà×-Ñ-¨gÔ6ˆDØ×!Ñ!¤# d£)×"6Ñ"6°|Ó"DÖEñ 7ô ›ˆà×,Ñ,¨WÔ5ˆDØ× Ñ ¤ T£×!5Ñ!5°lÓ!CÖDñ 6ô ›ˆà×,Ñ,¨WÔ5ˆDØ× Ñ ¤ T£×!5Ñ!5°lÓ!CÖDñ 6ð ŒØ!6ÔØ*ÔØ$ŒØ2ÔØŒ	Ø"ŒØŒ
Ø(ŒØ&ŒØ&�rL  c                 ó>  • SnSn[        U5      n[        U5      nUnU* n[        U5      XE-   :”  am  UR                  U5      (       aW  UR                  U5      (       aA  XU n[        S[        U R                  5      5       H  n	X€R                  U	   :X  d  M  Us  $    gg)Nz(*!ú*)r;  r4  )ÚlenÚ
startswithÚendswithÚrangerA  )
rF  Údialect_tagÚleft_tag_delimÚright_tag_delimÚleft_tag_delim_lenÚright_tag_delim_lenÚindicator_startÚindicator_endÚ	indicatorÚindexs
             rJ  Úget_dialect_from_dialect_tagÚ)Modula2Lexer.get_dialect_from_dialect_tag|  s±   € ð ˆØˆÜ  Ó0ÐÜ! /Ó2ÐØ,ˆØ-Ð.ˆô ˆ{ÓÐ1ÑGÓHØ×%Ñ% n×5Ñ5Ø×#Ñ# O×4Ñ4ð $°MÐBˆIô ˜q¤# d§m¡mÓ"4Ö5�ð
 §¡¨eÑ 4Õ4ð %Ò$ñ 6ð !ð rL  c              #   ót  #   • [         R                  " X5       GH  u  p#nU R                  (       dC  U[        R                  :X  a/  U R                  U5      nUS:w  a  U R                  U5        SU l        U[        L Gaä  X@R                  ;   a3  [        R                  nU R                  (       a  UR                  5       nGOlX@R                  ;   a3  [        R                  nU R                  (       a  UR                  5       nGO*X@R                  ;   a=  [        R                  R                   nU R                  (       a  UR                  5       nGOÞX@R"                  ;   a`  U R$                  (       d  [        R&                  nGO¬[        R                  R                   nU R                  (       a  UR                  5       nGOoX@R(                  ;   a  [        R&                  nGONX@R*                  ;   a  [        R,                  nGO-X@R.                  ;   a  [        R0                  nGOX@R2                  ;   a  [        R4                  nGOëX@R6                  ;   a  [        R8                  nGOÊU[:        ;   a”  U R<                  S;  a  SU;   d	  USS S;   a  [>        nGO™U R<                  S;   a[  U[:        R@                  L a  [>        nGOnU[:        RB                  L a  S	U;   a  [>        nGOMU[:        RD                  L a  S
U;   a  [>        nGO,U[        ;   aÐ  U[        RF                  L a  U R<                  S;  a  [>        nU[        RH                  L a“  URK                  S5      (       a'  U R<                  RK                  S5      (       a  [>        nO©URK                  S5      (       a@  U R<                  S:w  a0  U R<                  RK                  S5      (       d  [        RL                  nORX@RN                  ;   a  [>        nU R                  (       a,  US:X  a  SnO#US:X  a  SnOUS:X  a  SnOUS:X  a  SnOUS:X  a  SnX#U4v •  GM     g 7f)Nr4  T)r4  r7  r8  Ú'r   é   )Ú0bÚ0xÚ0u)r7  r8  ÚHÚEz<*r5  z(*$Ú#u   â‰ r   u   â‰¤r   u   â‰¥r   u   â‰¡rq   u   â€¢)(r   Úget_tokens_unprocessedrC  r   ÚSpecialr�  rB  r   r\  r
   ÚReservedrD  Úlowerr]  ÚBuiltinr^  ÚPseudor_  r@  Ú	Namespacer`  ra  ÚClassrb  ÚFunctionrc  ÚVariablerd  ÚConstantr   r:  r   ÚOctÚHexÚFloatÚSingleÚPreprocru  Ú	Multiliner[  )rF  Útextr€  ÚtokenÚvalueÚindicated_dialects         rJ  rŒ  Ú#Modula2Lexer.get_tokens_unprocessed¬  s  é € Ü#-×#DÒ#DÀT×#PÑˆE˜%ð ×*×*¨u¼¿¹Ó/GØ$(×$EÑ$EÀeÓ$LÐ!Ø$¨	Ó1ð ×$Ñ$Ð%6Ô7Ø.2�DÔ+ð œ‹}Ø×/Ñ/Ó/Ü#×,Ñ,�EØ×2×2Ø %§¡£˜ùàŸm™mÓ+Ü ŸL™L�EØ×2×2Ø %§¡£˜ùà×2Ñ2Ó2Ü ŸL™L×/Ñ/�EØ×2×2Ø %§¡£˜ùàŸi™iÓ'Ø×=×=Ü $§¡šä $§¡× 3Ñ 3˜Ø×6×6Ø$)§K¡K£M˜EùàŸl™lÓ*Ü ŸN™N’EàŸj™jÓ(Ü ŸJ™J’EàŸo™oÓ-Ü ŸM™M’EàŸn™nÓ,Ü ŸM™M’EàŸn™nÓ,Ü ŸM™M�Eùàœ&“ð —<‘<Ð'DÓDØ˜e“| u¨Q¨q zÐ5GÓ'GÜ %˜ùà—\‘\Ð%7Ó7à¤§
¡
Ò*Ü %šà¤&§*¡*Ò,°¸³Ü %šà¤&§,¡,Ò.°3¸%³<Ü %˜ùàœ'Ó!ð œGŸN™NÒ*Ø—|‘|Ð+HÓHÜ %˜àœGŸO™OÒ+à×'Ñ'¨×-Ñ-Ø—|‘|×.Ñ.¨w×7Ñ7Ü %™à×)Ñ)¨%×0Ñ0Ø ŸL™L¨IÓ5Ø $§¡× 7Ñ 7¸× @Ñ @Ü '× 1Ñ 1˜øð
 ×2Ñ2Ó2Ü!�Eð ×.×.Ø “|Ø %™Ø $›Ø %™Ø $›Ø %™Ø $›Ø %™Ø $›Ø %˜ð  Ð%Õ%òW $Qùs   ‚P6P8c                 ó®   • SU ;   a  SU ;   a  SU ;   d  gSn[         R                  " SU 5      (       a  US-  n[         R                  " SU 5      (       a  S	nU$ )
zFIt's Pascal-like, but does not use FUNCTION -- uses PROCEDURE
instead.z(*rs  r   Nr   z\bPROCEDURE\bg333333ã?z\bFUNCTION\bg        )ÚreÚsearch)r�  Úresults     rJ  Úanalyse_textÚModula2Lexer.analyse_text  sW   € ð
 ˜“ ¨£°$¸$³,Øàˆä�9Š9Ð% t×,Ñ,Ø�c‰MˆFô �9Š9�_ d×+Ñ+ØˆFàˆrL  )r_  rD  r]  rd  r:  rC  r[  r`  rb  r^  r\  r@  ra  rc  N)cÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedr£  Ú	MULTILINEÚDOTALLÚflagsr   r   r�  r   r   ÚBinr˜  r™  ÚIntegerr—  r   ÚDoublerš  r	   r   rœ  r›  r   ÚtokensÚcommon_reserved_wordsÚcommon_builtinsÚcommon_pseudo_builtinsÚpim_lexemes_to_rejectÚpim_additional_reserved_wordsÚpim_additional_builtinsÚpim_additional_pseudo_builtinsÚiso_lexemes_to_rejectÚiso_additional_reserved_wordsÚiso_additional_builtinsÚiso_additional_pseudo_builtinsÚm2r10_lexemes_to_rejectÚm2r10_additional_reserved_wordsÚm2r10_additional_builtinsÚ m2r10_additional_pseudo_builtinsÚobjm2_lexemes_to_rejectÚobjm2_additional_reserved_wordsÚobjm2_additional_builtinsÚ objm2_additional_pseudo_builtinsÚaglet_additional_reserved_wordsÚaglet_additional_builtinsÚ aglet_additional_pseudo_builtinsÚgm2_additional_reserved_wordsÚgm2_additional_builtinsÚgm2_additional_pseudo_builtinsÚp1_additional_reserved_wordsÚp1_additional_builtinsÚp1_additional_pseudo_builtinsÚxds_additional_reserved_wordsÚxds_additional_builtinsÚxds_additional_pseudo_builtinsÚpim_stdlib_module_identifiersÚpim_stdlib_type_identifiersÚpim_stdlib_proc_identifiersÚpim_stdlib_var_identifiersÚpim_stdlib_const_identifiersÚiso_stdlib_module_identifiersÚiso_stdlib_type_identifiersÚiso_stdlib_proc_identifiersÚiso_stdlib_var_identifiersÚiso_stdlib_const_identifiersÚm2r10_stdlib_adt_identifiersÚ"m2r10_stdlib_blueprint_identifiersÚm2r10_stdlib_module_identifiersÚm2r10_stdlib_type_identifiersÚm2r10_stdlib_proc_identifiersÚm2r10_stdlib_var_identifiersÚm2r10_stdlib_const_identifiersrA  rO  rQ  rR  rT  rU  rV  rW  rX  rY  rZ  rE  rB  r�  rŒ  r¦  Ú__static_attributes__rU  rL  rJ  r   r      s.	  † ñGðP €DØ
#€CØ˜$Ð€GØ˜'Ð"€IØ!Ð"€IØ€Mà�L‰L˜2Ÿ9™9Ñ$€Eð �TˆNØ�TˆNð
ð  §¡Ð0à §¡Ð0à §¡Ð0à §¡Ð0à% w§¡Ð7à# W§_¡_Ð5à" G§O¡OÐ4à# W§_¡_Ð5ð!
ð& # DÐ)ð
ð " 6§:¡:Ð.ð -¨f¯j©jÐ9ð%
ð+ð �\‰\ðð$à�\‰\ðð
 " 6§>¡>Ð2ð"
ð& ˜Ÿ™Ð$ð ˜Ÿ™Ð$ð ˜FŸJ™JÐ'ð
%
ð )¨&¯-©-Ð8Ø(¨&¯-©-Ð8ð
ð �hÐà�XÐà�HÐà�HÐà�HÐà�HÐà�HÐà�HÐà�hÐà�HÐð)
ð0 �hÐØ�hÐà�HÐà˜Ð!à�HÐà�8Ðà�8Ðà�8Ðà�8Ðð#
ð* �kÐ"à�KÐ à�KÐ à�KÐ à�[Ð!à�KÐ à�kÐ"ð 
ð$   Ð-à�;Ðà�KÐ ð!
ð ˜'Ÿ.™.Ð)à! 7×#4Ñ#4Ð5à˜W×.Ñ.Ð/ð
ð ˜7Ÿ?™?Ð+à˜wŸ™Ð/ð	
ñ �LÓ!Ù�MÓ"Ù�IÓÙ�JÓÙ�MÓ"ÙÐ.Ó/ÙÐ.Ó/ÙÐ+Ó,ÙÐ%Ó&ÙÐ)Ó*ÙÐ'Ó(ÙÐ*Ó+ÙÐ(Ó)ð
ña_€FðHÐð€OðÐðÐð%Ð!ðÐð&Ð"ðÐð%Ð!ðÐð&Ð"ð6Ðð
'Ð#ð!Ðð(Ð$ð4Ðð'Ð#ð!Ðð(Ð$ð'Ð#ð!Ðð(Ð$ð%Ð!ðÐð&Ð"ð$Ð ðÐð%Ð!ð%Ð!ðÐð&Ð"ð%Ð!ð
#Ðð#Ðð"Ðð
$Ð ð%Ð!ð
#Ðð
#Ðð
"Ðð
$Ð ð
$Ð ð*Ð&ð'Ð#ð%Ð!ð%Ð!ð$Ð ð
&Ð"ð€Hð
ð
 "ð
ð
 "ð
ð
 $ð
ð
 $ð
ð
 "ð
ð
 "ð
ð
 "ð
ð
 "ð
ñE%ÐðV "Ø)Ø)Ø+ð	
ð "Ø)ð
ð "Ø)ð
ð "Ø+ð
ð "Ø+Ø+ð
ð "Ø)Ø+ð
ð "Ø)Ø)ð
ð "Ø)Ø(ð
ð "Ø)Ø)ð
ñq=ÐðF Ø#Ø#Ø%ð	
ð Ø#ð
ð Ø#ð
ð Ø%ð
ð Ø%Ø%ð
ð Ø#Ø%ð
ð Ø#Ø#ð
ð Ø#Ø"ð
ð Ø#Ø#ð
ñq=€KðF #Ø*Ø*Ø,ð	
ð #Ø*ð
ð #Ø*ð
ð #Ø,ð
ð #Ø,Ø,ð
ð #Ø*Ø,ð
ð #Ø*Ø*ð
ð #Ø*Ø)ð
ð #Ø*Ø*ð
ñq=ÐðD
ð
ð

ð )ð
ð )ð
ð

ð

ð

ð

ñS,€Nðb
ð
 *ð
ð *ð
ð /Ø+Ø(ð
ð /Ø+ð
ð *ð
ð *ð
ð *ð
ð *ð
ñY/Ððh
ð
 (ð
ð (ð
ð *ð
ð *ð
ð (ð
ð (ð
ð (ð
ð (ð
ñS,€Oðb
ð
 (ð
ð (ð
ð *ð
ð *ð
ð (ð
ð (ð
ð (ð
ð (ð
ñS,Ððb
ð
 'ð
ð 'ð
ð )ð
ð )ð
ð 'ð
ð 'ð
ð 'ð
ð 'ð
ñS,Ððb
ð
 )ð
ð )ð
ð +ð
ð +ð
ð )ð
ð )ð
ð )ð
ð )ð
ñS,Ðòb#-òLR'òL-ò`l&õ\rL  )r¬  r£  Úpygments.lexerr   r   Úpygments.utilr   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   Ú__all__r   rU  rL  rJ  Ú<module>rï     s<   ðñó 
ç .ß 4÷'÷ 'õ 'ð Ð
€ôU�:õ UrL  