|em dZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZddlmZgdZGddeZGd d eZGd d eZGd deZGddeZGddeZGddeZy)z pygments.lexers.basic ~~~~~~~~~~~~~~~~~~~~~ Lexers for BASIC like languages (other than VB.net). :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) RegexLexerbygroupsdefaultwordsinclude) CommentErrorKeywordNameNumber PunctuationOperatorStringText Whitespace)_vbscript_builtins)BlitzBasicLexer BlitzMaxLexer MonkeyLexerCbmBasicV2Lexer QBasicLexer VBScriptLexer BBCBasicLexerc eZdZdZdZdZddgZdgZdgZdZ d Z d Z d Z d e d e de de d Z e dzZej ej"zZdefdeeefdej.fdej0fdej4dfdej8fdej8fdej:fdej<fdej>fde ze fde!fde"jFfd ejHfd!e zee%jLee!e"jNfd"e d#e d$ee%jLee%jPfeee"jRee%jTe ee!ee%jTe"jNee%jTee! fe ee"jVee%jTe ee!ee%jTe"jNee%jT fd%e zee%jLee"jNfd&e%jTfd'e%jXfd(e%jZfe.d)d*d*+e"j^fe.d,d*d*+e%jLfd-e ze"jVfgd.ej4fd/ej4d0fd1ej4fgd2Z0y3)4rz> For BlitzMax source code. .. versionadded:: 1.4 BlitzMaxhttp://blitzbasic.comblitzmaxbmaxz*.bmxz text/x-bmxz\b(Shl|Shr|Sar|Mod)\bz @{1,2}|[!#$%]z&\b(Int|Byte|Short|Float|Double|Long)\b [a-z_]\w*(z)(?:(?:([ \t]*)(z?)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)|([ \t]*)(:)([ \t]*)(?:z|(z)))(?:([ \t]*)(Ptr))?)z?((?:[ \t]|\.\.\n)*)([(])\s+z (\.\.)(\n)z'.*?\nz*([ \t]*)\bRem\n(\n|.)*?\s*\bEnd([ \t]*)Rem"string[0-9]+\.[0-9]*(?!\.)z\.[0-9]*(?!\.)[0-9]+ \$[0-9a-f]+\%[10]+z9(?:(?:(:)?([ \t]*)(:?%s|([+\-*/&|~]))|Or|And|Not|[=<>^]))z [(),.:\[\]]z (?:#[\w \t]*)z(?:\?[\w \t]*)z\b(New)\b([ \t]?)([(]?)(%s)z$\b(Import|Framework|Module)([ \t]+)(z\.)z\b(Type|Extends)([ \t]+)(%s)z \b(Ptr)\bz#\b(Pi|True|False|Null|Self|Super)\bz\b(Local|Global|Const|Field)\b)TNullMethodExceptionTNullFunctionExceptionTNullObjectExceptionTArrayBoundsExceptionTRuntimeException\bprefixsuffix)EStrict SuperStrictModule ModuleInfoEndReturnContinueExitPublicPrivateVarVarPtrChrLenAscSizeOfSgnAbsMinMaxNewReleaseDeleteIncbin IncbinPtr IncbinLen FrameworkIncludeImportExtern EndExternFunction EndFunctionTypeEndTypeExtendsMethod EndMethodAbstractFinalIfThenElseElseIfEndIfForToNextStepEachInWhileWendEndWhileRepeatUntilForeverSelectCaseDefault EndSelectTryCatchEndTryThrowAssertGotoDefDataReadData RestoreDataz(%s)"""C?#popz[^"]+rootr#N)1__name__ __module__ __qualname____doc__nameurlaliases filenames mimetypes bmax_vopwords bmax_sktypes bmax_lktypes bmax_namebmax_var bmax_funcre MULTILINE IGNORECASEflagsrrrrSingle MultilinerDoubler FloatIntegerHexBinrr r LabelPreprocr ReservedClass NamespacerQrSVariableConstant Declarationr Exceptiontokens7/usr/lib/python3/dist-packages/pygments/lexers/basic.pyrrs D !C6"G II,M#L> S (-U <    "DMM 2u; zFMM " V]]F + v}} % {BFrrcreZdZdZdZdZgdZddgZdgZdZ d Z d e d e d e d Z e je jzZdefdej$fdej(dfdej,fdej,fdej.fdej0fdej2fedddefdefdefde zej<fde zee jBeejDfde zee jBeej<fde zeeeeeejDfd e zeejFee jHeeeejDee fd!e zee jBeejFee jHeeeejD fd"e zee jBeejDfd#e jJfd$e jLfed%dde jBfe eejNee jHeeeejDfgd&ej(fd'ej(d(fd)ej(fgd*Z(y+),rz@ For BlitzBasic source code. .. versionadded:: 2.0 BlitzBasicr) blitzbasicb3dbplusz*.bbz*.declsz text/x-bbz @{1,2}|[#$%]z[a-z]\w*r z )(?:([ \t]*)(z)|([ \t]*)([.])([ \t]*)(?:(z)))?r!z;.*?\nr"r#r$\.[0-9]+(?!\.)r%r&r')ShlShrSarModOrAndNotrCrBHandleIntrStrFirstLastBeforeAfterr.r/z([+\-*/~=<>^])z [(),:\[\]\\]z\.([ \t]*)(%s)z\b(New)\b([ \t]+)(%s)z\b(Gosub|Goto)\b([ \t]+)(%s)z'\b(Object)\b([ \t]*)([.])([ \t]*)(%s)\bz\b%s\b([ \t]*)(\()z\b(Function)\b([ \t]+)%sz\b(Type)([ \t]+)(%s)z\b(Pi|True|False|Null)\bz"\b(Local|Global|Const|Field|Dim)\b)#r6r7r9r>r?r@rFrHInsertrMrQrSrZr[r\r]r^r_r`rarbEachrdrergrhrirjrkrlrsGosubDataReadRestorerwrxry[^"\n]+rzN))r|r}r~rrrrrr bb_sktypesbb_namebb_varrrrrrrrrrr rrrrrrr r rrr rrrQrSrrrrrrrrrss D !C,G#I I JGz7,F LL2== (EZ  ' &-- * $fll 3  -  ' VZZ (  $ 8 /    ) k *  ($** 5 % 1 g&& DJJ ? A , 8 g&& DJJ ? A 77 C h KTZZ P R "V + dmmZz; $**j+G H)6 1 g&& DMM:w|| +z4::G H% 0 g&& DJJ ? A)'*:*: ; 2G4G4G H < EJRW Y     XdmmZ(+z4::O Pc3 jFMM " V]]F +  ' k:Frrc JeZdZdZdZdgZdgZdgZdZdZ dZ dZ d Z d Z d Zej Zgd efd efdej(dfdej*fdej*dfdej.dfdej2fdej2fdej4fdej6fdej8fde zej<fdej>fde jBfde jDfde jDjFfde jHfd e%ejLee jLefd!ej>fd"e%ejNedfd#e%ej>ed$fd%e%ej>ed&fd'ej>fd(ej>fd)ej>fd*e(fd+e)fd,e)jTfd-e(fd.e ze jHfd.e ze jVfd.eze jXfd/e ze jVfd0e(d$fd efd1e(dfd2e(d3fgd4e ze jLfd.e zej<fd.e ze jZfd5e%e(eej4ee(fd6ed3fd7e(d8fd9e(d3fd:ed3fe.d3g d.e ze jHfd.eze jXfd;ezej<fd efd0e(d$fdej^fdej.d3fgd?ej(d8fd@ej(d3fd:ej(fdAej(fgdBZ0yC)Drz For `Monkey `_ source code. .. versionadded:: 1.6 Monkeymonkeyz*.monkeyz text/x-monkeyrz[A-Z]\w*z[A-Z_][A-Z0-9_]*z [a-z0-9_]*z+(?:Int|Float|String|Bool|Object|Array|Void)z[?%#$]r!z'.*z (?i)^#rem\bcommentz6(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\bz^# variablesr"r#r$rr%z\$[0-9a-fA-Z]+r'z\b%s\bz(?i)\b(?:Try|Catch|Throw)\b Throwablez(?i)\b(?:Null|True|False)\bz(?i)\b(?:Self|Super)\bz\b(?:HOST|LANG|TARGET|CONFIG)\bz(?i)^(Import)(\s+)(.*)(\n)z(?i)^Strict\b.*\nz#(?i)(Const|Local|Global|Field)(\s+)z1(?i)(New|Class|Interface|Extends|Implements)(\s+) classnamez(?i)(Function|Method)(\s+)funcnamezB(?i)(?:End|Return|Public|Private|Extern|Property|Final|Abstract)\bz(?i)(?:If|Then|Else|ElseIf|EndIf|Select|Case|Default|While|Wend|Repeat|Until|Forever|For|To|Until|Step|EachIn|Next|Exit|Continue)(?=\s)z(?i)\b(?:Module|Inline)\bz[\[\]]z.<=|>=|<>|\*=|/=|\+=|-=|&=|~=|\|=|[-&*/^+=<>|~]z(?i)(?:Not|Mod|Shl|Shr|And|Or)z [(){}!#,.:]z%s\bz(?i)%s\b:z\(z\)ryz%s\.z(\[)(\s*)(\d*)(\s*)(\])z\s+(?!<)\nz%s,z[^"~]+z~q|~n|~r|~t|~z|~~z (?i)^#rem.*?z (?i)^#end.*?z.+)r{rrrr#rN)1r|r}r~rrrrr name_variable name_function name_constant name_class name_module keyword_typekeyword_type_specialrrrrrrrrrr rrrrr rSrr rBuiltinPseudorrrrr rWordrQrrrEscaperrrrrrs DjG I !I MM'MJKAL$ LLE: Z : W  : W.. : : G X: GOO[ 1: &-- *: %fll 3:  -:  ':  +!: " $#: & %w|| 4': *,W-=-= >+: ,4>> *-: 0,T\\ :1: 2' (;(; <3: 40 ?5: 8+ g''T^^Z P R9: <"7#3#3 4=: >4 g)): 6  E?: BB g&& 3[ BC: F+ g&& 3Z AG: J"#*#3#3 5K: P% '.&6&6  8Q: ^*7+;+; <_: b $c: f? Ig: h/ >i: j[ )k: n} $dmm 4o: p} $dmm 4q: r} $dmm 4s: x= ($-- 8 ; , Z K - K (  { "DNN 3 | #W\\ 2 z !4:: . ' k:v~~z; W Y*f - ; ( ; ' J ' FO  } $dmm 4 } $dmm 4 ) )7<< 8 Z ; , ; ( FO  & !6== 1 6==& ) g// 9 g// 8 G%% & G%% &  eFrrc eZdZdZdZdgZdgZejZ dde jfde fde jfd e jfd ej"fd efd ej&fd efdej,fdefdefg iZdZy)rz> For CBM BASIC V2 sources. .. versionadded:: 1.6 z CBM BASIC V2cbmbas*.basr{zrem.*\nr!znew|run|end|for|to|next|step|go(to|sub)?|on|return|stop|cont|if|then|input#?|read|wait|load|save|verify|poke|sys|print#?|list|clr|cmd|open|close|get#?zdata|restore|dim|let|def|fnzktab|spc|sgn|int|abs|usr|fre|pos|sqr|rnd|log|exp|cos|sin|tan|atn|peek|len|val|asc|(str|chr|left|right|mid)\$z [-+*/^<>=]z not|and|orz "[^"\n]*.z\d+|[-+]?\d*\.\d*(e[-+]?\d+)?z[(),:;]z\w+[$%]?c2tjd|ryy)Nz^\d+g?)rmatchtexts r analyse_textzCbmBasicV2Lexer.analyse_textds 88GT " #rN)r|r}r~rrrrrrrrrrr rrr rrrrr rr rrrrrrrEs DjG I MME   ( Z /070@0@ B,W-@-@ A=>Bll L H % HMM * 6 " -v|| <  % $  F&rrceZdZdZdZddgZddgZdgZdZd Z d Z d Z d Z d Z defdejfdeejej$ejej(fdeejej$ejfdej*j,fdej(fdej0fdeej4ejej4fdeej6ejej*ejefdeej6ejej*ejej*j,fdeej6ejej*j,fdeejej*j,ejefdeej4ejej$fdeej4ejej$fededededed ed!d"ej*j,fd#ej$fd$ej>fd%ej>fd&ej@jBfd&ej@fd'efd(e"fd)ej*j,fgd*d+jGe$e%jLezej6fgd*d+jGe$e%jLe zej4fgd*d+jGe$e%jLe zejNfgd*d+jGe$e%jLe zejPfgd,d+jGe$e%jLe zej4fgd,d+jGe zefgd-Z)d.Z*y/)0rzm For `QBasic `_ source code. .. versionadded:: 2.0 QBasicqbasicbasicz*.BASrz text/basic)DATALET)UABSASCATNCDBLCHR$CINTCLNGzCOMMAND$COSCSNGCSRLINCVDCVDMBFCVICVLCVSCVSMBFDATE$zENVIRON$EOFERDEVzERDEV$ERLERREXPFILEATTRFIXFREFREEFILEzHEX$INKEY$INPzINPUT$INSTRINTzIOCTL$LBOUNDzLCASE$LEFT$LENLOCLOFLOGLPOSzLTRIM$MID$zMKD$zMKDMBF$zMKI$zMKL$zMKS$zMKSMBF$zOCT$PEEKPENPLAYPMAPPOINTPOSRIGHT$RNDzRTRIM$SADDSCREENSEEKSETMEMSGNSINzSPACE$SPCSQRSTICKSTR$STRIGSTRING$TABTANTIME$TIMERUBOUNDzUCASE$VALVARPTRzVARPTR$VARSEG)$DYNAMICz$INCLUDE$STATIC)ANDEQVIMPNOTORXOR)BEEPBLOADBSAVECALLz CALL ABSOLUTEzCALL INTERRUPTCALLSCHAINCHDIRCIRCLECLEARCLOSECLSCOLORCOMCOMMONCONSTrrDECLAREzDEF FNzDEF SEGDEFDBLDEFINTDEFLNGDEFSNGDEFSTRDEFDIMDOLOOPDRAWENDENVIRONERASEERROREXITFIELDFILESFORNEXTFUNCTIONGETGOSUBGOTOIFTHENINPUTzINPUT #IOCTLKEYr\KILLrLINEz LINE INPUTz LINE INPUT #LOCATELOCKUNLOCKLPRINTLSETr MKDIRNAMEzON COMzON ERRORzON KEYzON PENzON PLAYzON STRIGzON TIMERz ON UEVENTONOPENzOPEN COMz OPTION BASEOUTPAINTPALETTEPCOPYrrPOKEPRESETPRINTzPRINT #z PRINT USINGPSETPUTrp RANDOMIZEREADREDIMREMRESETRESTORERESUMERETURNRMDIRRSETRUNrrz SELECT CASESHAREDSHELLSLEEPSOUNDSTATICSTOPrSUBSWAPSYSTEMr#r$TROFFTRONTYPEUEVENTraVIEWWAITWHILEWENDWIDTHWINDOWWRITE)#ACCESSALIASANYAPPENDASBASEBINARYBYVALCASECDECLDOUBLEELSEELSEIFENDIFINTEGERISLISTLOCALLONGrIMODrSOFFrfOUTPUTRANDOMSIGNALSINGLESTEPSTRINGrYTOUNTILUSINGrz\n+r!z^(\s*)(\d*)(\s*)(REM .*)$z^(\s*)(\d+)(\s*)z(?=[\s]*)(\w+)(?=[\s]*=)z(?=[^"]*)\'.*$z "[^\n"]*"z"(END)(\s+)(FUNCTION|IF|SELECT|SUB)z (DECLARE)(\s+)([A-Z]+)(\s+)(\S+)z (DIM)(\s+)(SHARED)(\s+)([^\s(]+)z(DIM)(\s+)([^\s(]+)z^(\s*)([a-zA-Z_]+)(\s*)(\=)z(GOTO|GOSUB)(\s+)(\w+\:?)z(SUB)(\s+)(\w+\:?) declarations functions metacommands operators statementskeywordsz[a-zA-Z_]\w*[$@#&!]z[a-zA-Z_]\w*\:z\-?\d*\.\d+[@|#]?z \-?\d+[@|#]z\-?\d+#?z'!=|==|:=|\.=|<<|>>|[-~+/\\*%=<>&^|?:!.]z [\[\]{}(),;]z[\w]+z\b(%s)(?=\(|\b)|z\b(%s)\b)r{rrrrrrcd|vsd|vryy)Nr)r*?rrs rrzQBasicLexer.analyse_texts  d!2"3rN)+r|r}r~rrrrrrrrrrrrrrr rrrrGlobalrrr rrrrr rrLongr joinmaprescaperrrrrrrrrks D!G'"II"LI 7L9IJ.HTN T__ % ) dootzz4??nn& '! dootzz4?? C E ($--*>*> ?  / 6== ) 2 g&&9I9I J L 0 g))4??DMMoot- .1 g))4??DMMoot}}';';= >$ g))4??DMM? ?     388H- -w 7 EEFNrrceZdZdZdZdgZddgZejZ de jfde fde jd fd ej fd ej"fd ej"fd ej"fdej$fde fdeej*e ej.dfdeej*e ej0fdeej*e ej2fdeej*e ej4fdeee efdeee ee ee ej$fdeee ee ee efdeee efdeej*e ej*e ej6fde jfeej<defeej>e feejBde jDfeejFdej4feejHdejJfeejLdejJfdefde fede'fd e(fgd!ee e'e ej.fe)d"gd#e jfd$e jfde jd"fd%e(d"fgd&Z*y')(rzd VBScript is scripting language that is modeled on Visual Basic. .. versionadded:: 2.4 VBScriptvbscriptz*.vbsz*.VBSz'[^\n]*r!r"r#z &h[0-9a-f]+z[0-9]+\.[0-9]*(e[+-]?[0-9]+)?z\.[0-9]+(e[+-]?[0-9]+)?z[0-9]+e[+-]?[0-9]+r%z#.+#z(dim)(\s+)([a-z_][a-z0-9_]*)dim_morez%(function|sub)(\s+)([a-z_][a-z0-9_]*)z(class)(\s+)([a-z_][a-z0-9_]*)z(const)(\s+)([a-z_][a-z0-9_]*)z/(end)(\s+)(class|function|if|property|sub|with)z#(on)(\s+)(error)(\s+)(goto)(\s+)(0)z((on)(\s+)(error)(\s+)(resume)(\s+)(next)z(option)(\s+)(explicit)z3(property)(\s+)(get|let|set)(\s+)([a-z_][a-z0-9_]*)z rem\s.*[^\n]*r.)r1z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)ryrz\"\"r)r{rr#N)+r|r}r~rrrrrrrrrrrrr rrrrr rr rrQrrPropertyrrKEYWORDS OPERATORSrOPERATOR_WORDSrBUILTIN_CONSTANTSBUILTIN_FUNCTIONSrBUILTIN_VARIABLESr r rrrrrrrs DlG'"I MME ( Z &-- * FJJ ' -v|| < ' 6 "FLL 1  ' V  , g)):t}} Ez S 5 g)):t}} E G . g)):tzz B D . g)):t}} E G ? gz7 3 5 3 gz7JU[UcUc d f 8 gz7JU\ ] _ '':w)O P C g)):w7J7JJX\XeXe f h w~~ . %..u =w G %// 0( ; %44U CX]] S %77 F V %77 F U %77 F U $ ' x 8_k *  M' R/ j+z4== I K FO  ' fmm $ 6==& ) E6 "  ]4FrrceZdZdZgdZgdZdZdgZdgZde jfde e jejfed gd e e j"ej$fd ed fd efdej(fde e j"ee j"e j*fde e e j*fde e ee jfde j,fde jfeee feee fdej2dfdej6fdej8fdej:fdej:fdej:fdej<fde j>fde fgdej2fdej2dfd e!d fgd Z"d!Z#y")#rz BBC Basic was supplied on the BBC Micro, and later Acorn RISC OS. It is also used by BBC Basic For Windows. .. versionadded:: 2.4 )w OTHERWISEr+DIVEORrr/rNr^rrrr!rrYOPENINPTRPAGETIMELOMEMHIMEMrACSADVALrASNrBGETrCOUNTDEGrrEVALrEXTFALSEFNrUINKEYrrrLNr r.OPENUPOPENOUTPIrrRADrrrrr"rTRUEUSRr&VPOSrzGET$rrr rrr rrrrrrrBPUTr4r6r9r:CLGr;rrFrGrJrKENDPROCENVELOPErRrVrWGCOLrXrZrrMODEMOVErSrfVDUPLOTrnPROCrrrtREPEATREPORTrvrxr{rCOLOURTRACErrOSCLI)/WHENOFENDCASErENDWHILErr8FILLORIGINr RECTANGLErrrMOUSEQUITSYSINSTALLLIBRARYTINTELLIPSEBEATSTEMPOVOICESVOICESTEREOOVERLAYrAUTOCRUNCHDELETEEDITHELPrLOADLVARNEWOLDRENUMBERSAVETEXTLOADTEXTSAVETWINTWINOrSUMBEATz BBC Basicbbcbasicz*.bbcr%z (\*)([^\n]*)codez (REM)([^\n]*)rr{r!rz%(DEF)(\s*)(FN|PROC)([A-Za-z_@][\w@]*)z(FN|PROC)([A-Za-z_@][\w@]*)z#(GOTO|GOSUB|THEN|RESTORE)(\s*)(\d+)z (TRUE|FALSE)z>(PAGE|LOMEM|HIMEM|TIME|WIDTH|ERL|ERR|REPORT\$|POS|VPOS|VOICES)r"r#z %[01]{1,32}z&[0-9a-f]{1,8}z"[+-]?[0-9]+\.[0-9]*(E[+-]?[0-9]+)?z[+-]?\.[0-9]+(E[+-]?[0-9]+)?z[+-]?[0-9]+E[+-]?[0-9]+z[+-]?\d+z([A-Za-z_@][\w@]*[%$]?)z1([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)rry)r{rr#cJ|jds|jdryy)Nz10REM >zREM >r) startswithrs rrzBBCBasicLexer.analyse_texts" ??9 %)A*BrN)$r|r}r~r base_keywordsbasic5_keywordsrrrr rrr rrSpecialrrrrrrQrrrrr rrrrrrr rrrrrrr<s 9M$BO DlG I #  gnngoo 6 8 FO   g))7>> : < J ' Z 7?? #6 g)):))4==: ;, gt}} - /4 gz4:: 6 8g.. / N ^^ = !7 + ? #W - &-- * FJJ ' vzz * 2FLL A ,fll ; ' 6 &.. ) ' 7 A8 LG$ L ' 6==& ) E6 " [2Fhrr)rrpygments.lexerrrrrrpygments.tokenrr r r r r rrrrpygments.lexersr__all__rrrrrrrrrrr#s HH444. <YJYxMjM`*D#j#LL*L^?J?D]J]r