
    MhSG                         d Z ddlZddl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 ddgZ G d de          Z G d de          ZdS )	z
    pygments.lexers.rebol
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the REBOL and related languages.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerbygroups)	TextCommentOperatorKeywordNameStringNumberGeneric
Whitespace
RebolLexerRedLexerc                      e Zd ZdZdZdgZg dZdgZdZdZ	e
j        e
j        z  ZdZd	 Zg d
efdej        dfdej        fdej        dfdej        fdedfdedfdej        f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j        fd ej        fd!ej        fd"efd#ej        fd$ej        fd%ej        fd&ej        fd'ed(fd)ed*fd+ed,fd-efd.ej         fd/efd0ej!        fd1ej!        d2fd3efd4efeej"        fd5efd6ej"        fded7fgd8efeej"        fd5efd6ej"        fded9fd:ed7fgd4ej        feej        fd6ej        fdej        d7fgedz   ej        d7fd;ej        d7fd<ej        d7fgeej!        fdej!        d=fd>ej!        fd?ej!        d7fgd4ej!        feej!        fd5ej!        fd6ej!        fdej!        d7fgd@ej        fdAej        d7fgd
ej        fdBej        fd:ej        d7fgd4efeefd5efd6efded7fgd8efeefd5efd6efded9fd:ed7fgdCed9fdDed7fded(fded*fdEefgdFZ#dG Z$dHS )Ir   z
    A REBOL lexer.
    REBOLrebol)z*.rz*.r3z*.rebztext/x-rebolzhttp://www.rebol.comz1.1(?:\^\([0-9a-f]{1,4}\)*)c              #   H  K   |                                 }t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j
        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r |                                t          |fV  d S t          j        d|          r |                                t          |fV  d S t          j        d	|          r |                                t          |fV  d S t          j        d
|          r%|                                t          j        |fV  d S t          j        d|          r*|                                t          j        j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S |                                t          j        |fV  d S )N.*:$a  (native|alias|all|any|as-string|as-binary|bind|bound\?|case|catch|checksum|comment|debase|dehex|exclude|difference|disarm|either|else|enbase|foreach|remove-each|form|free|get|get-env|if|in|intersect|loop|minimum-of|maximum-of|mold|new-line|new-line\?|not|now|prin|print|reduce|compose|construct|repeat|reverse|save|script\?|set|shift|switch|throw|to-hex|trace|try|type\?|union|unique|unless|unprotect|unset|until|use|value\?|while|compress|decompress|secure|open|close|read|read-io|write-io|write|update|query|wait|input\?|exp|log-10|log-2|log-e|square-root|cosine|sine|tangent|arccosine|arcsine|arctangent|protect|lowercase|uppercase|entab|detab|connected\?|browse|launch|stats|get-modes|set-modes|to-local-file|to-rebol-file|encloak|decloak|create-link|do-browser|bind\?|hide|draw|show|size-text|textinfo|offset-to-caret|caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|crypt-strength\?|dh-make-key|dh-generate-key|dh-compute-key|dsa-make-key|dsa-generate-key|dsa-make-signature|dsa-verify-signature|rsa-make-key|rsa-generate-key|rsa-encrypt)$a4  (add|subtract|multiply|divide|remainder|power|and~|or~|xor~|minimum|maximum|negate|complement|absolute|random|head|tail|next|back|skip|at|pick|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|path|find|select|make|to|copy\*|insert|remove|change|poke|clear|trim|sort|min|max|abs|cp|copy)$a  (error|source|input|license|help|install|echo|Usage|with|func|throw-on-error|function|does|has|context|probe|\?\?|as-pair|mod|modulo|round|repend|about|set-net|append|join|rejoin|reform|remold|charset|array|replace|move|extract|forskip|forall|alter|first+|also|take|for|forever|dispatch|attempt|what-dir|change-dir|clean-path|list-dir|dirize|rename|split-path|delete|make-dir|delete-dir|in-dir|confirm|dump-obj|upgrade|what|build-tag|process-source|build-markup|decode-cgi|read-cgi|write-user|save-user|set-user-name|protect-system|parse-xml|cvs-date|cvs-version|do-boot|get-net-info|desktop|layout|scroll-para|get-face|alert|set-face|uninstall|unfocus|request-dir|center-face|do-events|net-error|decode-url|parse-header|parse-header-date|parse-email-addrs|import-email|send|build-attach-body|resend|show-popup|hide-popup|open-events|find-key-face|do-face|viewtop|confine|find-window|insert-event-func|remove-event-func|inform|dump-pane|dump-face|flag-face|deflag-face|clear-fields|read-net|vbug|path-thru|read-thru|load-thru|do-thru|launch-thru|load-image|request-download|do-face-alt|set-font|set-para|get-style|set-style|make-face|stylize|choose|hilight-text|hilight-all|unlight-text|focus|scroll-drag|clear-face|reset-face|scroll-face|resize-face|load-stock|load-stock-block|notify|request|flash|request-color|request-pass|request-text|request-list|request-date|request-file|dbug|editor|link-relative-path|emailer|parse-error)$zO(halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|return|exit|break)$zREBOL$to-.*z5(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$z.*\?$.*\!$'.*#.*%.*)grouprematchstartr   
Subheadingr	   BuiltinFunctionr   	Namespace	ExceptionHeadingr   TypeVariableInstanceLabel	Decoratorlexerr   words      U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/rebol.pyword_callbackzRebolLexer.word_callback#   s6     {{}}8FD!! P	5++--!3T999999X$ #'$ $ N	5( ++--t333333X
   9	5 ++--444444X%0 '+3, , 1	54 ++--!2D888888X#$(* * 	5 ++--555555Xh%% 	5++--$666666Xgt$$ 	5++--$......XN  	5++--4//////Xh%% 	5++--$......Xh%% 		5++--t333333XeT"" 	5++--!7======XeT"" 	5++--T111111XeT"" 	5++--555555++--444444    \s+#"charz#\{[0-9a-f]*\}2#\{bin264#\{[0-9a-z+/=\s]*\}"string\{string2;#+.*\n;\*+.*\n;.*\n%"
stringFile%[^(^{")\s\[\]]+[+-]?([a-z]{1,3})?\$\d+(\.\d+)?[+-]?\d+\:\d+(\:\d+)?(\.\d+)?zJ\d+[\-/][0-9a-z]+[\-/]\d+(\/\d+\:\d+((\:\d+)?([.\d+]?([+-]?\d+:\d+)?)?)?)?\d+(\.\d+)+\.\d+\d+X\d+#[+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+[+-]?\d+(\'\d+)?[.,]\d*[+-]?\d+(\'\d+)?[\[\]()] [a-z]+[^(^{"\s:)]*://[^(^{"\s)]* mailto:[^(^{"@\s)]+@[^(^{"@\s)]+[^(^{"@\s)]+@[^(^{"@\s)]+
comment\s"commentString1comment\s\{commentString2comment\s\[commentBlockcomment\s[^(\s{"\[]+z/[^(^{")\s/[\]]*z"([^(^{")\s/[\]]+)(?=[:({"\s/\[\]])
<[\w:.-]*><[^(<>\s")]+tag([^(^{")\s]+)[^(^")]+[(|)]+\^.#pop	[^(^{})]+#push\}\^."."	tagString[^(<>\r\n")]+>(\d+\.)+\d+([01]\s*){8}\[\][^(\[\]"{)]+rootr7   r9   r>   r2   rT   r_   tupler4   rL   rN   rP   c                     t          j        d| t           j                  rdS t          j        d| t           j                  rdS dS )zS
        Check if code contains REBOL header and so it probably not R code
        z^\s*REBOL\s*\[g      ?z\s*REBOL\s*\[g      ?N)r   r   
IGNORECASEsearch)texts    r-   analyse_textzRebolLexer.analyse_text   sJ     8%tR];; 	3Y'r}== 	3	 	r/   N)%__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedr   rl   	MULTILINEflags	escape_rer.   r   r
   Charr   Hexr   SpecialPreprocr	   r)   FloatOtherr   Constantr   Strong	AttributeTagEscapetokensro    r/   r-   r   r      s         DiG(((I I
 CMMBL(E+IS5 S5 S5l#
TN#
FK(#
 
+#
 fj&)	#

 &vz2#
 68$#
 FI&#
 )#
 '/*#
 w#
 DNL1#
 !$.1#
 0>#
 .v|<#
./5|=#
" !'"23##
$ )*%#
& 4V\B'#
( (6)#
* !&)+#
, '.)-#
. 1$.A/#
0 1$.A1#
2 *4>:3#
4 G%565#
6 W&677#
8 Wn59#
: %g.;#
< !$.1=#
> 3MB?#
@ DH%A#
B dh.C#
D t$E#
J &!&V]#66"
 6"&V]#FG$FF#
 $.)'T^$4>6*	
 _fk62fk6*FK(
 !48[)tx(48V$	
 $(#!!TX48V$
 '*+W%v.

 VZ fj)FJ'
 '"  W7F#
 7#  WGW%GV$
 GW%GV$7,-G-.g&
Ik kFZ	 	 	 	 	r/   c                      e Zd ZdZdZddgZddgZddgZd	Zd
Z	e
j        e
j        z  ZdZd Zg defdej        dfdej        fdej        dfdej        fd eej        ej        e          fdedfdedfdej        f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j         fd$ej        fd%ej        fd&efd'e!j"        fd(ej        fd)ej        fd*ej        fd+ed,fd-ed.fd/ed0fd1efd2ej#        fd3efd4ej$        fd5ej$        d6fd7efd8efeej%        fd9efd:ej%        fded;fgd<efeej%        fd9efd:ej%        fded=fd>ed;fgd8ej        feej        fd:ej        fdej        d;fgedz   ej        d;fd?ej        d;fd@ej        d;fgeej$        fdej$        dAfdBej$        fdCej$        d;fgd8ej$        feej$        fd9ej$        fd:ej$        fdej$        d;fgdDej         fdEej         d;fgdej        fdFej        fd>ej        d;fgd8efeefd9efd:efded;fgd<efeefd9efd:efded=fd>ed;fgdGed=fdHed;fded,fded.fdIefgdJZ&dKS )Lr   z
    A Red-language lexer.
    Redredz
red/systemz*.redz*.redsz
text/x-redztext/x-red-systemzhttps://www.red-lang.orgz2.0r   c              #   :  K   |                                 }t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r*|                                t          j        j	        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r |                                t          |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d	|          r |                                t          |fV  d S t          j        d
|          r |                                t          |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r*|                                t          j        j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S t          j        d|          r%|                                t          j        |fV  d S |                                t          j        |fV  d S )Nr   a  (if|unless|either|any|all|while|until|loop|repeat|foreach|forall|func|function|does|has|switch|case|reduce|compose|get|set|print|prin|equal\?|not-equal\?|strict-equal\?|lesser\?|greater\?|lesser-or-equal\?|greater-or-equal\?|same\?|not|type\?|stats|bind|union|replace|charset|routine)$af  (make|random|reflect|to|form|mold|absolute|add|divide|multiply|negate|power|remainder|round|subtract|even\?|odd\?|and~|complement|or~|xor~|append|at|back|change|clear|copy|find|head|head\?|index\?|insert|length\?|next|pick|poke|remove|reverse|select|sort|skip|swap|tail|tail\?|take|trim|create|close|delete|modify|open|open\?|query|read|rename|update|write)$z`(yes|on|no|off|true|false|tab|cr|lf|newline|escape|slash|sp|space|null|none|crlf|dot|null-byte)$ze(#system-global|#include|#enum|#define|#either|#if|#import|#export|#switch|#default|#get-definition)$z(system|halt|quit|quit-return|do|load|q|recycle|call|run|ask|parse|raise-error|return|exit|break|alias|push|pop|probe|\?\?|spec-of|body-of|quote|forever)$z(action\?|block\?|char\?|datatype\?|file\?|function\?|get-path\?|zero\?|get-word\?|integer\?|issue\?|lit-path\?|lit-word\?|logic\?|native\?|op\?|paren\?|path\?|refinement\?|set-path\?|set-word\?|string\?|unset\?|any-struct\?|none\?|word\?|any-series\?)$z(JNICALL|stdcall|cdecl|infix)$r   zN(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|<<<|>>>|<<|>>|<|>%)$r   r   r   r   z:.*)r   r   r   r   r   r   r	   r    r!   Pseudor   r"   r#   r   r%   r&   r'   r(   r)   r*   s      r-   r.   zRedLexer.word_callback   s     {{}}8FD!! 1	5++--!3T999999X >
 @DE E /	5 ++--t333333X (
 *./ / (	5 ++--444444X 348: : !	5++--!4d::::::X <=AC C 	5++--!2D888888X )*.0 0 	5 ++--555555X C EIJ J 	5 ++--$......X7>> 	5++--!2D888888Xgt$$ 	5++--$......X ./35 5 	5++--4//////Xh%% 	5++--t333333XeT"" 		5++--!7======XeT"" 	5++--T111111XeT"" 	5++--555555XeT"" 	5++--!3T999999++--444444r/   r0   r1   r2   z#\{[0-9a-f\s]*\}r3   r4   r5   z$([0-9a-f]+)(h)((\s)|(?=[\[\]{}"()]))r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   zH\d+[\-/][0-9a-z]+[\-/]\d+(/\d+:\d+((:\d+)?([\.\d+]?([+-]?\d+:\d+)?)?)?)?rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   z/[^(^{^")\s/[\]]*z#([^(^{^")\s/[\]]+)(?=[:({"\s/\[\]])rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   N)'rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r   rl   rz   r{   r|   r.   r   r
   r}   r   r~   r   r	   r&   r   r   r   r   r)   r   r   r   r   r   r   r   r   r   r   r   r/   r-   r   r      s
         Dl#G(#I23I
$CMMBL(E+I45 45 45n%
TN%
FK(%
 !&*-%
 fj&)	%

 &vz2%
 5Xfj$-<<>%
 68$%
 FI&%
 )%
 '/*%
 w%
 DNL1%
 !$.1%
 0>%
  .v|<!%
"/06>#%
& !'"23'%
( )*)%
* 4V\B+%
, (6-%
. !&)/%
0 '.)1%
2 1$.A3%
4 1$.A5%
6 *4>:7%
8 G%569%
: W&67;%
< Wn5=%
> %g.?%
@ "4>2A%
B 4]CC%
D DH%E%
F dh.G%
H t$I%
N &!&V]#66"
 6"&V]#FG$FF#
 $.)'T^$4>6*	
 _fk62fk6*FK(
 !48[)tx(48V$	
 $(#!!TX48V$
 '*+W%v.

 VZ fj)FJ'
 '"  W7F#
 7#  WGW%GV$
 GW%GV$7,-G-.g&
Mm mFFFr/   )rs   r   pygments.lexerr   r   pygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   r   r   r/   r-   <module>r      s    
			 / / / / / / / /                                            
$Z Z Z Z Z Z Z Zzr r r r rz r r r r rr/   