YBFjSdZddlZddlmZmZddlmZmZddlm Z m Z m Z m Z m Z mZmZmZmZdgZGddeZdS)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) RegexLexerinclude) get_bool_opt get_list_opt) TextCommentOperatorKeywordNameStringNumber PunctuationError Modula2LexerczeZdZdZdZdZddgZddgZdgZd Z e j e j zZ d efd efgd ejfd ejfdejfdejfdejfdejfdejfdejfgdefgdejfdejfgdejfdejfdejfgdejfdejfdejfgdejfdejfgdefd efd!efd"efd#efd$efd%efd&efd'efd(efg d)efd*efd+efd,efd-efd.efd/efd0efd1efg d2efd3efd4efd5efd6efd7efd8efgd9efd:efd;efgdejfgd?ejfd@ejfgedAedBedCedDedEedFedGedHedIedJedKedLedMg dNZ dOZ!dPZ"dQZ#dRZ$dSZ%dTZ&dUZ'dVZ(dWZ)dXZ*dYZ+dZZ,d[Z-d\Z.d]Z/d^Z0d_Z1d`Z2daZ3daZ4dbZ5daZ6dcZ7ddZ8daZ9daZ:daZ;deZdhZ?diZ@djZAdkZBdlZCdmZDdaZEdaZFdaZGdaZHdaZIdnZJdoZKdpZLdqZMdrZNdsZOdtZPduZQdae$fe(fe,fe0fe(fe$fe(fe(fdu ZRe!e%e)e-fe!e%fe!e)fe!e-fe!e-e1fe!e)e4fe!e%e7fe!e)e:fe!e)e=fdu ZSe"e&e*e.fe"e&fe"e*fe"e.fe"e.e2fe"e*e5fe"e&e8fe"e*e;fe"e*e>fdu ZTe#e'e+e/fe#e'fe#e+fe#e/fe#e/e3fe#e+e6fe#e'e9fe#e+e[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 dialecttagspragmascomments identifierssuffixed_number_literalsprefixed_number_literalsplain_number_literalsstring_literalsdigraph_punctuationdigraph_operatorsunigraph_punctuationunigraph_operators)r$r%r(r*r+r)r,r.r0r-r/r'r&root)%ANDARRAYBEGINBYCASECONST DEFINITIONDIVDOELSEELSIFENDEXITFORFROMIFIMPLEMENTATIONIMPORTINLOOPMODMODULENOTOFORPOINTER PROCEDURERECORDREPEATRETURNSETTHENTOTYPEUNTILVARWHILE)ABSBOOLEANCARDINALCHARCHRFALSEINTEGERLONGINTLONGREALMAXMINNILODDORDREALTRUE)ADDRESSBYTEWORDADR)r#rr$%?\r++rr*.+>r!rr |#r")EXPORT QUALIFIEDWITH)BITSETCAPDECDISPOSEEXCLFLOATHALTHIGHINCINCLNEWrbPROCSIZETRUNCVAL)SYSTEMPROCESSTSIZE NEWPROCESSTRANSFER)rrkrlrmrnrrorrrprqr!rr rrr")EXCEPTrsFINALLYFORWARD PACKEDSETrtREMRETRYruABSTRACTASCLASSGUARDINHERITOVERRIDEREADONLYREVEALTRACED UNSAFEGUARDED)rvrwCMPLXCOMPLEXrxryrzr{r|r}IMr~rINT INTERRUPTIBLELENGTHLFLOAT LONGCOMPLEXrr PROTECTIONRErrUNINTERRUBTIBLErCREATEDESTROYEMPTYISMEMBERSELF):r BITSPERLOC LOCSPERBYTE LOCSPERWORDLOCADDADRSUBADRDIFADRMAKEADRrjROTATESHIFTCASTr COROUTINESATTACH COROUTINECURRENTDETACHHANDLERINTERRUPTSOURCE IOTRANSFER IsATTACHEDLISTEN NEWCOROUTINEPROTr EXCEPTIONSAllocateSource CurrentNumberExceptionNumberExceptionSource GetMessageIsCurrentSourceIsExceptionalExecutionRAISE TERMINATION IsTerminating HasHalted M2EXCEPTION M2Exceptions M2Exception IsM2ExceptionindexExceptionrangeExceptioncaseSelectExceptioninvalidLocationfunctionExceptionwholeValueExceptionwholeDivExceptionrealValueExceptionrealDivExceptioncomplexValueExceptioncomplexDivException protException sysException coException exException)r#rrrkrlrr)ALIASARGLIST BLUEPRINTCOPYGENLIB INDETERMINATErNONEOPAQUE REFERENTIALRELEASERETAINASMREG)rYCOUNTrEXISTSINSERTrLONGCARDOCTETPTRPREDREADREADNEWREMOVERETRIEVESORTSTORESUBSETSUCCTLIMITTMAXTMINrfrUNICHARWRITEWRITEF)K TPROPERTIESPROPERTYLITERAL TPROPERTYTLITERALTBUILTINTDYNTREFCTNILTBASE TPRECISIONTMAXEXPTMINEXP CONVERSIONTSXFSIZESXFrUNSAFEr INTRINSICAVAILADDSUBADDCSUBCFETCHADDFETCHSUBSHLSHRASHRROTLROTRROTLCROTRCBWNOTBWANDBWORBWXORBWNANDBWNORSETBITTESTBITLSBITMSBITCSBITSBAILr|TODOFFIADDRVARGLISTVARGCATOMICrrSWAPCASr~rxr#r&r$r%COMPILERDEBUGMODNAMEPROCNAMELINENUMDEFAULTHASH ASSEMBLERREGISTERSETREGGETREGCODE)r#rkrlrr)BYCOPYBYREFrCONTINUECRITICALINOUTMETHODONOPTIONALOUTPRIVATE PROTECTEDPROTOCOLPUBLICSUPERTRY)OBJECTNOYES) BITSET8BITSET16BITSET32 CARDINAL8 CARDINAL16 CARDINAL32INTEGER8 INTEGER16 INTEGER32) r __ATTRIBUTE__ __BUILTIN__ __COLUMN____DATE____FILE__ __FUNCTION____LINE__ __MODULE__VOLATILE)rUrVrWrXrYrZ CARDINAL64 COMPLEX32 COMPLEX64 COMPLEX96 COMPLEX128r[r\r] INTEGER64REAL8REAL16REAL32REAL96REAL128THROW)BCD)SEQ) ASHASSERT DIFFADR_TYPEENTIERINDEXLENr SHORTCARDSHORTINT)rrBOOL8BOOL16BOOL32CARD8CARD16CARD32INT8INT16INT32REFMOVEFILLGETPUTCCintunsignedsize_t voidCOMPILEROPTIONEQUATION)Terminal FileSystemInOut RealInOutMathLib0Storage) FlagFlagSetResponseCommandLock Permission MediumTypeFileFileProc DirectoryProc FileCommandDirectoryCommand)9ReadBusyRead ReadAgainWrite WriteStringWriteLnCreateLookupCloseDeleteRenameSetReadSetWrite SetModifySetOpenDoioSetPosGetPosLengthResetAgainReadWord WriteWordReadChar WriteChar CreateMedium DeleteMedium AssignName DeassignName ReadMedium LookupMedium OpenInput OpenOutput CloseInput CloseOutput ReadStringReadIntReadCardReadWrdWriteInt WriteCardWriteOctWriteHexWriteWrdReadReal WriteReal WriteFixPt WriteRealOctsqrtexplnsincosarctanentierALLOCATE DEALLOCATE)DonetermCHinout)EOL)0rsLONGBCDrv SHORTBITSET LONGBITSETLONGLONGBITSETrrr{ LONGLONGCARDr| LONGLONGINTPOSINT SHORTPOSINT LONGPOSINTLONGLONGPOSINTrUrVrWBITSET64 BITSET128BS8BS16BS32BS64BS128rXrYrZrg CARDINAL128rrrCARD64CARD128r[r\r]rl INTEGER128rrrINT64INT128STRING UNISTRING) ProtoRootProtoComputational ProtoNumeric ProtoScalarProtoNonScalar ProtoCardinal ProtoInteger ProtoReal ProtoComplex ProtoVector ProtoTupleProtoCompArrayProtoCollectionProtoStaticArrayProtoStaticSetProtoStaticString ProtoArray ProtoStringProtoSet ProtoMultiSetProtoDictionaryProtoMultiDictProtoExtensionProtoIO ProtoCardMath ProtoIntMath ProtoRealMath)ASCII BooleanIOCharIO UnicharIOOctetIO CardinalIO LongCardIO IntegerIO LongIntIORealIO LongRealIOBCDIO LongBCDIOCardMath LongCardMathIntMath LongIntMathRealMath LongRealMathBCDMath LongBCDMathFileIOrr IOSupport)rStatus)rrr)stdInstdOutstdErr)pitau) unknownm2pimm2isom2r10objm2z m2iso+agletz m2pim+gm2zm2iso+p1z m2iso+xdsc Zt|dg}|D]*}||jddvr||n+|dd|_t|dg}d|vsd|vrd |_nd|_t |d d |_tj|fi|dS) Ndialectr3Fstylealgolalgol_nuTtreat_stdlib_adts_as_builtins) rdialects set_dialectdialect_set_by_tagalgol_publication_moderr?r__init__)selfoptionsr@dialect_optionstyless EC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/modula2.pyrDzModula2Lexer.__init__s B77& ( (Nqt!444  0005   Y ' ' '"'gw33 f   f 4 4*.D ' '*/D '.: 4d.<.<* D,,G,,,,,c||jvrd}n|}t}|j|D]$}|t|%t}|j|D]$}|t|%t}|j|D]7}|t||8t}|j|D]7}|t||8t}|j|D]7}|t||8t} |j |D]7}| t||8t} |j |D]7}| t||8t} |j |D]7}| t||8t} |j |D]7}| t||8t} |j |D]7}| t||8||_||_||_||_||_||_| |_| |_| |_| |_| |_dS)Nr3)r@setlexemes_to_reject_dbupdatereserved_words_db builtins_db differencepseudo_builtins_dbstdlib_adts_dbstdlib_modules_dbstdlib_types_dbstdlib_procedures_dbstdlib_variables_dbstdlib_constants_dbr9lexemes_to_rejectreserved_wordsbuiltinspseudo_builtinsadtsmodulestypes procedures variables constants)rE dialect_idr9lexemes_to_reject_setlist reswords_set builtins_setpseudo_builtins_setadts_set modules_set types_setprocedures_set variables_set constants_sets rIrAzModula2Lexer.set_dialectsi T] * *GG G!$-g6 4 4D ! ( (T 3 3 3 3uu *73 + +D   D * * * *uu $W- D DD   D 4 4\ B B C C C C"ee+G4 K KD  & &s4yy';';L'I'I J J J J55'0 @ @D OOCII00>> ? ? ? ?ee *73 C CD   s4yy33LAA B B B BEE (1 A AD   SYY11,?? @ @ @ @-g6 F FD  ! !#d))"6"6|"D"D E E E E ,W5 E ED  T!5!5l!C!C D D D D ,W5 E ED  T!5!5l!C!C D D D D !6*$ 2 "  (&&rJc`d}d}t|}t|}|}| }t|||zkrp||r[||rF|||}tdt|jD]} ||j| kr|cSdSdS)Nz(*!*)r:r3)len startswithendswithranger@) rE dialect_tagleft_tag_delimright_tag_delimleft_tag_delim_lenright_tag_delim_lenindicator_start indicator_end indicatorindexs rIget_dialect_from_dialect_tagz)Modula2Lexer.get_dialect_from_dialect_tag|s  00!/22,-.  {  14GG H H%%n55 I##O44 I$OM$ABI q#dm"4"455 ! !  e 444 %$$$ 5!y9rJc#Ktj||D]6\}}}|jsG|tjkr7||}|dkr||d|_|turZ||jvr)tj }|j r| }n||j vr)tj}|j r| }nl||jvr.tjj}|j r| }n5||jvrC|jstj}ntjj}|j r| }n||jvrtj}n||jvrtj}n||jvrtj}n||jvrtj}n||jvr tj}nv|t:vrw|jdvrd|vs |dddvrt>}nK|jdvrK|t:j ur t>}n+|t:j!ur d |vr t>}n|t:j"ur d |vrt>}n|tvr|tj#ur|jdvrt>}|tj$ur}|%d r"|j%d rt>}n|%d r1|jdkr&|j%d s tj&}nC||j'vrt>}|j r,|dkrd}n#|dkrd}n|dkrd}n|dkrd}n|dkrd}|||fV8dS)Nr3T)r3r6r7'r)0b0x0u)r6r7HEz<*r4z(*$#u≠ru≤ru≥ru≡rpu•)(rget_tokens_unprocessedrBrSpecialr~rAr rZr ReservedrClowerr[Builtinr\Pseudor]r? Namespacer^r_Classr`FunctionraVariablerbConstantr r9rOctHexFloatSinglePreprocrr MultilinerY)rEtextr}tokenvalueindicated_dialects rIrz#Modula2Lexer.get_tokens_unprocesseds#-#DT4#P#Pk &k & E5%* 3u/G/G$($E$Ee$L$L!$ 11$$%6777.2D+}}D///#,E2. % dm++ LE2. % d222 L/E2. % di''=2 $ $ 362$)KKMMEdl** NEEdj(( JEEdo-- MEEdn,, MEEdn,, ME&<'DDDe||uQqSz5G'G'G %\%777 ** %&*,, %&,..3%<< %'!!GN**|+HHH %GO++''--2|..w772 %))%002 LI55 $ 7 7 @ @6 ' 1 D222!E. &|| %$ %$ %$ %$ %% % % % %Wk &k &rJcd|vrd|vrd|vsdSd}tjd|r|dz }tjd|rd }|S) zNIt's Pascal-like, but does not use FUNCTION -- uses PROCEDURE instead.z(*rprNrz \bPROCEDURE\bg333333?z \bFUNCTION\bg)research)rresults rI analyse_textzModula2Lexer.analyse_textse  $$,, F 9%t , ,  cMF 9_d + + F rJN)a__name__ __module__ __qualname____doc__nameurlaliases filenames mimetypes version_addedr MULTILINEDOTALLflagsrrrr r BinrrIntegerrr Doublerr rrrrtokenscommon_reserved_wordscommon_builtinscommon_pseudo_builtinspim_lexemes_to_rejectpim_additional_reserved_wordspim_additional_builtinspim_additional_pseudo_builtinsiso_lexemes_to_rejectiso_additional_reserved_wordsiso_additional_builtinsiso_additional_pseudo_builtinsm2r10_lexemes_to_rejectm2r10_additional_reserved_wordsm2r10_additional_builtins m2r10_additional_pseudo_builtinsobjm2_lexemes_to_rejectobjm2_additional_reserved_wordsobjm2_additional_builtins objm2_additional_pseudo_builtinsaglet_additional_reserved_wordsaglet_additional_builtins aglet_additional_pseudo_builtinsgm2_additional_reserved_wordsgm2_additional_builtinsgm2_additional_pseudo_builtinsp1_additional_reserved_wordsp1_additional_builtinsp1_additional_pseudo_builtinsxds_additional_reserved_wordsxds_additional_builtinsxds_additional_pseudo_builtinspim_stdlib_module_identifierspim_stdlib_type_identifierspim_stdlib_proc_identifierspim_stdlib_var_identifierspim_stdlib_const_identifiersiso_stdlib_module_identifiersiso_stdlib_type_identifiersiso_stdlib_proc_identifiersiso_stdlib_var_identifiersiso_stdlib_const_identifiersm2r10_stdlib_adt_identifiers"m2r10_stdlib_blueprint_identifiersm2r10_stdlib_module_identifiersm2r10_stdlib_type_identifiersm2r10_stdlib_proc_identifiersm2r10_stdlib_var_identifiersm2r10_stdlib_const_identifiersr@rMrOrPrRrSrTrUrVrWrXrDrAr~rrrTrJrIrrs GGP D #C$G'"I!"IM L29 $ETN TN  0  0  0  0 %w 7 #W_ 5 "GO 4 #W_ 5! &#D ) "6: .-fj 9 % +\  $ \  "6> 2" & $ $FJ ' % )&- 8 (&- 8 h  X  H  H  H  H  H  H  h  H ) 0h  h  H   ! H  8  8  8  8 # *k " K K K [ ! K k " $  - ;  K ! '. ) !7#4 5 W. /  7? + w /   GL ! ! GM " " GI   GJ   GM " " G. / / G. / / G+ , , G% & & G) * * G' ( ( G* + + G( ) ) a__FHO %! &" %!&"6 '#!($4 '#!($'# !($%!&"$  %!%!&"%! # #" $ %! # # " $  $ *&'#%! %! $ &"H " " $ $ " " " " E%%V " ) ) +   " )  " )  " +  " + +  " ) +  " ) )  " ) (  " ) ) q==F  # # %    #   #   %   % %   # %   # #   # "   # # q==KF # * * ,   # *  # *  # ,  # , ,  # * ,  # * *  # * )  # * * q==D   ) )     S,,Nb * * / + (  / +  * * * * Y//h ( ( * * ( ( ( ( S,,Ob ( ( * * ( ( ( ( S,,b ' ' ) ) ' ' ' ' S,,b ) ) + + ) ) ) ) S,,b#-#-#-LR'R'R'L---`l&l&l&\rJ)rrpygments.lexerrr pygments.utilrrpygments.tokenrrr r r r r rr__all__rrTrJrIrs ........44444444''''''''''''''''''''''  UUUUU:UUUUUrJ