HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pygments/lexers/__pycache__/basic.cpython-311.pyc
�

�E�cm��6�dZddlZddlmZmZmZmZmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZddlmZgd�ZGd�de��ZGd	�d
e��ZGd�de��ZGd
�de��ZGd�de��ZGd�de��ZGd�de��ZdS)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 ��eZdZdZdZdZddgZdgZdgZdZ	d	Z
d
ZdZde�d
e
�de�de�d�	Z
e
dzZejejzZdefdeee��fdejfdejfdejdfdejfdejfdejfdejfdejfde	ze fde!fde"j#fd ej$fd!ezee%j&ee!e"j'��fd"e�d#e�d$�ee%j&ee%j(��feee"j)ee%j*e ee!ee%j*e"j'ee%j*ee!�
�
fe
ee"j+ee%j*e ee!ee%j*e"j'ee%j*��fd%ezee%j&ee"j'��fd&e%j*fd'e%j,fd(e%j-fe.d)d*d*�+��e"j/fe.d,d*d*�+��e%j&fd-eze"j+fgd.ejfd/ejd0fd1ejfgd2�Z0d3S)4rz>
    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*�(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)�TNullMethodException�TNullFunctionException�TNullObjectException�TArrayBoundsException�TRuntimeException�\b��prefix�suffix)E�Strict�SuperStrict�Module�
ModuleInfo�End�Return�Continue�Exit�Public�Private�Var�VarPtr�Chr�Len�Asc�SizeOf�Sgn�Abs�Min�Max�New�Release�Delete�Incbin�	IncbinPtr�	IncbinLen�	Framework�Include�Import�Extern�	EndExtern�Function�EndFunction�Type�EndType�Extends�Method�	EndMethod�Abstract�Final�If�Then�Else�ElseIf�EndIf�For�To�Next�Step�EachIn�While�Wend�EndWhile�Repeat�Until�Forever�Select�Case�Default�	EndSelect�Try�Catch�EndTry�Throw�Assert�Goto�DefData�ReadData�RestoreDataz(%s)�""�"C?�#popz[^"]+��rootr#N)1�__name__�
__module__�__qualname__�__doc__�name�url�aliases�	filenames�	mimetypes�
bmax_vopwords�bmax_sktypes�bmax_lktypes�	bmax_name�bmax_var�	bmax_func�re�	MULTILINE�
IGNORECASE�flagsrrrr�Single�	Multiliner�Doubler�Float�Integer�Hex�Binrr
r�Label�Preprocr
�Reserved�Class�	NamespacerQrS�Variable�Constant�Declarationr�	Exception�tokens���7/usr/lib/python3/dist-packages/pygments/lexers/basic.pyrrs���������D�
!�C��6�"�G��	�I���I�,�M�#�L�<�L��I�I�
���L�L�L�,�,�,�	�	�	�;�H��7�7�I��L�2�=�(�E��Z� �
�H�H�T�:�6�6�7�
���'�
:�G�<M�N�
�&�-��*�
$�f�l�3�
���-�
���'�
�V�Z�(�
���$�
I���&�
(�
�[�)�
�t�z�*�
���0�
+�y�
9�
�X�g�&�
�K���
L�
L�
N�
N��i�i����$�
�X�g�&�
�G�4E�
F�
F�
H������
�G�L�!)�:�{�J�!(��t�z�:�!(��z�;�H�H�
I��x�x��
�z�7�<�� *�K��W�\� $�
�J���F�F�
G�-�	�
:�
�X�g�&�
�D�J�
?�
?�
A��7�<�(�
3�W�5E�F�
.��0C�D�
�U�%�.3�5�B�B�B�DH�>�
S��U��(-�U�<�<�<��
�
��	�
"�D�M�2�u;
�z�F�M�"�
�V�]�F�+�
�v�}�%�
�{B�B�F�F�Fr�rc�`�eZdZdZdZdZgd�ZddgZdgZdZ	d	Z
d
e
�de	�de
�d
�Zej
ejzZdefdejfdejdfdejfdejfdejfdejfdejfeddd���efdefdefde
zejfde
zee j!eej"��fde
zee j!eej��fde
zeeeeeej"��fd ezeej#ee j$eeeej"ee�	�	fd!ezee j!eej#ee j$eeeej"�	�	fd"e
zee j!eej"��fd#e j%fd$e j&fed%dd���e j!feeej'ee j$eeeej"��fgd&ejfd'ejd(fd)ejfgd*�Z(d+S),rz@
    For BlitzBasic source code.

    .. versionadded:: 2.0
    �
BlitzBasicr)�
blitzbasic�b3d�bplusz*.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')�Shl�Shr�Sar�Mod�Or�And�NotrCrB�Handle�Intr��Str�First�Last�Before�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)#r6r7r9r>r?r@rFrH�InsertrMrQrSrZr[r\r]r^r_r`rarb�Eachrdrergrhrirjrkrlrs�Gosub�Data�Read�Restorerwrxry�[^"\n]+rzN))r|r}r~rr�r�r�r�r��
bb_sktypes�bb_name�bb_varr�r�r�r�rrr�rr�rr�r�r�r�rrr
rr�rr
r�r�rQrSr�r�r�r�r�r�r�rrss����������D�
!�C�,�,�,�G���#�I��
�I� �J��G�G��g�g�z�z�z�7�7�7�,�F�
�L�2�=�(�E��Z� �
���'�
�&�-��*�
$�f�l�3�
���-�
���'�
�V�Z�(�
���$�
�U�8� ��/�/�/��	
�
��)�
�k�*�
��
(�$�*�5�
%��
1�
�X�g�&�
�D�J�
?�
?�
A�
,��
8�
�X�g�&�
�D�J�
?�
?�
A�
7�7�
C�
�X�h�
�K��T�Z�
P�
P�
R�
"�V�
+�
�X�d�m�Z���z�;� �$�*�j�+�G�G�
H�)�6�
1�
�X�g�&�
�D�M�:�w�|� �+�z�4�:�G�G�
H�%��
0�
�X�g�&�
�D�J�
?�
?�
A�)�'�*:�;�
2�G�4G�H�
�U�<�
EJ�RW�Y�Y�Y��
�

��X�X�d�m�Z���(�+�z�4�:�O�O�
P�c3
�j�F�M�"�
�V�]�F�+�
���'�
�k:�:�F�F�Fr�rc
��eZdZdZdZdgZdgZdgZdZdZ	dZ
dZd	Zd
Z
dZejZgdef�d
ef�dejdf�dejf�dejdf�dejdf�dejf�dejf�dejf�dejf�dejf�de
zejf�dejf�de j!f�de j"f�de j"j#f�de j$f�d e%ej&ee j&e��f�d!ejf�d"e%ej'e��df�d#e%eje��d$f�d%e%eje��d&f�d'ejf�d(ejf�d)ejf�d*e(f�d+e)f�d,e)j*f�d-e(f�d.e
ze j$f�d.e	ze j+f�d.eze j,f�d/e	ze j+fd0e(d$fdefd1e(dfd2e(d3fgd4eze j&fd.e
zejfd.eze j-fd5e%e(eejee(��fd6ed3fd7e(d8fd9e(d3fd:ed3fe.d3��g	d.e
ze j$fd.eze j,fd;ezejfdefd0e(d$fd<e(d8fe.d3��gd=ejfd>ej/fdejd3fgd?ejd8fd@ejd3fd:ejfdAejfgdB�Z0dCS)Drz�
    For
    `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_
    source code.

    .. versionadded:: 1.6
    �Monkey�monkeyz*.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\b�commentz6(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\bz^#�	variablesr"r#r$r�r%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+(?!<)�<z#push�>�\nz%s�,z[^"~]+z~q|~n|~r|~t|~z|~~z(?i)^#rem.*?z(?i)^#end.*?z.+)r{r�r�r�r#r�N)1r|r}r~rr�r�r�r��
name_variable�
name_function�
name_constant�
name_class�name_module�keyword_type�keyword_type_specialr�r�r�rrr�r�rr�rr�r�r�r�r
rSr�rr��Builtin�Pseudor�rr�r�r
r�WordrQr�r�r�Escaper�r�r�r�rr�s����������D��j�G���I� �!�I� �M��M�'�M��J��K�A�L�$���L�E�:
�
�Z� �:
��W��	:
�
�W�.�	�:�:
�G���X�:
��G�O�[�1�:
��&�-��*�:
�%�f�l�3�:
����-�:
����'�:
� ��
�+�!:
�"���$�#:
�&��
%�w�|�4�':
�*,�W�-=�>�+:
�,�4�>�*�-:
�0,�T�\�:�1:
�2'���(;�<�3:
�40���?�5:
�8+�
�X�g�'��T�^�Z�
P�
P�
R�9:
�<"�7�#3�4�=:
�>4�
�X�g�)�:�
6�
6��
E�?:
�BB�
�X�g�&�
�
3�
3�[�
B�C:
�F+�
�X�g�&�
�
3�
3�Z�
A�G:
�J"�#*�#3�
5�K:
�P%�
'.�&6�
8�Q:
�^*�7�+;�<�_:
�b��$�c:
�f?��I�g:
�h/��
�>�i:
�j�[�)�k:
�n�}�
$�d�m�4�o:
�p�}�
$�d�m�4�q:
�r�}�
$�d�m�4�s:
�x�=�
(�$�-�8�
�;��,�
�Z� �
�K��-�
�K��(�
��{�
"�D�N�3�
�|�
#�W�\�2�
�z�
!�4�:�.�
'�
�X�k�:�v�~�z�;�
W�
W�
Y��*�f�-�
�;��(�
�;��'�
�J��'��G�F�O�O�

��}�
$�d�m�4�
�}�
$�d�m�4�
�)�
)�7�<�8�
�Z� �
�;��,�
�;��(��G�F�O�O�
���
�&�
!�6�=�1�
�6�=�&�)�
��g�/��9�
�g�/��8�
�G�%�&�
�G�%�&�	
�e�e�F�F�Fr�rc
��eZdZdZdZdgZdgZejZ	dde
jfdefde
jfd	e
jfd
ejfdefdejfd
efdejfdefdefgiZd�ZdS)rz>
    For CBM BASIC V2 sources.

    .. versionadded:: 1.6
    zCBM BASIC V2�cbmbas�*.basr{zrem.*\nr!z�new|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+[$%]?c�4�tjd|��rdSdS)Nz^\d+g�������?)r��match��texts r��analyse_textzCbmBasicV2Lexer.analyse_textds'���8�G�T�"�"�	��3�	�	r�N)r|r}r~rr�r�r�r�r�r�rr�rr
r�r�rr�rr�rrr�r
r�r�r�r�r�rrEs���������
�D��j�G��	�I��M�E�	�
���(�
�Z� �/�07�0@�
B�,�W�-@�A�=�>B�l�
L�
�H�%�
�H�M�*�
�6�"�
-�v�|�<�
��%�
�$��
��F�&����r�rc��eZdZdZdZddgZddgZdgZdZd	Z	d
Z
dZdZd
Z
defdejfdeejejejej��fdeejejej��fdejjfdejfdejfdeejejej��fdeejejejeje��fdeejejejejejj��fdeejejejj��fdeejejjeje��fdeejejej��fdeejejej��fed��ed��ed��ed��ed ��ed!��d"ejjfd#ejfd$ejfd%ejfd&ej j!fd&ej fd'efd(e"fd)ejjfgd*d+�#e$e%j&e����zejfgd*d+�#e$e%j&e	����zejfgd*d+�#e$e%j&e
����zej'fgd*d+�#e$e%j&e����zej(fgd,d+�#e$e%j&e����zejfgd,d+�#e
��zefgd-�Z)d.�Z*d/S)0rzm
    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�ATN�CDBL�CHR$�CINT�CLNGzCOMMAND$�COS�CSNG�CSRLIN�CVD�CVDMBF�CVI�CVL�CVS�CVSMBF�DATE$zENVIRON$�EOF�ERDEVzERDEV$�ERL�ERR�EXP�FILEATTR�FIX�FRE�FREEFILEzHEX$�INKEY$�INPzINPUT$�INSTR�INTzIOCTL$�LBOUNDzLCASE$�LEFT$�LEN�LOC�LOF�LOG�LPOSzLTRIM$�MID$zMKD$zMKDMBF$zMKI$zMKL$zMKS$zMKSMBF$zOCT$�PEEK�PEN�PLAY�PMAP�POINT�POS�RIGHT$�RNDzRTRIM$�SADD�SCREEN�SEEK�SETMEM�SGN�SINzSPACE$�SPC�SQR�STICK�STR$�STRIG�STRING$�TAB�TAN�TIME$�TIMER�UBOUNDzUCASE$�VAL�VARPTRzVARPTR$�VARSEG)�$DYNAMICz$INCLUDE�$STATIC)�AND�EQV�IMP�NOT�OR�XOR)��BEEP�BLOAD�BSAVE�CALLz
CALL ABSOLUTEzCALL INTERRUPT�CALLS�CHAIN�CHDIR�CIRCLE�CLEAR�CLOSE�CLS�COLOR�COM�COMMON�CONSTr�r��DECLAREzDEF FNzDEF SEG�DEFDBL�DEFINT�DEFLNG�DEFSNG�DEFSTR�DEF�DIM�DO�LOOP�DRAW�END�ENVIRON�ERASE�ERROR�EXIT�FIELD�FILES�FOR�NEXT�FUNCTION�GET�GOSUB�GOTO�IF�THEN�INPUTzINPUT #�IOCTL�KEYr\�KILLr��LINEz
LINE INPUTzLINE INPUT #�LOCATE�LOCK�UNLOCK�LPRINT�LSETr�MKDIR�NAMEzON COMzON ERRORzON KEYzON PENzON PLAYzON STRIGzON TIMERz	ON UEVENT�ON�OPENzOPEN COMzOPTION BASE�OUT�PAINT�PALETTE�PCOPYrr�POKE�PRESET�PRINTzPRINT #zPRINT USING�PSET�PUTrp�	RANDOMIZE�READ�REDIM�REM�RESET�RESTORE�RESUME�RETURN�RMDIR�RSET�RUNrrzSELECT CASE�SHARED�SHELL�SLEEP�SOUND�STATIC�STOPr�SUB�SWAP�SYSTEMr#r$�TROFF�TRON�TYPE�UEVENTra�VIEW�WAIT�WHILE�WEND�WIDTH�WINDOW�WRITE)#�ACCESS�ALIAS�ANY�APPEND�AS�BASE�BINARY�BYVAL�CASE�CDECL�DOUBLE�ELSE�ELSEIF�ENDIF�INTEGER�IS�LIST�LOCAL�LONGrI�MODrS�OFFrf�OUTPUT�RANDOM�SIGNAL�SINGLE�STEP�STRINGrY�TO�UNTIL�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)r{r�r�r�r�r�r�c��d|vsd|vrdSdS)Nr)r*��������?r�r�s r�r�zQBasicLexer.analyse_text�s$�������d�!2�!2��3�"3�!2r�N)+r|r}r~rr�r�r�r�r�r�r�r�r�r�rrrrr�rr�r��Globalrr�r
r�r�rrrr�r��Longr
�join�mapr��escaper�r�r�r�r�r�r�rrks����������D���!�G��'�"�I���I�"�L��I� 7�L�9�I��J�.�H��T�N�
�T�_�%�
)�
�X�d�o�t�z�4�?��n�&�&�
'�!�
�X�d�o�t�z�4�?�
C�
C�
E�
(�$�-�*>�?�
���/�
�6�=�)�
2�
�X�g�&����9I�
J�
J�
L�
0�
�X�g�)�4�?�D�M��o�t�-�-�
.�1�
�X�g�)�4�?�D�M��o�t�}�';�=�=�
>�$�
�X�g�)�4�?�D�M�<P�
Q�
Q�
S�
+�
�X�d�o�t�}�';�T�_�� � �
!�*�
�X�g�&�����
D�
D�
F�
"�
�X�g�&�����
D�
D�
F��G�N�#�#��G�K� � ��G�N�#�#��G�K� � ��G�L�!�!��G�J���
#�T�]�%9�:�
��
�+�
!�6�<�0�
�V�\�*�
�&�.�-�.�
�&�.�)�
7��B�
�k�*�
�t�}�+�,�U+
�^ �#�(�(�3�3�r�y�,�+G�+G�"H�"H�
H�
�
 �
"�
�
 �#�(�(�3�3�r�y�)�+D�+D�"E�"E�
E�
�
�
�
�
 �#�(�(�3�3�r�y�,�+G�+G�"H�"H�
H�
�
�
�
�
 �#�(�(�3�3�r�y�)�+D�+D�"E�"E�
E�x�}�U�
��3�8�8�C�C��	�:�$>�$>�?�?�
?�
�
�
�
�
�3�8�8�H�-�-�
-�w�7�
�EE�E�F�N����r�rc��eZdZdZdZdgZddgZejZ	de
jfdefde
jd	fd
ejfdejfdejfd
ejfdejfde
fdeejeej��dfdeejeej��fdeejeej��fdeejeej��fdeeee��fdeeeeeeeej��fdeeeeeeee��fdeeee��fdeejeejeej��fde
jfeejd���efeej��e feej!d���e j"feej#d���ejfeej$d���ej%feej&d���ej%fdefde fed��e'fd e(fgd!eee'eej��fe)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
    �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.)r1z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)ryr�z\"\"r�)r{r�r#N)+r|r}r~rr�r�r�r�r�r�rr�rrr�rr�r�r�rr
r�rr�rQr�r��Propertyrr�KEYWORDS�	OPERATORSr�OPERATOR_WORDSr��BUILTIN_CONSTANTS�BUILTIN_FUNCTIONSr��BUILTIN_VARIABLESr
r	rr�r�r�r�rr�s���������
�D��l�G��'�"�I��M�E����(�
�Z� �
�&�-��*�
�F�J�'�
-�v�|�<�
'���6�
"�F�L�1�
���'�
�V��
,�
�X�g�)�:�t�}�
E�
E�z�
S�
5�
�X�g�)�:�t�}�
E�
E�
G�
.�
�X�g�)�:�t�z�
B�
B�
D�
.�
�X�g�)�:�t�}�
E�
E�
G�
?�
�X�g�z�7�
3�
3�
5�
3�
�X�g�z�7�J���U[�Uc�
d�
d�
f�
8�
�X�g�z�7�J���U\�
]�
]�
_�
'���'�:�w�)O�)O�P�
C�
�X�g�)�:�w�7J�J�X\�Xe�
f�
f�
h�
�w�~�.�
�U�%�.�u�
=�
=�
=�w�G�
�U�%�/�
0�
0�(�;�
�U�%�4�U�
C�
C�
C�X�]�S�
�U�%�7��
F�
F�
F��
�V�
�U�%�7��
F�
F�
F���U�
�U�%�7��
F�
F�
F���U�
 �$�'�
�x� �
�U�8�_�_�k�*�
���M'
�R/�
�X�j�+�z�4�=�
I�
I�
K��G�F�O�O�
����'�
�f�m�$�
�6�=�&�)�
�E�6�"�	
�]4�4�F�F�Fr�rc�j�eZdZdZgd�Zgd�ZdZdgZdgZde	j
fdeej
ej��fed	��gd
eejej��fdedfd
efdejfdeejeeje	j��fdeee	j��fdeeee	j
��fdejfdej
fee��efee��efdejdfdejfdejfdejfdejfdejfdejfde	jfde fgdejfdejdfde!dfgd �Z"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�	OTHERWISEr+�DIV�EORr�r/rNr^r�r�rr!r�rY�OPENIN�PTR�PAGE�TIME�LOMEM�HIMEMr��ACS�ADVALr��ASNr��BGETr��COUNT�DEGr�r��EVALr��EXT�FALSE�FNrU�INKEYrrr�LNr
r.�OPENUP�OPENOUT�PIrr�RADrrrrr"r��TRUE�USRr&�VPOSr�zGET$rrrrrr r�r�r�r�r�r�r�BPUTr4r6r9r:�CLGr;r�rFrGrJrK�ENDPROC�ENVELOPErRrVrW�GCOLrXrZr�r��MODE�MOVErSrf�VDU�PLOTrn�PROCrrrt�REPEAT�REPORTrvrxr{r��COLOUR�TRACEr�r��OSCLI)/�WHEN�OF�ENDCASEr��ENDWHILEr�r8�FILL�ORIGINr�	RECTANGLEr�r�r��MOUSE�QUIT�SYS�INSTALL�LIBRARY�TINT�ELLIPSE�BEATS�TEMPO�VOICES�VOICE�STEREO�OVERLAYr��AUTO�CRUNCH�DELETE�EDIT�HELPr��LOAD�LVAR�NEW�OLD�RENUMBER�SAVE�TEXTLOAD�TEXTSAVE�TWIN�TWINOr��SUM�BEATz	BBC Basic�bbcbasicz*.bbcr%z(\*)([^\n]*)�codez
(REM)([^\n]*)r�r{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�ry)r{rr#c�^�|�d��s|�d��rdSdS)Nz10REM >zREM >r�)�
startswithr�s r�r�zBBCBasicLexer.analyse_text�s8���?�?�9�%�%�	�����)A�)A�	��3�	�	r�N)$r|r}r~r�
base_keywords�basic5_keywordsr�r�r�rr�rr
r�r�Specialrr�r�rr�rQr�rrr�rr�r�r�r�r�rr	r�r�r�r�r�rr<s��������9�9�9�M�$B�B�B�O��D��l�G��	�I���
�#�
�
�X�g�n�g�o�
6�
6�
8��G�F�O�O�	
��
�X�g�)�7�>�
:�
:�
<�
�J��'�
�Z� �
�7�?�#�6�
�X�g�)�:��)�4�=�:�:�
;�,�
�X�g�t�}�
-�
-�
/�4�
�X�g�z�4�:�
6�
6�
8��g�.�/�
N�
�^�
��U�=�
!�
!�7�+�
�U�?�
#�
#�W�-�
�&�-��*�
�F�J�'�
�v�z�*�
2�F�L�A�
,�f�l�;�
'���6�
�&�.�)�
'���7�
A�8�L�G$
�L���'�
�6�=�&�)�
�E�6�"�
�[2�2�F�h����r�r)rr��pygments.lexerrrrrr�pygments.tokenrr	r
rrr
rrrr�pygments.lexersr�__all__rrrrrrrr�r�r��<module>r#s?����
�	�	�	�H�H�H�H�H�H�H�H�H�H�H�H�H�H�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�.�.�.�.�.�.�<�<�<��Y�Y�Y�Y�Y�J�Y�Y�Y�xM�M�M�M�M�j�M�M�M�`�����*����D#�#�#�#�#�j�#�#�#�LL�L�L�L�L�*�L�L�L�^?�?�?�?�?�J�?�?�?�D]�]�]�]�]�J�]�]�]�]�]r�