a
    lcl                     @   s   d Z ddlZddlmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZ ddlmZ g dZG dd deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZdS )z
    pygments.lexers.basic
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for BASIC like languages (other than VB.net).

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerbygroupsdefaultwordsinclude)
CommentErrorKeywordNameNumberPunctuationOperatorStringText
Whitespace)_vbscript_builtins)BlitzBasicLexerBlitzMaxLexerMonkeyLexerCbmBasicV2LexerQBasicLexerVBScriptLexerBBCBasicLexerc                   @   s  e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
d
ZdZdee
eef Zed ZejejB Zdefdeeefdejfdejfdejdfdejfdejfdejfdejfdejfde	 e fde!fde"j#fdej$fde ee%j&ee!e"j'fdeef ee%j&ee%j(feee"j)ee%j*e ee!ee%j*e"j'ee%j*ee!feee"j+ee%j*e ee!ee%j*e"j'ee%j*fde ee%j&ee"j'fd e%j*fd!e%j,fd"e%j-fe.d#d$d$d%e"j/fe.d&d$d$d%e%j&fd'e e"j+fgd(ejfd)ejd*fd+ejfgd,Z0d-S ).r   z>
    For BlitzMax source code.

    .. versionadded:: 1.4
    BlitzMaxhttp://blitzbasic.comblitzmaxbmaxz*.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)ZTNullMethodExceptionZTNullFunctionExceptionZTNullObjectExceptionZTArrayBoundsExceptionZTRuntimeException\bprefixsuffix)EZStrictZSuperStrictModule
ModuleInfoEndReturnContinueExitZPublicZPrivateZVarZVarPtrChrLenAscZSizeOfSgnAbsZMinZMaxNewZReleaseDeleteZIncbinZ	IncbinPtrZ	IncbinLenZ	FrameworkIncludeImportZExternZ	EndExternFunctionZEndFunctionTypeZEndTypeZExtendsZMethodZ	EndMethodZAbstractFinalIfThenElseElseIfEndIfForToNextStepZEachInWhileWendZEndWhileRepeatUntilForeverSelectCaseDefaultZ	EndSelectTryZCatchZEndTryZThrowAssertGotoZDefDataZReadDataZRestoreDataz(%s)"""C?#popz[^"]+rootr    N)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesZbmax_vopwordsZbmax_sktypesZbmax_lktypesZ	bmax_nameZbmax_varZ	bmax_funcre	MULTILINE
IGNORECASEflagsr   r   r   r   Single	Multiliner   Doubler   FloatIntegerHexBinr   r   r
   LabelPreprocr	   ReservedClass	Namespacer8   r9   VariableConstantDeclarationr   	Exceptiontokens rr   rr   Q/var/www/html/django/DPS/env/lib/python3.9/site-packages/pygments/lexers/basic.pyr      s   




=
r   c                   @   s  e Zd ZdZdZdZg dZddgZdgZdZ	d	Z
d
e
e	e
f ZejejB Zdefdejfdejdfdejfdejfdejfdejfdejfeddddefdefdefde
 ejfde
 ee j!eej"fde
 ee j!eejfde
 eeeeeej"fde eej#ee j$eeeej"ee	fde ee j!eej#ee j$eeeej"	fde
 ee j!eej"fd e j%fd!e j&fed"ddde j!feeej'ee j$eeeej"fgd#ejfd$ejd%fd&ejfgd'Z(d(S ))r   z@
    For BlitzBasic source code.

    .. versionadded:: 2.0
    
BlitzBasicr   )
blitzbasicb3dbplusz*.bbz*.declsz	text/x-bbz@{1,2}|[#$%]z[a-z]\w*z3(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))?r   z;.*?\nr   r    r!   \.[0-9]+(?!\.)r"   r#   r$   )ZShlZShrZSarModOrAndNotr3   r2   HandleZIntrd   StrZFirstZLastZBeforeZAfterr%   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)#r+   r,   r.   r/   r0   r1   r4   r5   ZInsertr6   r8   r9   r;   r<   r=   r>   r?   r@   rA   rB   rC   EachrD   rE   rF   rG   rH   rI   rJ   rK   rN   ZGosubZDataZReadZRestorerO   rP   rQ   [^"\n]+rR   N))rT   rU   rV   rW   rX   rY   rZ   r[   r\   Z
bb_sktypesZbb_nameZbb_varr]   r^   r_   r`   r   r   ra   r   rc   r   rd   re   rf   rg   r   r   r   r
   rh   r   r	   rj   rk   r8   r9   rn   ro   rm   rq   rr   rr   rr   rs   r   s   s   


	
5
r   c                !   @   s  e Zd ZdZdZdgZdgZdgZdZdZ	dZ
dZd	Zd
ZdZejZdefdefdejdfdejfdejdfdejdfdejfdejfdejfdejfdejfde ejfdejfde j!fde j"fde j"j#fde j$fd e%ej&ee j&efd!ejfd"e%ej'edfd#e%ejed$fd%e%ejed&fd'ejfd(ejfd)ejfd*e(fd+e)fd,e)j*fd-e(fd.e
 e j$fd.e	 e j+fd.e e j,fg d/e	 e j+fd0e(d$fdefd1e(dfd2e(d3fgd4e e j&fd.e ejfd.e e j-fd5e%e(eejee(fd6ed3fd7e(d8fd9e(d3fd:ed3fe.d3g	d.e
 e j$fd.e e j,fd;e ejfdefd0e(d$fd<e(d8fe.d3gd=ejfd>ej/fdejd3fgd?ejd8fd@ejd3fd:ejfdAejfgdBZ0dCS )Dr   z
    For
    `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_
    source code.

    .. versionadded:: 1.6
    Monkeymonkeyz*.monkeyztext/x-monkeyr   z[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\bcommentz6(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\bz^#	variablesr   r    r!   rx   r"   z\$[0-9a-fA-Z]+r$   z\b%s\bz(?i)\b(?:Try|Catch|Throw)\bZ	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\)rQ   z%s\.z(\[)(\s*)(\d*)(\s*)(\])z\s+(?!<)<z#push>\nz%s,z[^"~]+z~q|~n|~r|~t|~z|~~z(?i)^#rem.*?z(?i)^#end.*?z.+)rS   r   r   r   r    r   N)1rT   rU   rV   rW   rX   rZ   r[   r\   Zname_variableZname_functionZname_constantZ
name_classZname_moduleZkeyword_typeZkeyword_type_specialr]   r^   r`   r   r   rb   ri   r   rc   r   rd   re   rf   rg   r	   r9   rj   r
   rp   BuiltinPseudorn   r   rl   ro   r   r   Wordr8   rm   rk   r   Escaperq   rr   rr   rr   rs   r      s   



<



r   c                   @   s   e Zd ZdZdZdgZdgZejZ	dde
jfdefdejfd	ejfd
ejfdefdejfdefdejfdefdefgiZdd ZdS )r   z>
    For CBM BASIC V2 sources.

    .. versionadded:: 1.6
    zCBM BASIC V2cbmbas*.basrS   zrem.*\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#?zdata|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+[$%]?c                 C   s   t d| rdS d S )Nz^\d+g?)r]   matchtextrr   rr   rs   analyse_textd  s    zCbmBasicV2Lexer.analyse_textN)rT   rU   rV   rW   rX   rZ   r[   r]   r_   r`   r   ra   r   r	   rj   ro   r
   r   r   r   r   r   rd   r   rq   r   rr   rr   rr   rs   r   E  s0   r   c                   @   sT  e Zd ZdZdZddgZddgZdgZdZd	Z	d
Z
dZdZdZdefdejfdeejejejejfdeejejejfdejjfdejfdejfdeejejejfdeejejejejefdeejejejejejjfdeejejejjfdeejejjejefdeejejejfdeejejejfededededed ed!d"ejjfd#ejfd$ejfd%ejfd&ej j!fd&ej fd'efd(e"fd)ejjfgd*d+#e$e%j&e ejfgd*d+#e$e%j&e	 ejfgd*d+#e$e%j&e
 ej'fgd*d+#e$e%j&e ej(fgd,d+#e$e%j&e ejfgd,d+#e efgd-Z)d.d/ Z*d0S )1r   zm
    For
    `QBasic <http://en.wikipedia.org/wiki/QBasic>`_
    source code.

    .. versionadded:: 2.0
    QBasicqbasicbasicz*.BASr   z
text/basic)DATALET)UABSASCATNZCDBLCHR$ZCINTZCLNGzCOMMAND$COSZCSNGZCSRLINZCVDZCVDMBFZCVIZCVLCVSZCVSMBFDATE$zENVIRON$EOFZERDEVzERDEV$ERLERREXPZFILEATTRZFIXZFREZFREEFILEzHEX$INKEY$ZINPzINPUT$INSTRINTzIOCTL$ZLBOUNDzLCASE$LEFT$LENZLOCZLOFLOGZLPOSzLTRIM$MID$zMKD$zMKDMBF$zMKI$zMKL$zMKS$zMKSMBF$zOCT$ZPEEKPENPLAYZPMAPPOINTPOSRIGHT$RNDzRTRIM$ZSADDSCREENSEEKZSETMEMSGNSINzSPACE$SPCSQRZSTICKSTR$STRIGSTRING$TABTANTIME$TIMERZUBOUNDzUCASE$VALZVARPTRzVARPTR$ZVARSEG)$DYNAMICz$INCLUDE$STATIC)ANDZEQVZIMPNOTORZXOR)ZBEEPZBLOADZBSAVECALLzCALL ABSOLUTEzCALL INTERRUPTZCALLSCHAINZCHDIRCIRCLECLEARCLOSECLSZCOLORZCOMZCOMMONZCONSTr   r   ZDECLAREzDEF FNzDEF SEGZDEFDBLZDEFINTZDEFLNGZDEFSNGZDEFSTRDEFDIMZDOLOOPDRAWENDZENVIRONZERASEERRORZEXITZFIELDZFILESFORNEXTZFUNCTIONGETGOSUBGOTOIFTHENINPUTzINPUT #ZIOCTLKEYr   ZKILLr   LINEz
LINE INPUTzLINE INPUT #ZLOCATEZLOCKUNLOCKZLPRINTZLSETr   ZMKDIRNAMEzON COMzON ERRORzON KEYzON PENzON PLAYzON STRIGzON TIMERz	ON UEVENTONZOPENzOPEN COMzOPTION BASEZOUTZPAINTZPALETTEZPCOPYr   r   ZPOKEZPRESETPRINTzPRINT #zPRINT USINGZPSETPUTr   Z	RANDOMIZEREADZREDIMREMRESETRESTORERESUMERETURNZRMDIRZRSETRUNr   r   zSELECT CASEZSHAREDSHELLZSLEEPSOUNDZSTATICSTOPr   ZSUBSWAPZSYSTEMr   r   ZTROFFZTRONZTYPEZUEVENTr   ZVIEWWAITWHILEWENDWIDTHZWINDOWWRITE)#ZACCESSZALIASANYAPPENDZASZBASEBINARYZBYVALCASEZCDECLDOUBLEELSEZELSEIFENDIFZINTEGERZISLISTLOCALLONGr   MODr   OFFr   ZOUTPUTZRANDOMZSIGNALZSINGLESTEPSTRINGr   TOUNTILZUSINGr   z\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
statementskeywordsz[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)rS   r  r  r  r  r  r  c                 C   s   d| v sd| v rdS d S )Nr   r   ?rr   r   rr   rr   rs   r     s    zQBasicLexer.analyse_textN)+rT   rU   rV   rW   rX   rZ   r[   r\   r  r  r  r  r  r  r   r   r   r
   rh   r   ra   rm   Globalr   rc   r	   rj   ro   r   r   r   rd   re   Longr   joinmapr]   escapern   r   rq   r   rr   rr   rr   rs   r   k  s   





/Gr   c                   @   s  e Zd ZdZdZdgZddgZejZ	de
jfdefdejd	fd
ejfdejfdejfdejfdejfdefdeejeejdfdeejeejfdeejeejfdeejeejfdeeeefdeeeeeeeejfdeeeeeeeefdeeeefdeejeejeejfde
jfeejddefeeje feej!dde j"feej#ddejfeej$ddej%feej&ddej%fdefde fede'fd e(fgd!eee'eejfe)d"gd#ejfd$ejfdejd"fd%e(d"fgd&Z*d'S )(r   zd
    VBScript is scripting language that is modeled on Visual Basic.

    .. versionadded:: 2.4
    VBScriptvbscriptz*.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%   )r(   z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)rQ   r   z\"\"r   )rS   r  r    N)+rT   rU   rV   rW   rX   rZ   r[   r]   r_   r`   r   ra   r   r   rc   r   rf   rd   re   r   r	   ro   r
   rm   r8   rk   rn   Propertyr   r   KEYWORDSZ	OPERATORSr   ZOPERATOR_WORDSr   ZBUILTIN_CONSTANTSZBUILTIN_FUNCTIONSr   ZBUILTIN_VARIABLESr   r   r   rq   rr   rr   rr   rs   r     s|   


)
r   c                   @   sB  e Zd ZdZg dZg dZdZdgZdgZde	j
fdeejejfed	gd
eejejfdedfdefdejfdeejeeje	jfdeee	jfdeeee	j
fdejfdejfeeefeeefdejdfdejfdejfdejfdejfdejfdejfde	jfde fgdejfdejdfde!dfgd Z"d!d" Z#d#S )$r   z
    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
    )wZ	OTHERWISEr   ZDIVZEORr   r   r   r   r   r   r   r   r   r   ZOPENINPTRPAGETIMELOMEMHIMEMr   ZACSZADVALr   ZASNr   ZBGETr   ZCOUNTZDEGr   r   ZEVALr   ZEXTFALSEZFNr   ZINKEYr   r   r   LNr   r   ZOPENUPZOPENOUTZPIr   r   ZRADr   r   r   r   r   r   TRUEZUSRr   ZVPOSr   zGET$r   r   r   r   r   r   r   r  r  r  r  r  r   ZBPUTr   r   r   r   ZCLGr   r   r   r   r   r   ZENDPROCZENVELOPEr   r   r   ZGCOLr   r   r   r   ZMODEZMOVEr   r   ZVDUZPLOTr   ZPROCr   r   REPEATZREPORTr   r   r   r   ZCOLOURTRACEr   r   ZOSCLI)/ZWHENZOFZENDCASEr   ZENDWHILEr   r   ZFILLZORIGINr   Z	RECTANGLEr   r   r   ZMOUSEZQUITZSYSINSTALLLIBRARYZTINTZELLIPSEZBEATSZTEMPOZVOICESZVOICEZSTEREOZOVERLAYr   ZAUTOZCRUNCHDELETEZEDITZHELPr   ZLOADZLVARZNEWZOLDZRENUMBERZSAVEZTEXTLOADZTEXTSAVEZTWINZTWINOr  ZSUMZBEATz	BBC Basicbbcbasicz*.bbcr"   z(\*)([^\n]*)codez(REM)([^\n]*)r   rS   r   r   z%(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([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)r   rQ   )rS   r!  r    c                 C   s   |  ds|  drdS d S )Nz10REM >zREM >r  )
startswithr   rr   rr   rs   r     s    zBBCBasicLexer.analyse_textN)$rT   rU   rV   rW   Zbase_keywordsZbasic5_keywordsrX   rZ   r[   r
   rh   r   r	   r   r   Specialr   ro   ra   r   ri   r8   rn   r   r   rc   r   rg   rf   rd   re   rm   r   r   rq   r   rr   rr   rr   rs   r   <  s^   




$
2r   )rW   r]   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   r   Zpygments.lexersr   __all__r   r   r   r   r   r   r   rr   rr   rr   rs   <module>   s   
0\P & B