
    MhH                        d Z ddlZddlmZ ddlmZ dgZej        j        Z	ej
        j        Zej        j        Zej        j        Zej        j        Zej        Zej        j        Zej        Zej        Zej        Zej        j        Zej        Zd3dZ  G d de          Z! G d	 d
          Z" G d d          Z# G d d          Z$ G d 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) G d de%          Z G d de%          Z* G d d           Z+ G d! d"e%          Z, G d# d$e%          Z- G d% d&          Z. G d' d(e.          Z/ G d) d*e.          Z0 G d+ d,e.          Z1 G d- d.e.          Z2 G d/ d0e2          Z3 G d1 d2          Z4dS )4z
    pygments.lexers.robotframework
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for Robot Framework.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer)TokenRobotFrameworkLexer c                 r    |                                  } |dz   D ]}|| v r|                     |d          } | S )N r   )lowerreplace)stringremovechars      ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/robotframework.py	normalizer   /   sD    \\^^F . .6>>^^D"--FM    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dS )r   zh
    For Robot Framework test data.

    Supports both space and pipe separated plain text formats.
    RobotFrameworkzhttp://robotframework.orgrobotframeworkz*.robotz
*.resourceztext/x-robotframeworkz1.6c                 >    d|d<   d|d<   t          j        | fi | d S )N   tabsizezUTF-8encoding)r   __init__)selfoptionss     r   r   zRobotFrameworkLexer.__init__D   s4    	%
t''w'''''r   c              #   2  K   t                      }t                      }d}|                                D ]a}|                    |          D ]I\  }}|                    ||          D ]-\  }}|r&||t	          |          fV  |t          |          z  }.Jbd S Nr   )RowTokenizerVariableTokenizer
splitlinestokenizestrlen)r   textrow_tokenizervar_tokenizerindexrowvaluetokens           r   get_tokens_unprocessedz*RobotFrameworkLexer.get_tokens_unprocessedI   s      $)++??$$ 	, 	,C - 6 6s ; ; , ,u$1$:$:5%$H$H , ,LE5 ,#UCJJ6666U+,,	, 	,r   N)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedr   r*    r   r   r   r   7   sg         
 D
%C GL)I()IM( ( (
	, 	, 	, 	, 	,r   c                       e Zd Zd Zd ZdS )r   c              #      K   t          |d          }|j        dk     s|t          t          fv r||fV  d S |                     |||          D ]\  }}|r||fV  d S )Nz$@%&identifiersr   )VariableSplitterstartCOMMENTERROR	_tokenize)r   r   r)   varr(   s        r   r    zVariableTokenizer.tokenizeW   s      v6:::9q==Egu%555%-F NN3>> 	# 	#LE5 #Ul"""	# 	#r   c              #     K   |d |j                  }||fV  |j        dz   t          fV  |                     |j        t
                    E d {V  dt          fV  |j        <dt          fV  |                     |j        t
                    E d {V  dt          fV  |                     ||j        d          |          E d {V  d S )N{}[])r;   
identifierSYNTAXr    baseVARIABLEr&   end)r   r?   r   
orig_tokenbefores        r   r>   zVariableTokenizer._tokenize`   s      

#j    ns"F****==84444444446k9 v+}}SY999999999v+==!1:>>>>>>>>>>>r   N)r+   r,   r-   r    r>   r5   r   r   r   r   U   s2        # # #
? 
? 
? 
? 
?r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )r   c                     t                      | _        t                      | _        t	                      }t          |j                  }t                      }t                      }|||||||||||||d| _	        d S )N)settingssettingmetadata	variablesvariable	testcasestestcasetaskstaskkeywordskeyworduserkeywordsuserkeyword)
UnknownTable_tableRowSplitter	_splitterTestCaseTableSettingTableset_default_templateVariableTableKeywordTable_tables)r   rS   rN   rQ   rW   s        r   r   zRowTokenizer.__init__o   sx    "nn$!OO		 >??!OO	>>$,$,%.I%.I!*I$,(0K Kr   c              #     K   d}d}t          | j                            |                    D ]\  }}t          |dz
  d          \  }}|                    d          rd}n7|dk    r1|                    d          r|                     |          | _        d}|                     |||||          E d {V  | j                                         d S )NF   r   #Tr   *)		enumerater^   splitdivmod
startswith_start_tabler\   r>   end_row)r   r'   	commentedheadingr&   r(   	separators          r   r    zRowTokenizer.tokenize~   s     	%dn&:&:3&?&?@@ 		: 		:LE5%eAgq11E9$$  		! 0 0 5 5"//66~~eUI&/: : : : : : : : : :r   c                 r    t          |d          }| j                            |t                                S )Nrh   r   )r   rd   getr[   )r   headerr/   s      r   rm   zRowTokenizer._start_table   s0    ,,,|lnn555r   c              #      K   |r|t           fV  d S |r|t          fV  d S |r|t          fV  d S | j                            ||          E d {V  d S N)r<   	SEPARATORHEADINGr\   r    )r   r(   r&   ro   rq   rp   s         r   r>   zRowTokenizer._tokenize   s       	:.      	:"""""" 	:.     {++E599999999999r   N)r+   r,   r-   r   r    rm   r>   r5   r   r   r   r   m   sS        K K K  6 6 6: : : : :r   r   c                   `    e Zd Z ej        d          Z ej        d          Zd Zd Zd Z	dS )r]   z( {2,})z((?:^| +)\|(?: +|$))c              #   z   K   |                     d          r| j        p| j        } ||          E d {V  dV  d S )Nz| 
)rl   _split_from_pipes_split_from_spaces)r   r'   splitters      r   rj   zRowSplitter.split   sZ      NN4((CT-C /. 	8C==       




r   c              #   R   K   dV  | j                             |          E d {V  d S )Nr   )_space_splitterrj   )r   r'   s     r   r~   zRowSplitter._split_from_spaces   s>      '--c22222222222r   c              #     K   | j                             |d          \  }}}|V  | j                             |          rA| j                             |d          \  }}}|V  |V  | j                             |          A|V  d S Nrf   )_pipe_splitterrj   search)r   r'   _rq   restcells         r   r}   zRowSplitter._split_from_pipes   s      !066sA>>9d!((.. 	$($7$=$=dA$F$F!D)TJJJOOO !((.. 	 




r   N)
r+   r,   r-   recompiler   r   rj   r~   r}   r5   r   r   r]   r]      sd         bj++ORZ 788N  3 3 3    r   r]   c                   *    e Zd ZdZd Zd Zd Zd ZdS )	TokenizerNc                     d| _         d S r   )_indexr   s    r   r   zTokenizer.__init__   s    r   c                     |                      || j                  }| xj        dz  c_        t          |t          t                              r||fg}|S r   )r>   r   
isinstancetyper   )r   r(   values_and_tokenss      r   r    zTokenizer.tokenize   sV     NN5$+>>q'e55 	="'):!; <  r   c                 f    t          |t          | j                  dz
            }| j        |         S r   )minr"   _tokensr   r(   r&   s      r   r>   zTokenizer._tokenize   s-    E3t|,,q011|E""r   c                     |                     d          r|d d                                         }t          |d          }|j        dk    o|j        t          |          k    S )N=z$@&r8   r   )endswithstripr:   r;   rI   r"   )r   r(   r?   s      r   
_is_assignzTokenizer._is_assign   s_    >># 	'#2#J$$&&Eu%888yA~7#'SZZ"77r   )r+   r,   r-   r   r   r    r>   r   r5   r   r   r   r      sU        G  ! ! !# # #8 8 8 8 8r   r   c                       e Zd ZefZdS )CommentN)r+   r,   r-   r<   r   r5   r   r   r   r      s        jGGGr   r   c                   4    e Zd ZeefZdZdZdZdZ	ddZ
d ZdS )Setting)
suitesetupsuitepreconditionsuiteteardownsuitepostcondition	testsetup	tasksetuptestpreconditiontestteardowntaskteardowntestpostconditiontesttemplatetasktemplate)libraryresourcerQ   )documentationrP   	forcetagsdefaulttagstesttimeouttasktimeoutNc                 H    t                               |            || _        d S rw   )r   r   _template_setter)r   template_setters     r   r   zSetting.__init__   s$    4    /r   c                    |dk    r| j         r|                      |           |dk    r\t          |          }|| j        v rt          d          | _        nO|| j        v rt                      | _        n2|| j        vrt          S n!| j        r| j        	                    |          S t                              | ||          S )Nrf   r   F)support_assign)r   r   _keyword_settingsKeywordCall_custom_tokenizer_import_settingsImportSetting_other_settingsr=   r    r   r>   )r   r(   r&   
normalizeds       r   r>   zSetting._tokenize   s    A::$/:!!%(((A::"5))JT333)4E)J)J)J&&t444)6&&4#777 8# 	:)225999""4666r   rw   )r+   r,   r-   SETTINGARGUMENTr   r   r   r   r   r   r>   r5   r   r   r   r      s_        !Gm <4O0 0 0 07 7 7 7 7r   r   c                       e Zd ZeefZdS )r   N)r+   r,   r-   IMPORTr   r   r5   r   r   r   r      s        x GGGr   r   c                        e Zd ZdZdZdZd ZdS )TestCaseSetting)setuppreconditionteardownpostconditiontemplater5   )r   tagstimeoutc                     |dk    rAt                               | |dd         |          }dt          f|dd         |fdt          fgS t                               | ||          S )Nr   rf   r   rC   rD   )r   r>   rF   )r   r(   r&   r   s       r   r>   zTestCaseSetting._tokenize   sd    A::$$T52;>>D&ME!B$K#6fFF  ue444r   N)r+   r,   r-   r   r   r   r>   r5   r   r   r   r      s6        %:O5 5 5 5 5r   r   c                       e Zd ZdZdZdS )KeywordSetting)r   )r   	argumentsreturnr   r   N)r+   r,   r-   r   r   r5   r   r   r   r      s        %QOOOr   r   c                       e Zd ZeefZd ZdS )Variablec                 ~    |dk    r|                      |          st          S t                              | ||          S r   )r   r=   r   r>   r   s      r   r>   zVariable._tokenize  s8    A::dooe44:L""4666r   N)r+   r,   r-   rF   r   r   r>   r5   r   r   r   r     s-        x G7 7 7 7 7r   r   c                   $    e Zd ZeefZddZd ZdS )r   Tc                 X    t                               |            | | _        d| _        d S r   )r   r   _keyword_found_assigns)r   r   s     r   r   zKeywordCall.__init__  s,    4   "00r   c                    | j         s,|                     |          r| xj        dz  c_        t          S | j         r$t                              | ||| j        z
            S d| _         t                                          |t                    S )Nrf   T)	r   r   r   rF   r   r>   GherkinTokenizerr    KEYWORDr   s      r   r>   zKeywordCall._tokenize  s    " 	tu'='= 	MMQMMM 	K&&tUEDM4IJJJ"!!**5':::r   N)T)r+   r,   r-   r   r   r   r   r>   r5   r   r   r   r     sA        !G   
; ; ; ; ;r   r   c                   @    e Zd Z ej        dej                  Zd ZdS )r   z^(Given|When|Then|And|But) c                     | j                             |          }|s||fgS |                                }|d |         t          f||d          |fgS rw   )_gherkin_prefixmatchrI   GHERKIN)r   r(   r)   r   rI   s        r   r    zGherkinTokenizer.tokenize"  s_    $**511 	$EN##iikkttg&stte(<==r   N)r+   r,   r-   r   r   
IGNORECASEr   r    r5   r   r   r   r     s9         bj!>NNO> > > > >r   r   c                       e Zd ZefZdS )TemplatedKeywordCallN)r+   r,   r-   r   r   r5   r   r   r   r   *  s        kGGGr   r   c                       e Zd Zd Zd ZdS )ForLoopc                 H    t                               |            d| _        d S NF)r   r   _in_argumentsr   s    r   r   zForLoop.__init__0  s$    4   "r   c                 j    | j         rt          pt          }|                                dv rd| _         |S )N)INzIN RANGET)r   r   rF   upper)r   r(   r&   r)   s       r   r>   zForLoop._tokenize4  s5    "/x96;;==...!%Dr   N)r+   r,   r-   r   r>   r5   r   r   r   r   .  s2        # # #    r   r   c                   8    e Zd ZdZddZd Zd Zd Zd Zd Z	dS )	_TableNc                 T    |                                  | _        || _        g | _        d S rw   )_tokenizer_class
_tokenizer_prev_tokenizer_prev_values_on_row)r   prev_tokenizers     r   r   z_Table.__init__>  s+    //11-#%   r   c              #      K   |                      ||          r| j        | _        |t          fV  n|                     ||          E d {V  | j                            |           d S rw   )
_continuesr   r   rF   r>   r   appendr   s      r   r    z_Table.tokenizeC  s|      ??5%(( 	4"2DO-~~eU333333333 ''.....r   c                 P     |dk    ot           fd j        D                       S )Nz...c              3   B   K   | ]}                     |          V  d S rw   )	_is_empty).0tr   s     r   	<genexpr>z$_Table._continues.<locals>.<genexpr>L  sK       &I &I*+ '+nnQ&7&7 &I &I &I &I &I &Ir   )allr   r   s   `  r   r   z_Table._continuesK  sT    ~ I# &I &I &I &I/3/G&I &I &I #I #I 	Ir   c                 
    |dv S )N)r   \r5   r   r(   s     r   r   z_Table._is_emptyO  s    
""r   c                 6    | j                             |          S rw   )r   r    r   s      r   r>   z_Table._tokenizeR  s    ''...r   c                 <    |                      | j                   d S N)r   )r   r   r   s    r   rn   z_Table.end_rowU  s    T_55555r   rw   )
r+   r,   r-   r   r   r    r   r   r>   rn   r5   r   r   r   r   ;  s|        & & & &
/ / /I I I# # #/ / /6 6 6 6 6r   r   c                       e Zd ZeZd ZdS )r[   c                     dS r   r5   r   s      r   r   zUnknownTable._continues\      ur   N)r+   r,   r-   r   r   r   r5   r   r   r[   r[   Y  s)            r   r[   c                       e Zd ZeZdS )rb   N)r+   r,   r-   r   r   r5   r   r   rb   rb   `  s        r   rb   c                   &    e Zd ZeZddZd Zd ZdS )r`   Nc                 J    t                               | |           || _        d S rw   )r   r   r   )r   r   r   s      r   r   zSettingTable.__init__g  s$    n--- /r   c                     |dk    r,t          |          dk    rt          | j                  | _        t                              | ||          S )Nr   r   )r   r   r   r   r   r>   r   s      r   r>   zSettingTable._tokenizek  sG    A::)E**n<<%d&;<<DOeU333r   c                 H    |                      | j        | j                   d S r  )r   r   r   r   s    r   rn   zSettingTable.end_rowp  s#    d+DOLLLLLr   rw   )r+   r,   r-   r   r   r   r>   rn   r5   r   r   r`   r`   d  sQ        0 0 0 04 4 4
M M M M Mr   r`   c                   `    e Zd ZeZdZdZed             Zd Z	d Z
d Zd Zd Zd Zd	 Zd
 ZdS )r_   Nc                 L    | j         s| j        r| j         durt          S t          S r   )_test_template_default_templater   r   r   s    r   r   zTestCaseTable._tokenizer_classy  s1     	(4#9 	(#'#6e#C#C''r   c                 F    |dk    ot                               | ||          S r   )r   r   r   s      r   r   zTestCaseTable._continues  s#    qyBV..tUEBBBr   c                 ,   |dk    r0|rd | _         t                                          |t                    S |dk    rj|                     |          rU|                     |          r'd| _         |                     | j                  | _        n|                                 | _        |dk    r(| 	                    |          rt                      | _        |dk    r|                     |          r
|t          fgS t                              | ||          S )Nr   rf   F)r  r   r    
TC_KW_NAME_is_setting_is_template_setting_classset_test_templater   _is_for_loopr   r   rF   r   r>   r   s      r   r>   zTestCaseTable._tokenize  s   A:: +&*##%%..ujAAAA::$**511:  '' 8&+#"&"5"5d6L"M"M"&"5"5"7"7A::$++E22:%iiDOA::$..//:FO$$eU333r   c                 V    |                     d          o|                    d          S )NrC   rD   )rl   r   r  s     r   r  zTestCaseTable._is_setting  s'    $$<)<)<<r   c                 (    t          |          dk    S )Nz
[template]r   r  s     r   r  zTestCaseTable._is_template  s    <//r   c                 V    |                     d          ot          |d          dk    S )N:rs   for)rl   r   r  s     r   r  zTestCaseTable._is_for_loop  s-    $$N5)E)E)E)NNr   c                 :    |                      |          | _        d S rw   )_is_template_setr  r   r   s     r   r  zTestCaseTable.set_test_template  s    "33H==r   c                 :    |                      |          | _        d S rw   )r   r  r!  s     r   ra   z"TestCaseTable.set_default_template  s    !%!6!6x!@!@r   c                 $    t          |          dvS )N)r   r   nonez${empty}r  r!  s     r   r   zTestCaseTable._is_template_set  s    ""*HHHr   )r+   r,   r-   r   r  r  r  propertyr   r   r>   r  r  r  r  ra   r   r5   r   r   r_   r_   t  s        $NN  XC C C4 4 4"= = =0 0 0O O O> > >A A AI I I I Ir   r_   c                       e Zd ZeZeZd ZdS )rc   c                     dS r   r5   r  s     r   r  zKeywordTable._is_template  r  r   N)r+   r,   r-   r   r   r   r  r  r5   r   r   rc   rc     s.        "#N    r   rc   c                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )r:   c                     d | _         d | _        d | _        d| _        d| _        || _        d| _        	 |                     |           |                                  d S # t          $ r Y d S w xY w)Nr   F)
rE   rG   r&   r;   rI   _identifiers_may_have_internal_variables_split	_finalize
ValueError)r   r   r9   s      r   r   zVariableSplitter.__init__  s    	

',1)	KK NN  	 	 	DD	s   A 
A,+A,c                 R    | j         r|                    | j                  S | j        S rw   )r+  replace_stringrG   )r   rQ   s     r   get_replaced_basez"VariableSplitter.get_replaced_base  s+    , 	7++DI666yr   c                 x   | j         d         | _        d                    | j         dd                   | _        | j        t          | j                   z   | _        |                                 rKd                    | j        dd                   | _	        | xj        t          | j                  z  c_        d S d S )Nr   r   r   r   rf   )
_variable_charsrE   joinrG   r;   r"   rI    _has_list_or_dict_variable_index#_list_and_dict_variable_index_charsr&   r   s    r   r-  zVariableSplitter._finalize  s    .q1GGD02677	:D$8 9 990022 	F!I!B$!OPPDJHHDDEEEHHHH	F 	Fr   c                 2    | j         o| j         d         dk    S )Nr   rD   )r6  r   s    r   r5  z1VariableSplitter._has_list_or_dict_variable_index  s$    7 @4R8C?	@r   c                    |                      |          \  }}|| _        d| _        | j        | _        ||         dg| _        g | _        || _        |dz  }t          ||d                    D ]Q\  }}||z  }	 |                     ||           n# t          $ r Y  d S w xY w||k    r| 
                                s d S Rd S )Nrf   rA   r   )_find_variabler;   _open_curly_variable_state_stater3  r6  _stringri   StopIteration_scanning_list_variable_index)r   r   start_index	max_indexr&   r   s         r   r,  zVariableSplitter._split  s    !%!4!4V!<!<Y 
* &{ 3S9350q$VKLL%9:: 	 	KE4[ ED%((((    ""4+M+M+O+O"	 	s   7B
BBc                 ,    | j         | j        | j        fv S rw   )r<  "_waiting_list_variable_index_state_list_variable_index_stater   s    r   r?  z.VariableSplitter._scanning_list_variable_index  s$    {tF#>@ @ 	@r   c                    |                     d          }|dk    rt          d          |                     ||          r|                     |d |                   S |                     |d|          }|dk    rt          d          ||fS )NrB   r   zNo variable end foundrf   zNo variable start found)rfindr.  _is_escapedr9  _find_start_index)r   r   max_end_indexr@  s       r   r9  zVariableSplitter._find_variable  s    S))B4555FM22 	?&&vn}n'=>>>,,VQFF"6777M))r   c                     |                     d||          dz
  }|dk     rdS |                     ||          r|S |                     ||dz   |          S )NrA   rf   r   r   r   )find_start_index_is_okrH  )r   r   r;   rI   r&   s        r   rH  z"VariableSplitter._find_start_index  sc    C,,q01992""6511 	L%%feAgs;;;r   c                 N    ||         | j         v o|                     ||           S rw   )r*  rG  )r   r   r&   s      r   rL  z#VariableSplitter._start_index_is_ok  s1    e} 11 0  ///	0r   c                 n    d}|dk    r,||dz
           dk    r|dz  }| }|dk    r||dz
           dk    |S )NFr   rf   r   r5   )r   r   r&   escapeds       r   rG  zVariableSplitter._is_escaped   sV    aiiF57Ot33QJE!kG aiiF57Ot33 r   c                 6   | j                             |           |dk    ra|                     | j        |          sF| xj        dz  c_        | j        dk    r)|                                 st          | j        | _        d S d S || j	        v r| j
        | _        d S d S )NrB   rf   r   )r3  r   rG  r=  r:  _is_list_or_dict_variabler>  rC  r<  r*  _internal_variable_start_stater   r   r&   s      r   r;  z VariableSplitter._variable_state  s    ##D)))3;;t//eDD;!1$$5577 (''"E %$ T&&&=DKKK '&r   c                      | j         d         dv S )Nr   )@&)r3  r   s    r   rQ  z*VariableSplitter._is_list_or_dict_variable  s    #A&)33r   c                     | j         | _        |dk    r3| j                            |           | xj        dz  c_        d| _        d S |                      ||           d S )NrA   rf   T)r;  r<  r3  r   r:  r+  rS  s      r   rR  z/VariableSplitter._internal_variable_start_state  sj    *3;; ''---!04D---  u-----r   c                 l    |dk    rt           | j                            |           | j        | _        d S )NrC   )r>  r6  r   rD  r<  rS  s      r   rC  z3VariableSplitter._waiting_list_variable_index_state  s6    3;;077===5r   c                 T    | j                             |           |dk    rt          d S )NrD   )r6  r   r>  rS  s      r   rD  z+VariableSplitter._list_variable_index_state$  s/    077===3;; ;r   N)r+   r,   r-   r   r1  r-  r5  r,  r?  r9  rH  rL  rG  r;  rQ  rR  rC  rD  r5   r   r   r:   r:     s            
F F F@ @ @  $@ @ @	* 	* 	*< < <0 0 0  	> 	> 	>4 4 4. . .6 6 6         r   r:   )r   )5r.   r   pygments.lexerr   pygments.tokenr   __all__GenericHeadingry   Keyword	Namespacer   Namer   
Subheadingr  Functionr   Stringr   r   rH   r   r<   Punctuationrx   rF   Emphr   Errorr=   r   r   r   r   r]   r   r   r   r   r   r   r   r   r   r   r[   rb   r`   r_   rc   r:   r5   r   r   <module>rh     s   0 
			                         
! -

-
!		]%

*
<:
-			
-
   , , , , ,% , , ,<? ? ? ? ? ? ? ?0,: ,: ,: ,: ,: ,: ,: ,:^       08 8 8 8 8 8 8 80    i   7 7 7 7 7i 7 7 7<! ! ! ! !I ! ! !
5 
5 
5 
5 
5g 
5 
5 
5R R R R R_ R R R
7 7 7 7 7y 7 7 7; ; ; ; ;) ; ; ;$> > > > > > > >    9   
 
 
 
 
i 
 
 
6 6 6 6 6 6 6 6<    6            F      M M M M M6 M M M 0I 0I 0I 0I 0IF 0I 0I 0If    =   v  v  v  v  v  v  v  v  v  v r   