o al@sdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZddlmZgdZGdddeZGd d d eZGd d d eZGd ddeZGdddeZGdddeZGdddeZdS)z pygments.lexers.basic ~~~~~~~~~~~~~~~~~~~~~ Lexers for BASIC like languages (other than VB.net). :copyright: Copyright 2006-2021 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@seZdZdZdZddgZdgZdgZdZdZ d Z d Z d e e e e fZ e d Z ejejBZd efdeeefdejfdejfdejdfdejfdejfdejfdejfdejfdeefde fde!j"fdej#fde ee$j%ee e!j&fde e fee$j%ee$j'fe ee!j(ee$j)eee ee$j)e!j&ee$j)ee fe ee!j*ee$j)eee ee$j)e!j&ee$j) fde ee$j%ee!j&fde$j)fd e$j+fd!e$j,fe-d"d#d#d$e!j.fe-d%d#d#d$e$j%fd&e e!j*fgd'ejfd(ejd)fd*ejfgd+Z/d,S)-rzY For `BlitzMax `_ source code. .. versionadded:: 1.4 BlitzMaxblitzmaxbmaxz*.bmxz text/x-bmxz\b(Shl|Shr|Sar|Mod)\bz @{1,2}|[!#$%]z&\b(Int|Byte|Short|Float|Double|Long)\b [a-z_]\w*zp(%s)(?:(?:([ \t]*)(%s)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)|([ \t]*)(:)([ \t]*)(?:%s|(%s)))(?:([ \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]+)(%s\.%s)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[^"]+rootrN)0__name__ __module__ __qualname____doc__namealiases filenames mimetypes bmax_vopwords bmax_sktypes bmax_lktypes bmax_namebmax_var bmax_funcre MULTILINE IGNORECASEflagsrrrrSingle MultilinerDoubler FloatIntegerHexBinr r r LabelPreprocr ReservedClass NamespacerLrNVariableConstant Declarationr Exceptiontokensrr7/usr/lib/python3/dist-packages/pygments/lexers/basic.pyrs          =  rc@seZdZdZdZgdZddgZdgZdZdZ d e ee fZ e j e j BZd efd ejfd ejd fdejfdejfdejfdejfdejfeddddefdefdefde ejfde eej eej!fde eej eejfde eeeeeej!fde eej"eej#eeeej!ee fde eej eej"eej#eeeej! fde eej eej!fdej$fd ej%fed!dddej fe eej&eej#eeeej!fgd"ejfd#ejd$fd%ejfgd&Z'd'S)(rz[ For `BlitzBasic `_ source code. .. versionadded:: 2.0 BlitzBasic) blitzbasicb3dbplusz*.bbz*.declsz text/x-bbz @{1,2}|[#$%]z[a-z]\w*z3(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))?rz;.*?\nrrr \.[0-9]+(?!\.)r!r"r#)ShlShrSarModOrAndNotr>r=HandleIntrStrFirstLastBeforeAfterr)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)#r1r2r4r9r:r;rArCInsertrHrLrNrUrVrWrXrYrZr[r\r]Eachr_r`rbrcrdrerfrgrnGosubDataReadRestorerrrsrt[^"\n]+ruN)(rwrxryrzr{r|r}r~ bb_sktypesbb_namebb_varrrrrrrrrrr rrrrrr r r rrr rrrLrNrrrrrrrrrrs      5  rc @seZdZdZdZdgZdgZdgZdZdZ dZ dZ d Z d Z d ZejZgd efd efdejdfdejfdejdfdejdfdejfdejfdejfdejfdejfde ejfdejfde j!fde j"fde j"j#fde j$fd e%ej&ee j&efd!ejfd"e%ej'edfd#e%ejed$fd%e%ejed&fd'ejfd(ejfd)ejfd*e(fd+e)fd,e)j*fd-e(fd.e e j$fd.e e j+fd.ee j,fd/e e j+fd0e(d$fd efd1e(dfd2e(d3fgd4e e j&fd.e ejfd.e e j-fd5e%e(eejee(fd6ed3fd7e(d8fd9e(d3fd:ed3fe.d3g d.e e j$fd.ee j,fd;eejfd efd0e(d$fdej/fdejd3fgd?ejd8fd@ejd3fd:ejfdAejfgdBZ0dCS)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[?%#$]rz'.*z (?i)^#rem\bcommentz6(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\bz^# variablesrrr 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\)rtz%s\.z(\[)(\s*)(\d*)(\s*)(\])z\s+(?!<)\nz%s,z[^"~]+z~q|~n|~r|~t|~z|~~z (?i)^#rem.*?z (?i)^#end.*?z.+)rvrrrrrN)1rwrxryrzr{r|r}r~ name_variable name_function name_constant name_class name_module keyword_typekeyword_type_specialrrrrrrrrrr rrrrr rNrr rBuiltinPseudorrrrr r WordrLrrrEscaperrrrrrs       ! # %(/1345 7 8 9 <           rc @seZdZdZdZdgZdgZejZ dde j fde fde jfd e jfd ejfd efd ejfd efdejfdefdefg iZddZdS)rz> For CBM BASIC V2 sources. .. versionadded:: 1.6 z CBM BASIC V2cbmbas*.basrvzrem.*\nrznew|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+[$%]?cCstd|rdSdS)Nz^\d+g?)rmatchtextrrr analyse_textbs zCbmBasicV2Lexer.analyse_textN)rwrxryrzr{r|r}rrrrrrr rrr rr rrr rr rrrrrrrCs2 rc@sTeZdZdZdZddgZddgZdgZdZd Z d Z d Z d Z d Z defdejfdeejejejejfdeejejejfdejjfdejfdejfdeejejejfdeejejejejefdeejejejejejjfdeejejejjfdeejejjejefdeejejejfdeejejejfededededed ed!d"ejjfd#ejfd$ejfd%ejfd&ej j!fd&ej fd'efd(e"fd)ejjfgd*d+#e$e%j&eejfgd*d+#e$e%j&e ejfgd*d+#e$e%j&e ej'fgd*d+#e$e%j&e ej(fgd,d+#e$e%j&e ejfgd,d+#e efgd-Z)d.d/Z*d0S)1rzm 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 #IOCTLKEYrPKILLrLINEz LINE INPUTz LINE INPUT #LOCATELOCKUNLOCKLPRINTLSETrMKDIRNAMEzON COMzON ERRORzON KEYzON PENzON PLAYzON STRIGzON TIMERz ON UEVENTONOPENzOPEN COMz OPTION BASEOUTPAINTPALETTEPCOPYrrPOKEPRESETPRINTzPRINT #z PRINT USINGPSETPUTrd RANDOMIZEREADREDIMREMRESETRESTORERESUMERETURNRMDIRRSETRUNr r z SELECT CASESHAREDSHELLSLEEPSOUNDSTATICSTOPrSUBSWAPSYSTEMrrTROFFTRONTYPEUEVENTrUVIEWWAITWHILEWENDWIDTHWINDOWWRITE)#ACCESSALIASANYAPPENDASBASEBINARYBYVALCASECDECLDOUBLEELSEELSEIFENDIFINTEGERISLISTLOCALLONGr=MODrGOFFrZOUTPUTRANDOMSIGNALSINGLESTEPSTRINGrMTOUNTILUSINGrz\n+rz^(\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)rvrrrrrrcCsd|vsd|vr dSdS)Nrr?rrrrrrszQBasicLexer.analyse_textN)+rwrxryrzr{r|r}r~rrrrrrrrrr rrrrGlobalrrr rrr rr rrLongr joinmaprescaperrrrrrrrris      / Grc@seZdZdZdZdgZddgZejZ de j fde fde jd fd ejfd ejfd ejfd ejfdejfde fdeeje ejdfdeeje ejfdeeje ejfdeeje ejfdeee efdeee ee ee ejfdeee ee ee efdeee efdeeje eje ejfde j feejddefeeje feej!dde j"feej#ddejfeej$ddej%feej&ddej%fdefde fede'fd e(fgd!ee e'e ejfe)d"gd#e jfd$e jfde jd"fd%e(d"fgd&Z*d'S)(rzd VBScript is scripting language that is modeled on Visual Basic. .. versionadded:: 2.4 VBScriptvbscriptz*.vbsz*.VBSz'[^\n]*rrrz &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))r,z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)rtrz\"\"r)rvrrN)+rwrxryrzr{r|r}rrrrrrrrr rrrrr rr rrLrrPropertyrrKEYWORDS OPERATORSr OPERATOR_WORDSrBUILTIN_CONSTANTSBUILTIN_FUNCTIONSrBUILTIN_VARIABLESr rrrrrrrrs~    )  rc@sBeZdZdZgdZgdZdZdgZdgZde j fde e j ejfed gd e e jejfd ed fd efdejfde e jee je jfde e e jfde e ee j fde jfde j feee feee fdejdfdejfdejfdejfdejfdejfdejfde jfde fgdejfdejdfd e!d fgd Z"d!d"Z#d#S)$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 OTHERWISErDIVEORrr#rBrRrrrrrrMOPENINPTRPAGETIMELOMEMHIMEMrACSADVALrASNrBGETrCOUNTDEGrrEVALrEXTFALSEFNrIINKEYrrrLNrr"OPENUPOPENOUTPIrrRADrr rrrrTRUEUSRrVPOSrzGET$rrrrrrrrrrrrrsBPUTr(r*r-r.CLGr/rr:r;r>r?ENDPROCENVELOPErFrJrKGCOLrLrNrrMODEMOVErGrZVDUPLOTrbPROCrfrhREPEATREPORTrjrlroruCOLOURTRACErrOSCLI)/WHENOFENDCASErENDWHILErr,FILLORIGINr RECTANGLErwrr~MOUSEQUITSYSINSTALLLIBRARYTINTELLIPSEBEATSTEMPOVOICESVOICESTEREOOVERLAYrAUTOCRUNCHDELETEEDITHELPrLOADLVARNEWOLDRENUMBERSAVETEXTLOADTEXTSAVETWINTWINOrSUMBEATz BBC Basicbbcbasicz*.bbcr!z (\*)([^\n]*)codez (REM)([^\n]*)rrvrrz%(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)rrz %[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([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)rrt)rvr rcCs|ds |dr dSdS)Nz10REM >zREM >r) startswithrrrrrszBBCBasicLexer.analyse_textN)$rwrxryrz base_keywordsbasic5_keywordsr{r|r}r rrr rrSpecialrrrrrrLrrrrr rrrrrr rrrrrrrr:s`        $  2r)rzrpygments.lexerrrrrrpygments.tokenrrr r r r r rrrpygments.lexersr__all__rrrrrrrrrrrs 0 [O&B