
    Mhi                         d 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 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dS )z
    pygments.lexers.data
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for data file format.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )LexerExtendedRegexLexerLexerContextincludebygroups)	CommentErrorKeywordLiteralNameNumberPunctuationString
Whitespace)	YamlLexer	JsonLexerJsonBareObjectLexerJsonLdLexerc                   "     e Zd ZdZ fdZ xZS )YamlLexerContextz'Indentation context for the YAML lexer.c                 r     t                      j        |i | g | _        d| _        d| _        d | _        d S Nr   )super__init__indent_stackindentnext_indentblock_scalar_indent)selfargskwds	__class__s      T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/data.pyr   zYamlLexerContext.__init__   sD    $'$'''#'       )__name__
__module____qualname____doc__r   __classcell__r#   s   @r$   r   r      s>        11( ( ( ( ( ( ( ( (r%   r   c                       e Zd ZdZdZdZdgZddgZdgZdZ	d	 Z
d
 ZdedZdedZd Zd Zd Zd Zi ddefdefdej        fd eej                  dfd eej                  dfd eej                  dfd eed          dfgd defdej        fd!ed"fgdd# eee          d fgdd$ eeej        eej                  d fgd%d& e
e          d"fd' ee          fd( eej                  fd) ee          d*fgdd+ e
e          d*fd,efd- eej         eed.                    f ed/           ed0           ed1          d2 e
ej                  d3fgd/d4ej        fd5ej        fd6ej         fd7ej        fgd0d8 eej        d.          fd9ej        d:fgd1d;ej        d<fd=ej        d>fd?e!d@fdAe!dBfgdCd,efdefdej        fdDej        f ed/           ed1          dE e
ej                  dFfgd< edC          dGej        d*fgd>dH eej        e          f edC          dIej        d*fgdJd!efdK eeej"                  fdL ee          fdMej"        fgdNdO eej                  d fdP eej                  d fgdQdRefdSefdefd,ej        fgd@ edQ          dTe!j#        fdUe!fd?e!d*fgdB edQ          dVe!fdWe!j#        fdXe!fdYe!d*fgdKefdefdZ e
ej                  d[fdL ee          d*fgd\ e
e          d*fd]ed*fdSefded^fd,e$j%        j&        fd_e$j%        j&        fgd` e
e          d*fd]ed*fdRefdSefdefd,ej        fdaej        fgdbZ'df fdd	Z( xZ)S )gr   zK
    Lexer for YAML, a human-friendly data serialization
    language.
    YAMLzhttp://yaml.org/yamlz*.yamlz*.ymlztext/x-yamlz0.11c                       fd}|S )zDo not produce empty tokens.c              3      K   |                                 }|sd S |                                |fV  |                                |_        d S N)groupstartendposlexermatchcontexttexttoken_classs       r$   callbackz%YamlLexer.something.<locals>.callback-   sO      ;;==D ++--d2222))++GKKKr%    r;   r<   s   ` r$   	somethingzYamlLexer.something+   s#    	& 	& 	& 	& 	& r%   c                       fd}|S )zReset the indentation levels.c              3      K   |                                 }g |_        d|_        d|_        d |_        |                                |fV  |                                |_        d S r   )r2   r   r   r   r   r3   r4   r5   r6   s       r$   r<   z(YamlLexer.reset_indent.<locals>.callback7   sa      ;;==D#%G GN"#G*.G'++--d2222))++GKKKr%   r=   r>   s   ` r$   reset_indentzYamlLexer.reset_indent5   s#    	& 	& 	& 	& 	& r%   Fc                       fd}|S )z"Save a possible indentation level.c              3   `  K   |                                 }d}rt          |          |_        |j        |j        k     rl|j        |j        k     r.|j                                        |_        |j        |j        k     .|j        |j        k    r||j        d          }|d |j                 }n|xj        t          |          z  c_        |r|                                |fV  |r.|                                t          |          z   j        |fV  |                                |_	        d S )N )
r2   lenr   r   r   popr3   r	   r4   r5   )r7   r8   r9   r:   extrar3   r;   s        r$   r<   z'YamlLexer.save_indent.<locals>.callbackC   s*     ;;==DE 	1&)$ii#&77!->>)0)=)A)A)C)C "->>*W^;; $W^__ 5#OW^O4##s4yy0## 7kkmm[$6666 HkkmmCII-{/@%GGGG))++GKKKr%   r=   )r;   r3   r<   s   `` r$   save_indentzYamlLexer.save_indentA   s)    	& 	& 	& 	& 	& 	&$ r%   c                       fd}|S )z+Set the previously saved indentation level.c              3   L  K   |                                 }|j        |j        k     r+|j                            |j                   |j        |_        s|xj        t          |          z  c_        |                                |fV  |                                |_        d S r1   )	r2   r   r   r   appendrF   r3   r4   r5   )r7   r8   r9   r:   implicitr;   s       r$   r<   z&YamlLexer.set_indent.<locals>.callbackY   s      ;;==D~ 333$++GN;;;!(!4 1##s4yy0##++--d2222))++GKKKr%   r=   )r;   rM   r<   s   `` r$   
set_indentzYamlLexer.set_indentW   s)    	& 	& 	& 	& 	& 	& r%   c                       fd}|S )z5Set an explicit indentation level for a block scalar.c              3   @  K   |                                 }d |_        |sd S |                     d          }|r.t          |j        d          }t	          |          }||z   |_        |r4|                                |fV  |                                |_        d S d S )N   r   )r2   r   maxr   intr3   r4   r5   )r7   r8   r9   r:   	incrementcurrent_indentr;   s         r$   r<   z3YamlLexer.set_block_scalar_indent.<locals>.callbackf   s      ;;==D*.G' AI I!$W^Q!7!7	NN	.<y.H+ *kkmm[$6666#iikk* *r%   r=   r>   s   ` r$   set_block_scalar_indentz!YamlLexer.set_block_scalar_indentd   s#    	* 	* 	* 	* 	* r%   c                       fd}|S )z(Process an empty line in a block scalar.c              3     K   |                                 }|j        t          |          |j        k    r|r|                                |fV  nX|d |j                 }||j        d          }|                                |fV  |                                |j        z   |fV  |                                |_        d S r1   )r2   r   rF   r3   r4   r5   )r7   r8   r9   r:   indentationcontentcontent_token_classindent_token_classs         r$   r<   z9YamlLexer.parse_block_scalar_empty_line.<locals>.callbackw   s      ;;==D+3II!<<< B++--);TAAAA"#?G$?#?@w:;;<kkmm%7DDDD{{}}W%@@*G5 5 5 5))++GKKKr%   r=   )r\   r[   r<   s   `` r$   parse_block_scalar_empty_linez'YamlLexer.parse_block_scalar_empty_lineu   s)    	& 	& 	& 	& 	& 	& r%   c                       fd}|S )z-Process indentation spaces in a block scalar.c              3   $  K   |                                 }|j        ot          |          t          |j        d          k    r4|j                                         |j                                         d S t          |          |_        nLt          |          |j        k     r4|j                                         |j                                         d S |r4|                                |fV  |                                |_	        d S d S Nr   )
r2   r   rF   rR   r   stackrG   r3   r4   r5   r6   s       r$   r<   z5YamlLexer.parse_block_scalar_indent.<locals>.callback   s      ;;==D*2t99GNA 6 666M%%'''M%%'''F.1$ii++t99w:::M%%'''M%%'''F *kkmm[$6666#iikk* *r%   r=   r>   s   ` r$   parse_block_scalar_indentz#YamlLexer.parse_block_scalar_indent   s#    	* 	* 	* 	* 	*  r%   c                       fd}|S )z-Process indentation spaces in a plain scalar.c              3   8  K   |                                 }t          |          |j        k    r4|j                                         |j                                         d S |r4|                                |fV  |                                |_        d S d S r1   )r2   rF   r   ra   rG   r3   r4   r5   r6   s       r$   r<   z5YamlLexer.parse_plain_scalar_indent.<locals>.callback   s      ;;==D4yyGN**!!###!!### *kkmm[$6666#iikk* *r%   r=   r>   s   ` r$   parse_plain_scalar_indentz#YamlLexer.parse_plain_scalar_indent   s#    	* 	* 	* 	* 	* r%   rootz[ ]+(?=#|$)z\n+z#[^\n]*z^%YAML(?=[ ]|$)zyaml-directivez^%TAG(?=[ ]|$)ztag-directivez^(?:---|\.\.\.)(?=[ ]|$)
block-linez[ ]*(?!\s|$)T)r3   )rg   rY   zignored-linez\nz#pop:2z([ ]+)([0-9]+\.[0-9]+)z;([ ]+)(!|![\w-]*!)([ ]+)(!|!?[\w;/?:@&=+$,.!~*\'()\[\]%-]+)rY   z[ ]*$z[ ]+(?=[?:-](?:[ ]|$))z[?:-](?=[ ]|$)z[ ]*z#popz[ ]*(?=#|$)z[ ]+z([^#,?\[\]{}"'\n]+)(:)(?=[ ]|$))rM   descriptorszblock-nodesz
flow-nodesz'(?=[^\s?:,\[\]{}#&*!|>\'"%@`-]|[?:-]\S)plain-scalar-in-block-contextz!!<[\w#;/?:@&=+$,.!~*\'()\[\]%-]+>z+!(?:[\w-]+!)?[\w#;/?:@&=+$,.!~*\'()\[\]%-]*z&[\w-]+z\*[\w-]+z
:(?=[ ]|$)z[|>])block-scalar-contentblock-scalar-headerz\[zflow-sequencez\{zflow-mappingz\'zsingle-quoted-scalarz\"zdouble-quoted-scalarzflow-collectionz[?:,]z(?=[^\s?:,\[\]{}#&*!|>\'"%@`])plain-scalar-in-flow-contextz\]z([^,:?\[\]{}"'\n]+)(:)(?=[ ]|$)z\}rj   z^[ ]+$z^[ ]*z[\S\t ]+rk   z([1-9])?[+-]?(?=[ ]|$)z[+-]?([1-9])?(?=[ ]|$)zquoted-scalar-whitespacesz^[ ]+z[ ]+$z\'\'z[^\s\']+z\\[0abt\tn\nvfre "\\N_LP]z5\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})z	[^\s"\\]+"z^(?=---|\.\.\.)z#pop:3z[ ]*(?=:[ ]|:$)z	[ ]+(?=#)&plain-scalar-in-block-context-new-linez(?::(?!\s)|[^\s:])+z[ ]*(?=[,:?\[\]{}])z[^\s,:?\[\]{}]+)rn   ri   rl   Nc                 l    |t          |d          }t                                          ||          S r`   )r   r   get_tokens_unprocessed)r    r:   r9   r#   s      r$   rp   z YamlLexer.get_tokens_unprocessed  s1    ?&tQ//Gww--dG<<<r%   )F)NN)*r&   r'   r(   r)   nameurlaliases	filenames	mimetypesversion_addedr?   rB   rI   rN   rV   r]   rb   re   r   r   Singler   Tag	Namespacer   r   r
   Typer   	Indicatorr   VariableLabelr   ConstantEscaper   ScalarPlaintokensrp   r*   r+   s   @r$   r   r      s        
 D
ChG7#IIM  
 
 
   ,     "  "  (  EZ(Z (dh!7!79IJTX 6 6H(,,t~*F*F kk*DAAA*,
E, 	Z((J)
-E@ 	&Xj&))>;
AEN 	:Xj',
GLII
OE` 	yy,,h7&J(?(?@

;+@ A ABkk*--v6	
aEx 	YYz22F;j!3Xdh

; F F FGGI GM""GM""GL!!7Yt}%%,.
yEb 	17<@/07> $$-(

cE| 	JJ{'<tLLLMk+<>	
}EN 	K)?;K)>:F23F23	
OEf 	j!Z ({,-GM""GL!!.Yt}%%+-
gEN 	G%&&K)62	
OE^ 	3Xdh,,. G%&&K)62
_Et 	J**:t}EEG 00<<=$-(
!
uEN 	&$$[%:;; '$$[%:;;	 
OEf 	$z"z"Z dm$&
gE| 	G/00fm$&!FF#	!
}ET 	G/00)62E] 6"66"!
UEv 
#Z 4>!:!:HE00<<fE	3
  :!6!6?:v.z"Z!IJgn*+#W^%9:*
$ $YYz%:%:FC:v.z"z"Z dm$/)
kE E EFN= = = = = = = = = =r%   r   c                       e Zd ZdZdZdZddgZg dZg dZdZ	 e
d	          Z e
d
          Z e
d          Z e
d          Z e
d          Zh dZd ZdS )r   a(  
    For JSON data structures.

    Javascript-style comments are supported (like ``/* */`` and ``//``),
    though comments are not part of the JSON specification.
    This allows users to highlight JSON as it is used in the wild.

    No validation is performed on the input JSON document.
    JSONzhttps://www.json.orgjsonzjson-object)z*.jsonz*.jsonlz*.ndjsonzPipfile.lock)zapplication/jsonzapplication/json-objectzapplication/x-ndjsonzapplication/jsonlzapplication/json-seqz1.5z-0123456789z.eE+truefalsenull0123456789abcdefABCDEFz{}[],>   	
 c           	   #   ,	  K   d}d}d}d}d}d}d}d}	d}
d}d}d}d}g }t          |          D ]p\  }}|rk|r|| j        v r
|dz  }|sd}nUd}d}nP|r|dk    rd}nEd}nB|dk    rd}n9|dk    r3|                    |t          j        |||dz            f           d}d}d}s|rJ|| j        v r|r&|                    |t          |||         f           n|t          |||         fV  d}n|r'|| j        v r|t          j	        |||         fV  d}ny|rR|| j
        v r|| j        v rd}|r|t          j        |||         fV  n|t          j        |||         fV  d}d}n%|	r#|| j        v rI|t           |||         fV  d}	n |
rQ|d	k    rk|r+|                    |t"          j        |||         f           n|t"          j        |||         fV  d}
n|rc|d
k    rd}nX|rVd}|dk    rN|r.|                    |t"          j        |||dz            f           n|t"          j        |||dz            fV  d}|rFd}|dk    rd}
'|d
k    rd}1|E d{V  |                                 |t*          |||         fV  |}|dk    rd}m|| j        v rd}z|dv r |E d{V  |                                 d}|| j
        v r |E d{V  |                                 d}|dk    rH|D ]-\  }}}|t          j        u r|t,          j        |fV  &|||fV  .|                                 d}	|| j        v r |E d{V  |                                 d}	>|dk    rd}H|E d{V  |                                 |t*          |fV  r|E d{V  |r|t*          ||d         fV  dS |r|t          j        ||d         fV  dS |r|t          j        ||d         fV  dS |r|t          j	        ||d         fV  dS |r|t          ||d         fV  dS |	r|t           ||d         fV  dS |
r|t"          j        ||d         fV  dS |r|t*          ||d         fV  dS |r|t*          ||d         fV  dS dS )zParse JSON data.Fr   rQ   u   \Trm   r   */N>   fnt:)	enumeratehexadecimalsrL   r   Doublewhitespacesr   	constantsr
   r~   integersfloatsr   FloatIntegerpunctuationsr   r   rw   	Multilineclearr	   r   rx   )r    r:   	in_string	in_escapein_unicode_escapein_whitespacein_constant	in_numberin_floatin_punctuationin_comment_singlein_comment_multilineexpecting_second_comment_openerexpecting_second_comment_closerr3   queuestop	character_start_token_texts                        r$   rp   z JsonLexer.get_tokens_unprocessed  sV      			!$*/'*/'( ( j	. j	.OD) m5$ * D$555)Q.)0 .(-I,-)$)		 * C'',-))$)		$&& $II#%%LL%U4!8^8L!MNNN %I %I()% R5 000 >LL%T%*5E!FGGGGT%*-===== %  G5..W-tE$J/?????#  ?5--$+--#H BtE$J/??????eDj1AAAAA!	    05 111[$uTz*:::::!& # (5$$ BLL%eDj9I!JKKKKeDj1AAAAA$)!! & 5##6:334 56;3 C''  Q!LL%1BDtVWxDX)YZZZZ"'):Dtax<P"PPPP/4,0 527/##(,%#%%+/( !       UDt$44444 EC 		d... $o--        "dm++         		c!!-2 4 4)FFE ..$dh55555$fe33333!%d///        !%c!!26// !       UI-----  	-UVV,,,,,, 	-tEFF|333333 	-eff555555 	-)4<777777 		-T%&&\111111 	-d566l222222 	-eff555555! 	-UVV,,,,,,, 	-UVV,,,,,,	- 	-r%   N)r&   r'   r(   r)   rq   rr   rs   rt   ru   rv   setr   r   r   r   r   r   rp   r=   r%   r$   r   r     s          D
 C}%GAAAI E  E  EIM s=!!HS[[FO$$I3/00L3w<<L:::Ke- e- e- e- e-r%   r   c                   &    e Zd ZdZdZg Zg Zg ZdZdS )r   z
    For JSON data structures (with missing object curly braces).

    .. deprecated:: 2.8.0

       Behaves the same as `JsonLexer` now.
    JSONBareObjectz2.2N)	r&   r'   r(   r)   rq   rs   rt   ru   rv   r=   r%   r$   r   r     s3          DGIIMMMr%   r   c                   Z     e Zd ZdZdZdZddgZdgZdgZdZ	d	 d
D             Z
 fdZ xZS )r   z"
    For JSON-LD linked data.
    zJSON-LDzhttps://json-ld.org/jsonldzjson-ldz*.jsonldzapplication/ld+jsonz2.0c                     h | ]}d | d	S )z"@rm   r=   ).0keywords     r$   	<setcomp>zJsonLdLexer.<setcomp>  s0        	W  r%   )base	containerr9   	directiongraphidimportincludedindexr   languagelistnestnoneprefix	propagate	protectedreverser   typevalueversionvocabc              #      K   t                                          |          D ]6\  }}}|t          j        u r|| j        v r|t          j        |fV  /|||fV  7d S r1   )r   rp   r   rx   json_ld_keywords	Decorator)r    r:   r3   tokenr   r#   s        r$   rp   z"JsonLdLexer.get_tokens_unprocessed  s      #(77#A#A$#G#G 	* 	*E5%  Ud.C%C%CT^U22222UE)))))		* 	*r%   )r&   r'   r(   r)   rq   rr   rs   rt   ru   rv   r   rp   r*   r+   s   @r$   r   r     s          D
 C#GI&'IM 
  :* * * * * * * * *r%   r   N)r)   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r   r=   r%   r$   <module>r      s                $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ K
J
J( ( ( ( (| ( ( (S= S= S= S= S=" S= S= S=lF- F- F- F- F- F- F- F-R    )    .* .* .* .* .*) .* .* .* .* .*r%   