ó
Ü\[Tc           @   s¤   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 d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(	   sÚ   
    pygments.lexers.rebol
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the REBOL and related languages.

    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿN(   t
   RegexLexert   bygroups(	   t   Textt   Commentt   Operatort   Keywordt   Namet   Stringt   Numbert   Generict
   Whitespacet
   RebolLexert   RedLexerc        #   B   s  e  Z d  Z d Z d g Z d d d g Z d g Z e j e j	 BZ
 d Z d „  Z i d	 e f d
 e j d f d e f g d 6d 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 d0 f d1 e f d2 e j f d3 e f d4 e j f d5 e j d6 f d7 e f g! d 6d8 e f e e j f d9 e f d: e j f d e d; f g d 6d< e f e e j f d9 e f d: e j f d e d= f d> e d; f g d 6d8 e j f e e j f d: e j f d e j d; f g d 6e d e j d; f d? e j d; f d@ e j d; f g d 6e e j f d e j dA f dB e j f dC e j d; f g d6 6d8 e j f e e j f d9 e j f d: e j f d e j d; f g dA 6dD e j f dE e j d; f g dF 6d e j f dG e j f d> e j d; f g d 6d8 e f e e f d9 e f d: e f d e d; f g d, 6d< e f e e f d9 e f d: e f d e d= f d> e d; f g d. 6dH e d= f dI e d; f d e d, f d e d. f dJ e f g d0 6Z  dK „  Z! RS(L   sN   
    A `REBOL <http://www.rebol.com/>`_ lexer.

    .. versionadded:: 1.1
    t   REBOLt   rebols   *.rs   *.r3s   *.rebs   text/x-rebols   (?:\^\([0-9a-f]{1,4}\)*)c         c   s]  | j  ƒ  } t j d | ƒ r8 | j ƒ  t j | f Vn!t j d | ƒ rd | j ƒ  t j | f Vnõt j d | ƒ r | j ƒ  t j | f VnÉt j d | ƒ r¼ | j ƒ  t	 j
 | f Vnt j d | ƒ rè | j ƒ  t j | f Vnqt j d | ƒ r| j ƒ  t j | f VnEt j d | ƒ r=| j ƒ  t	 | f Vnt j d | ƒ rf| j ƒ  t | f Vnó t j d	 | ƒ r| j ƒ  t	 | f VnÊ t j d
 | ƒ r»| j ƒ  t	 j | f Vnž t j d | ƒ rê| j ƒ  t j j | f Vno t j d | ƒ r| j ƒ  t j | f VnC t j d | ƒ rB| j ƒ  t j | f Vn | j ƒ  t j | f Vd  S(   Ns   .*:$s  (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)$s4  (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)$s—  (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)$sO   (halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|return|exit|break)$s   REBOL$s   to-.*s5   (\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$s   .*\?$s   .*\!$s   '.*s   #.*s   %.*(   t   groupt   ret   matcht   startR	   t
   SubheadingR   t   Builtint   FunctionR   t	   Namespacet	   Exceptiont   HeadingR   t   Typet   Variablet   Instancet   Labelt	   Decorator(   t   lexerR   t   word(    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyt   word_callback$   sJ    						s   [^R]+s
   REBOL\s+\[t   scriptt   Rt   roots   \s+s   #"t   chars   #\{[0-9a-f]*\}s   2#\{t   bin2s   64#\{[0-9a-z+/=\s]*\}t   "t   strings   \{t   string2s   ;#+.*\ns   ;\*+.*\ns   ;.*\ns   %"t
   stringFiles   %[^(^{")\s\[\]]+s   [+-]?([a-z]{1,3})?\$\d+(\.\d+)?s   [+-]?\d+\:\d+(\:\d+)?(\.\d+)?sJ   \d+[\-/][0-9a-z]+[\-/]\d+(\/\d+\:\d+((\:\d+)?([.\d+]?([+-]?\d+:\d+)?)?)?)?s   \d+(\.\d+)+\.\d+s   \d+X\d+s#   [+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+s   [+-]?\d+(\'\d+)?[.,]\d*s   [+-]?\d+(\'\d+)?s   [\[\]()]s    [a-z]+[^(^{"\s:)]*://[^(^{"\s)]*s    mailto:[^(^{"@\s)]+@[^(^{"@\s)]+s   [^(^{"@\s)]+@[^(^{"@\s)]+s
   comment\s"t   commentString1s   comment\s\{t   commentString2s   comment\s\[t   commentBlocks   comment\s[^(\s{"\[]+s   /[^(^{")\s/[\]]*s"   ([^(^{")\s/[\]]+)(?=[:({"\s/\[\]])s
   <[\w:.-]*>s   <[^(<>\s")]+t   tags   ([^(^{")\s]+)s   [^(^")]+s   [(|)]+s   \^.s   #pops	   [^(^{})]+s   #pushs   \}s   \^."s   ."t	   tagStrings   [^(<>\r\n")]+t   >s   (\d+\.)+s   \d+t   tuples   ([01]\s*){8}s   \[s   \]s   [^(\[\]"{)]+c         C   s<   t  j d |  t  j ƒ r d St  j d |  t  j ƒ r8 d Sd S(   sS   
        Check if code contains REBOL header and so it probably not R code
        s   ^\s*REBOL\s*\[g      ð?s   \s*REBOL\s*[g      à?N(   R   R   t
   IGNORECASEt   search(   t   text(    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyt   analyse_textë   s    ("   t   __name__t
   __module__t   __doc__t   namet   aliasest	   filenamest	   mimetypesR   R1   t	   MULTILINEt   flagst	   escape_reR    R   R	   t   StrongR   R   t   CharR   t   Hext   Specialt   PreprocR   R   t   Floatt   OtherR   t   Constantt	   Attributet   Tagt   Escapet   tokensR4   (    (    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyR      s¾   			U																			c        $   B   sÁ  e  Z d  Z d Z d d g Z d d g Z d d g Z e j e j	 BZ
 d Z d	 „  Z i d
 e f d e j d f d e j d f d e f g d 6d 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 d0 e d1 f d2 e d3 f d4 e f d5 e j  f d6 e f d7 e j! f d8 e j! d9 f d: e f g" d 6d; e f e e j" f d< e f d= e j" f d e d> f g d 6d? e f e e j" f d< e f d= e j" f d e d@ f dA e d> f g d 6d; e j f e e j f d= e j f d e j d> f g d  6e d e j d> f dB e j d> f dC e j d> f g d 6e e j! f d e j! dD f dE e j! f dF e j! d> f g d9 6d; e j! f e e j! f d< e j! f d= e j! f d e j! d> f g dD 6dG e j f dH e j d> f g dI 6d e j f dJ e j f dA e j d> f g d 6d; e f e e f d< e f d= e f d e d> f g d/ 6d? e f e e f d< e f d= e f d e d@ f dA e d> f g d1 6dK e d@ f dL e d> f d e d/ f d e d1 f dM e f g d3 6Z# RS(N   sX   
    A `Red-language <http://www.red-lang.org/>`_ lexer.

    .. versionadded:: 2.0
    t   Redt   reds
   red/systems   *.reds   *.redss
   text/x-reds   text/x-red-systems   (?:\^\([0-9a-f]{1,4}\)*)c         c   s¸  | j  ƒ  } t j d | ƒ r8 | j ƒ  t j | f Vn|t j d | ƒ rd | j ƒ  t j | f VnPt j d | ƒ r | j ƒ  t j | f Vn$t j d | ƒ r¿ | j ƒ  t j j	 | f Vnõt j d | ƒ rë | j ƒ  t
 j | f VnÉt j d | ƒ r| j ƒ  t j | f Vnt j d | ƒ r@| j ƒ  t
 | f Vntt j d | ƒ rl| j ƒ  t
 j | f VnHt j d	 | ƒ r•| j ƒ  t
 | f Vnt j d
 | ƒ r¾| j ƒ  t | f Vnö t j d | ƒ rê| j ƒ  t
 j | f VnÊ t j d | ƒ r| j ƒ  t j j | f Vn› t j d | ƒ rE| j ƒ  t j | f Vno t j d | ƒ rq| j ƒ  t j | f VnC t j d | ƒ r| j ƒ  t j | f Vn | j ƒ  t j | f Vd  S(   Ns   .*:$s  (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)$sf  (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)$s`   (yes|on|no|off|true|false|tab|cr|lf|newline|escape|slash|sp|space|null|none|crlf|dot|null-byte)$se   (#system-global|#include|#enum|#define|#either|#if|#import|#export|#switch|#default|#get-definition)$sš   (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)$sý   (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\?)$s   (JNICALL|stdcall|cdecl|infix)$s   to-.*sN   (\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|<<<|>>>|<<|>>|<|>%)$s   .*\!$s   '.*s   #.*s   %.*s   :.*(   R   R   R   R   R	   R   R   R   R   t   PseudoR   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyR      sN    														s   [^R]+s   Red/System\s+\[R!   s   Red\s+\[R"   R#   s   \s+s   #"R$   s   #\{[0-9a-f\s]*\}s   2#\{R%   s   64#\{[0-9a-z+/=\s]*\}s$   ([0-9a-f]+)(h)((\s)|(?=[\[\]{}"()]))R&   R'   s   \{R(   s   ;#+.*\ns   ;\*+.*\ns   ;.*\ns   %"R)   s   %[^(^{")\s\[\]]+s   [+-]?([a-z]{1,3})?\$\d+(\.\d+)?s   [+-]?\d+\:\d+(\:\d+)?(\.\d+)?sH   \d+[\-/][0-9a-z]+[\-/]\d+(/\d+:\d+((:\d+)?([\.\d+]?([+-]?\d+:\d+)?)?)?)?s   \d+(\.\d+)+\.\d+s   \d+X\d+s#   [+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+s   [+-]?\d+(\'\d+)?[.,]\d*s   [+-]?\d+(\'\d+)?s   [\[\]()]s    [a-z]+[^(^{"\s:)]*://[^(^{"\s)]*s    mailto:[^(^{"@\s)]+@[^(^{"@\s)]+s   [^(^{"@\s)]+@[^(^{"@\s)]+s
   comment\s"R*   s   comment\s\{R+   s   comment\s\[R,   s   comment\s[^(\s{"\[]+s   /[^(^{^")\s/[\]]*s#   ([^(^{^")\s/[\]]+)(?=[:({"\s/\[\]])s
   <[\w:.-]*>s   <[^(<>\s")]+R-   s   ([^(^{")\s]+)s   [^(^")]+s   [(|)]+s   \^.s   #pops	   [^(^{})]+s   #pushs   \}s   \^."s   ."R.   s   [^(<>\r\n")]+R/   s   (\d+\.)+s   \d+R0   s   ([01]\s*){8}s   \[s   \]s   [^(\[\]"{)]+($   R5   R6   R7   R8   R9   R:   R;   R   R1   R<   R=   R>   R    R   R	   R?   R   R   R@   R   RA   R   R   R   R
   RB   RC   R   RD   RE   R   RF   RG   RH   RI   RJ   (    (    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyR   ÷   sÂ   	6																			(   R7   R   t   pygments.lexerR    R   t   pygments.tokenR   R   R   R   R   R   R   R	   R
   t   __all__R   R   (    (    (    s9   /usr/lib/python2.7/dist-packages/pygments/lexers/rebol.pyt   <module>
   s   @â