Ë
    |í¼e’&  ã                   óÒ   — 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 g d¢Z G d„ de«      Z G d„ d	e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Zy)z×
    pygments.lexers.algebra
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for computer algebra systems.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexerÚ
RegexLexerÚbygroupsÚdo_insertionsÚwords)
ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚGenericÚ
Whitespace)ÚGAPLexerÚGAPConsoleLexerÚMathematicaLexerÚ
MuPADLexerÚBCLexerc                   óà   — e Zd ZdZdZdZdgZg d¢Zddej                  fde
fd	efd
efdej                  fdej                  fdefdej"                  fdej$                  fdefdefdefgiZd„ Zy)r   z9
    For GAP source code.

    .. versionadded:: 2.0
    ÚGAPzhttps://www.gap-system.orgÚgap)z*.gz*.gdz*.giz*.gapÚrootz#.*$ú"(?:[^"\\]|\\.)*"ú\(|\)|\[|\]|\{|\}aV  (?x)\b(?:
                if|then|elif|else|fi|
                for|while|do|od|
                repeat|until|
                break|continue|
                function|local|return|end|
                rec|
                quit|QUIT|
                IsBound|Unbind|
                TryNextMethod|
                Info|Assert
              )\bzD(?x)\b(?:
                true|false|fail|infinity
              )\bzx(?x)\b(?:
                (Declare|Install)([A-Z][A-Za-z]+)|
                   BindGlobal|BIND_GLOBAL
              )\bz\.|,|:=|;|=|\+|-|\*|/|\^|>|<z=(?x)\b(?:
                and|or|not|mod|in
              )\bzC(?x)
              (?:\w+|`[^`]*`)
              (?:::\w+|`[^`]*`)*ú[0-9]+(?:\.[0-9]*)?(?:e[0-9]+)?ú\.[0-9]+(?:e[0-9]+)?ú.c                 óŠ   — d}t        j                  d| «      r|dz  }t        j                  d| «      r|dz  }t        |d«      S )Nç        zl(InstallTrueMethod|Declare(Attribute|Category|Filter|Operation|GlobalFunction|Synonym|SynonymAttr|Property))gffffffæ?zm(DeclareRepresentation|Install(GlobalFunction|Method|ImmediateMethod|OtherMethod)|New(Family|Type)|Objectify)g      ð?)ÚreÚsearchÚmin)ÚtextÚscores     ú9/usr/lib/python3/dist-packages/pygments/lexers/algebra.pyÚanalyse_textzGAPLexer.analyse_textH   sV   € Øˆô �9‰9ð>Ø?Cô
ð �S‰LˆEô �9‰9ðHØIMô
ð �S‰LˆEä�5˜#‹Ðó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesr	   ÚSingler   r   r   r   ÚConstantÚBuiltinr
   ÚWordÚVariabler   r   Útokensr(   © r)   r'   r   r      sÏ   „ ñð
 €DØ
&€CØˆg€GÚ0€Ið 	Ø�g—n‘nÐ%Ø! 6Ð*Ø! ;Ð/ðð ððð �]‰]ððð �\‰\ð	ð
 -¨hÐ7ðð �]‰]ðð$à%)§]¡]ð4ð 0°Ð8Ø$ fÐ-Ø�4ˆLðG$
ð&€FóPr)   r   c                   ó.   — e Zd ZdZdZddgZdgZd„ Zd„ Zy)	r   z`
    For GAP console sessions. Modeled after JuliaConsoleLexer.

    .. versionadded:: 2.14
    zGAP sessionzgap-consolezgap-replz*.tstc           	   #   ó  K  — t        di | j                  ¤Ž}d}d}g }d}d}|j                  d¬«      D �])  }|j                  d«      s|j                  d«      r>|j	                  t        |«      dt        j                  |d d fgf«       ||dd  z  }d}d}n¸|sK|j                  d	«      r:|j	                  t        |«      dt        j                  |d d
 fgf«       ||d
d  z  }nk|r't        ||j                  |«      «      E d {  –—†  d}g }|j                  d«      s|r|t        j                  |f–— d}n|t        j                  |f–— d}|t        |«      z  }�Œ, |r$t        ||j                  |«      «      E d {  –—†  y y 7 Œ‚7 Œ­w)Nr   Ú FT)Úkeependszgap> zbrk> é   z> é   zError, r8   )r   ÚoptionsÚ
splitlinesÚ
startswithÚappendÚlenr   ÚPromptr   Úget_tokens_unprocessedÚErrorÚOutput)	Úselfr%   ÚgaplexerÚstartÚcurcodeÚ
insertionsÚoutputÚerrorÚlines	            r'   rE   z&GAPConsoleLexer.get_tokens_unprocessedf   s¥  è ø€ ÜÑ+˜dŸl™lÑ+ˆØˆØˆØˆ
ØˆØˆà—O‘O¨T�OÓ2ó 	ˆDØ�‰˜wÔ'¨4¯?©?¸7Ô+CØ×!Ñ!¤3 w£<°1´g·n±nÀdÈ2ÈAÀhÐ2OÐ1PÐ"QÔRØ˜4  ˜8Ñ#�Ø�Ø‘Ù §¡°Ô 5Ø×!Ñ!¤3 w£<°1´g·n±nÀdÈ2ÈAÀhÐ2OÐ1PÐ"QÔRØ˜4  ˜8Ñ#‘áÜ,Ø" H×$CÑ$CÀGÓ$Ló N÷ Nð Nà �GØ!#�JØ—?‘? 9Ô-±Ø¤§¡°Ð4Ò4Ø ‘Eà¤§¡°Ð5Ò5Ø�Ø”S˜“YÑŠEð+	ñ. Ü$Ø˜H×;Ñ;¸GÓDóF÷ Fñ Fð ðNøðFús%   ‚DFÄFÄA;FÆF
ÆFÆ
Fc                 ó2   — t        j                  d| «      ryy)Nz^gap> gÍÌÌÌÌÌì?r!   )r"   r#   )r%   s    r'   r(   zGAPConsoleLexer.analyse_textŠ   s   € ô
 �9‰9�Y Ô%Øàr)   N)	r*   r+   r,   r-   r.   r0   r1   rE   r(   r8   r)   r'   r   r   \   s+   „ ñð
 €DØ˜jÐ)€GØ�	€Iò!FóHr)   r   c                   ó2  — e Zd ZdZdZdZg d¢Zg d¢Zg d¢ZdZ	dZ
d	„ Zd
de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 ee	«      ef ee
«      efdefdej0                  fgiZy)r   zG
    Lexer for Mathematica source code.

    .. versionadded:: 2.0
    ÚMathematicaz#http://www.wolfram.com/mathematica/)ÚmathematicaÚmmaÚnb)z*.nbz*.cdfz*.nbpz*.ma)zapplication/mathematicaz#application/vnd.wolfram.mathematicaz+application/vnd.wolfram.mathematica.packagezapplication/vnd.wolfram.cdf) z;;ú=z=.z!===z:=z->z:>z/.ú+ú-Ú*ú/ú^z&&z||ú!z<>ú|z/;ú?ú@z//z/@z@@z@@@z~~z===ú&ú<ú>z<=z>=)ú,ú;ú(ú)ú[ú]ú{ú}c                 ó8   — ddj                  d„ | D «       «      z  S )Nz(%s)r]   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­w)N)r"   Úescape)Ú.0Úentrys     r'   ú	<genexpr>z1MathematicaLexer._multi_escape.<locals>.<genexpr>®   s   è ø€ Ò!H°u¤"§)¡)¨E×"2Ñ!Hùs   ‚!)Újoin)Úentriess    r'   Ú_multi_escapezMathematicaLexer._multi_escape­   s   € Ø˜Ÿ™Ñ!HÀÔ!HÓHÑIÐIr)   r   z(?s)\(\*.*?\*\)z([a-zA-Z]+[A-Za-z0-9]*`)z([A-Za-z0-9]*_+[A-Za-z0-9]*)z#\d*z([a-zA-Z]+[a-zA-Z0-9]*)z
-?\d+\.\d*z
-?\d*\.\d+z-?\d+z".*?"ú\s+N)r*   r+   r,   r-   r.   r/   r0   r1   Ú	mimetypesÚ	operatorsÚpunctuationrs   r	   r   Ú	Namespacer6   r   ÚFloatÚIntegerr   r
   r   r   r   r   r7   r8   r)   r'   r   r   •   sÏ   „ ñð
 €DØ
/€CÚ*€GÚ2€Iò0€Ið€Ið ;€KòJð 	Ø Ð)à(¨$¯.©.Ð9Ø,¨d¯m©mÐ<Ø�d—m‘mÐ$Ø'¨Ð.à˜FŸL™LÐ)Ø˜FŸL™LÐ)Ø�v—~‘~Ð&á�9Ó˜xÐ(Ù�;Ó Ð-Ø�vÐØ�T—_‘_Ð%ð
ð�Fr)   r   c                   óÆ  — e Zd ZdZdZdZdgZdgZdej                  fdej                  dfd	efd
efdefdej                  fdej                   fdej"                  j$                  fdefdej(                  fdefd eej.                  ee«      fdej2                  fdefdefdefdefgdej                  fdej                  dfdej                  dfdej                  fgdœZy)r   zv
    A MuPAD lexer.
    Contributed by Christopher Creutzig <christopher@creutzig.de>.

    .. versionadded:: 0.8
    ÚMuPADzhttp://www.mupad.comÚmupadz*.muz//.*?$ú/\*Úcommentr   r   a¹  (?x)\b(?:
                next|break|end|
                axiom|end_axiom|category|end_category|domain|end_domain|inherits|
                if|%if|then|elif|else|end_if|
                case|of|do|otherwise|end_case|
                while|end_while|
                repeat|until|end_repeat|
                for|from|to|downto|step|end_for|
                proc|local|option|save|begin|end_proc|
                delete|frame
              )\baU  (?x)\b(?:
                DOM_ARRAY|DOM_BOOL|DOM_COMPLEX|DOM_DOMAIN|DOM_EXEC|DOM_EXPR|
                DOM_FAIL|DOM_FLOAT|DOM_FRAME|DOM_FUNC_ENV|DOM_HFARRAY|DOM_IDENT|
                DOM_INT|DOM_INTERVAL|DOM_LIST|DOM_NIL|DOM_NULL|DOM_POLY|DOM_PROC|
                DOM_PROC_ENV|DOM_RAT|DOM_SET|DOM_STRING|DOM_TABLE|DOM_VAR
              )\bz�(?x)\b(?:
                PI|EULER|E|CATALAN|
                NIL|FAIL|undefined|infinity|
                TRUE|FALSE|UNKNOWN
              )\bz\b(?:dom|procname)\bz-\.|,|:|;|=|\+|-|\*|/|\^|@|>|<|\$|\||!|\'|%|~=zž(?x)\b(?:
                and|or|not|xor|
                assuming|
                div|mod|
                union|minus|intersect|in|subset
              )\bz \b(?:I|RDN_INF|RD_NINF|RD_NAN)\bzi(?x)
              ((?:[a-zA-Z_#][\w#]*|`[^`]*`)
              (?:::[a-zA-Z_#][\w#]*|`[^`]*`)*)(\s*)([(])z](?x)
              (?:[a-zA-Z_#][\w#]*|`[^`]*`)
              (?:::[a-zA-Z_#][\w#]*|`[^`]*`)*r   r   rt   r   z[^/*]+z#pushú\*/ú#popú[*/]©r   r   N)r*   r+   r,   r-   r.   r/   r0   r1   r	   r2   Ú	Multiliner   r   r   r   ÚClassr3   r4   ÚPseudor
   r5   r   r   ÚFunctionr   r6   r   r7   r8   r)   r'   r   r   Å   s^  „ ñð €DØ
 €CØˆi€GØ�€Ið ˜Ÿ™Ð'Ø�W×&Ñ&¨	Ð2Ø! 6Ð*Ø! ;Ð/ð
ð ð
ðð
 —j‘jð"ðð
 �]‰]ðð % d§l¡l×&9Ñ&9Ð:Ø=¸xÐHðð �]‰]ðð 1°&Ð9ð<ñ �d—m‘m T¨;Ó7ð9ð1à26·-±-ðAð 0°Ð8Ø$ fÐ-Ø�ZÐ Ø�4ˆLðc2
ðh ˜×)Ñ)Ð*Ø�W×&Ñ&¨Ð0Ø�W×&Ñ&¨Ð/Ø�g×'Ñ'Ð(ð	
ñi:�Fr)   r   c            	       óÔ   — e Zd ZdZdZdZdgZdgZdej                  dfde
fd	ef ed
d¬«      efdefdefdefdefgdej                  fdej                  dfdej                  fgdœZy)r   z0
    A BC lexer.

    .. versionadded:: 2.1
    ÚBCz https://www.gnu.org/software/bc/Úbcz*.bcr~   r   r   z[{}();,])ÚifÚelseÚwhileÚforÚbreakÚcontinueÚhaltÚreturnÚdefineÚautoÚprintÚreadÚlengthÚscaleÚsqrtÚlimitsÚquitÚwarrantyz\b)Úsuffixz!\+\+|--|\|\||&&|([-<>+*%\^/!=])=?z[0-9]+(\.[0-9]*)?z\.[0-9]+r   z[^*/]+r€   r�   r‚   rƒ   N)r*   r+   r,   r-   r.   r/   r0   r1   r	   r„   r   r   r   r   r
   r   r   r7   r8   r)   r'   r   r     sÄ   „ ñð
 €DØ
,€CØˆf€GØ�€Ið �W×&Ñ&¨	Ð2Ø! 6Ð*Ø˜+Ð&Ùð  ð ).ô/ð 18ð9ð"Ø#+ð-ð " 6Ð*Ø˜&Ð!Ø�4ˆLð
ð  ˜×)Ñ)Ð*Ø�W×&Ñ&¨Ð/Ø�g×'Ñ'Ð(ð
ñ!�Fr)   r   )r-   r"   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r   r8   r)   r'   ú<module>r¡      so   ðñó 
ç LÕ L÷-÷ -÷ -ò€ôDˆzô DôN6�eô 6ôr-�zô -ô`F�ô FôR ˆjõ  r)   