o
    Ñ­jVG  ã                   @   st   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„ deƒZG dd„ deƒZdS )	zÝ
    pygments.lexers.rebol
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the REBOL and related languages.

    :copyright: Copyright 2006-present 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                   @   s0  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B ZdZd	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‘d0ef‘d1ej!f‘d2ej!d3f‘d4ef‘d5efeej"fd6efd7ej"fded8fgd9efeej"fd6efd7ej"fded:fd;ed8fgd5ejfeejfd7ejfdejd8fged ejd8fd<ejd8fd=ejd8fgeej!fdej!d>fd?ej!fd@ej!d8fgd5ej!feej!fd6ej!fd7ej!fdej!d8fgdAejfdBejd8fgdejfdCejfd;ejd8fgd5efeefd6efd7efded8fgd9efeefd6efd7efded:fd;ed8fgdDed:fdEed8fded)fded+fdFefgdGœZ#dHdI„ Z$dJS )Kr   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                 c   sÖ  � |  ¡ }t d|¡r| ¡ tj|fV  d S t d|¡r'| ¡ tj|fV  d S t d|¡r8| ¡ tj|fV  d S t d|¡rI| ¡ t	j
|fV  d S t d|¡rZ| ¡ tj|fV  d S t d|¡rk| ¡ tj|fV  d S t d|¡r{| ¡ t	|fV  d S t d|¡r‹| ¡ t|fV  d S t d	|¡r›| ¡ t	|fV  d S t d
|¡r¬| ¡ t	j|fV  d S t d|¡r¾| ¡ tjj|fV  d S t d|¡rÏ| ¡ tj|fV  d S t 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   Úword© r*   úR/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/rebol.pyÚword_callback#   sV   €íúçþÿzRebolLexer.word_callbackú\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}ú\[ú\]ú[^(\[\]"{)]+©Úrootr4   r6   r;   r/   rQ   r\   Útupler1   rI   rK   rM   c                 C   s,   t  d| t j¡r
dS t  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)Útextr*   r*   r+   Úanalyse_textå   s
   þzRebolLexer.analyse_textN)%Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr   rh   Ú	MULTILINEÚflagsÚ	escape_rer,   r   r	   ÚCharr
   ÚHexr   ÚSpecialÚPreprocr   r&   ÚFloatÚOtherr   ÚConstantr   ÚStrongÚ	AttributeÚTagÚEscapeÚtokensrk   r*   r*   r*   r+   r      s   Vÿ
þý
üûúùø	÷
ö
õôóòÿñïîíìëêéèçæåäãâá à
!ß"Þ%ûú	
ü

ý

ü
û
þ
ýûú	ûœmc                   @   s@  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B ZdZd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‘d0ed1f‘d2ef‘d3ej#f‘d4ef‘d5ej$f‘d6ej$d7f‘d8ef‘d9efeej%fd:efd;ej%fded<fgd=efeej%fd:efd;ej%fded>fd?ed<fgd9ejfeejfd;ejfdejd<fged ejd<fd@ejd<fdAejd<fgeej$fdej$dBfdCej$fdDej$d<fgd9ej$feej$fd:ej$fd;ej$fdej$d<fgdEej fdFej d<fgdejfdGejfd?ejd<fgd9efeefd:efd;efded<fgd=efeefd:efd;efded>fd?ed<fgdHed>fdIed<fded-fded/fdJefgdKœZ&dLS )Mr   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                 c   s  � |  ¡ }t d|¡r| ¡ tj|fV  d S t d|¡r'| ¡ tj|fV  d S t d|¡r8| ¡ tj|fV  d S t d|¡rJ| ¡ tjj	|fV  d S t d|¡r[| ¡ t
j|fV  d S t d|¡rl| ¡ tj|fV  d S t d|¡r|| ¡ t
|fV  d S t d|¡r�| ¡ t
j|fV  d S t d	|¡r�| ¡ t
|fV  d S t d
|¡r­| ¡ t|fV  d S t d|¡r¾| ¡ t
j|fV  d S t d|¡rÐ| ¡ tjj|fV  d S t d|¡rá| ¡ tj|fV  d S t d|¡rò| ¡ tj|fV  d S t 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'   r*   r*   r+   r,      s^   €ûûÿÿþýÿzRedLexer.word_callbackr-   r.   r/   z#\{[0-9a-f\s]*\}r0   r1   r2   z$([0-9a-f]+)(h)((\s)|(?=[\[\]{}"()]))r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   zH\d+[\-/][0-9a-z]+[\-/]\d+(/\d+:\d+((:\d+)?([\.\d+]?([+-]?\d+:\d+)?)?)?)?r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   z/[^(^{^")\s/[\]]*z#([^(^{^")\s/[\]]+)(?=[:({"\s/\[\]])rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   N)'rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   r   rh   rv   rw   rx   r,   r   r	   ry   r
   rz   r   r   r#   r   r   r{   r|   r&   r}   r~   r   r   r   r€   r�   r‚   rƒ   r„   r*   r*   r*   r+   r   ñ   s    7ÿ
þý
üûÿúø	÷
öõô
óòñðÿïíìëêéèçæåäãâá à!ß"Þ
#Ý$Ü'ûú	
ü

ý

ü
û
þ
ýûú	û
š)ro   r   Úpygments.lexerr   r   Úpygments.tokenr   r   r   r   r   r	   r
   r   r   Ú__all__r   r   r*   r*   r*   r+   Ú<module>   s    
, ^