
    ,h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j2                  Zej2                  Zej                  j8                  Zej<                  Zd2d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. d/e2      Z3 G d0 d1      Z4y)3z
    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RobotFrameworkLexerc                 h    | j                         } |dz   D ]  }|| v s| j                  |d      }  | S )N  )lowerreplace)stringremovechars      `/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/lexers/robotframework.py	normalizer   /   s>    \\^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y)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|d<   t        j                  | fi | y )N   tabsizezUTF-8encoding)r   __init__)selfoptionss     r   r   zRobotFrameworkLexer.__init__D   s'    	%
t'w'r   c              #   
  K   t               }t               }d}|j                         D ]V  }|j                  |      D ]@  \  }}|j                  ||      D ]&  \  }}|s	||t	        |      f |t        |      z  }( B X y w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 ,LE5#UCJ66U+,,	,s   AB%BN)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedr   r*    r   r   r   r   7   s<    
 D
%C GL)I()IM(
	,r   c                       e Zd Zd Zd Zy)r   c              #      K   t        |d      }|j                  dk  s|t        t        fv r||f y | j	                  |||      D ]  \  }}|s	||f  y w)Nz$@%&identifiersr   )VariableSplitterstartCOMMENTERROR	_tokenize)r   r   r)   varr(   s        r   r    zVariableTokenizer.tokenizeW   sc     v6:99q=Egu%55%- NN3> 	#LE5Ul"	#s   AA	Ac              #     K   |d |j                    }||f |j                  dz   t        f | j                  |j                  t
              E d {    dt        f |j                  <dt        f | j                  |j                  t
              E d {    dt        f | j                  ||j                  d  |      E d {    y 7 ~7 87 	w)N{}[])r;   
identifierSYNTAXr    baseVARIABLEr&   end)r   r?   r   
orig_tokenbefores        r   r>   zVariableTokenizer._tokenize`   s     
#j  nns"F**==84446k99 v+}}SYY999v+==!1:>>> 	5 :>s7   ACCACC0CCCCCN)r+   r,   r-   r    r>   r5   r   r   r   r   U   s    #
?r   r   c                   $    e Zd Zd Zd Zd Zd Zy)r   c                     t               | _        t               | _        t	               }t        |j                        }t               }t               }|||||||||||||d| _	        y )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   sd    "n$!O		 > >?!O	>$,$,%.I%.I!*I$,(0Kr   c              #     K   d}d}t        | j                  j                  |            D ]v  \  }}t        |dz
  d      \  }}|j	                  d      rd}n.|dk(  r)|j	                  d      r| j                  |      | _        d}| j                  |||||      E d {    x | j                  j                          y 7 !w)NF   r   #Tr   *)		enumerater^   splitdivmod
startswith_start_tabler\   r>   end_row)r   r'   	commentedheadingr&   r(   	separators          r   r    zRowTokenizer.tokenize~   s     	%dnn&:&:3&?@ 		:LE5%eAgq1E9$ 	! 0 0 5"//6~~eUI&/: : :		: 	:s   BCB?"Cc                 d    t        |d      }| j                  j                  |t                     S )Nrh   r   )r   rd   getr[   )r   headerr/   s      r   rm   zRowTokenizer._start_table   s'    ,||ln55r   c              #      K   |r|t         f y |r|t        f y |r|t        f y | j                  j	                  ||      E d {    y 7 wN)r<   	SEPARATORHEADINGr\   r    )r   r(   r&   ro   rq   rp   s         r   r>   zRowTokenizer._tokenize   sH     . "". {{++E5999s   AA	A
AN)r+   r,   r-   r   r    rm   r>   r5   r   r   r   r   m   s    K6:r   r   c                   f    e Zd Z ej                  d      Z ej                  d      Zd Zd Zd Z	y)r]   z( {2,})z((?:^| +)\|(?: +|$))c              #      K   |j                  d      xr | j                  xs | j                  } ||      E d {    d y 7 	w)Nz| 
)rl   _split_from_pipes_split_from_spaces)r   r'   splitters      r   rj   zRowSplitter.split   sG     NN4(CT-C-C /.. 	C=  
 	!s   9AA
Ac              #   ^   K   d | j                   j                  |      E d {    y 7 w)Nr   )_space_splitterrj   )r   r'   s     r   r~   zRowSplitter._split_from_spaces   s%     ''--c222s   #-+-c              #     K   | j                   j                  |d      \  }}}| | j                   j                  |      rD| j                   j                  |d      \  }}}| | | j                   j                  |      rD| y wNrf   )_pipe_splitterrj   search)r   r'   _rq   restcells         r   r}   zRowSplitter._split_from_pipes   s     !0066sA>9d!!((.$($7$7$=$=dA$F!D)TJO !!((. 
s   BBBN)
r+   r,   r-   recompiler   r   rj   r~   r}   r5   r   r   r]   r]      s2     bjj+ORZZ 78N3r   r]   c                   (    e Zd ZdZd Zd Zd Zd Zy)	TokenizerNc                     d| _         y r   )_indexr   s    r   r   zTokenizer.__init__   s	    r   c                     | j                  || 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   sI     NN5$++>q'e5"'):!; <  r   c                 d    t        |t        | j                        dz
        }| j                  |   S r   )minr"   _tokensr   r(   r&   s      r   r>   zTokenizer._tokenize   s+    E3t||,q01||E""r   c                     |j                  d      r|d d j                         }t        |d      }|j                  dk(  xr |j                  t        |      k(  S )N=z$@&r8   r   )endswithstripr:   r;   rI   r"   )r   r(   r?   s      r   
_is_assignzTokenizer._is_assign   sN    >>##2J$$&Eu%8yyA~7#''SZ"77r   )r+   r,   r-   r   r   r    r>   r   r5   r   r   r   r      s    G!#8r   r   c                       e Zd ZefZy)CommentN)r+   r,   r-   r<   r   r5   r   r   r   r      s	    jGr   r   c                   2    e Zd ZeefZdZdZdZdZ	ddZ
d Zy)Setting)
suitesetupsuitepreconditionsuiteteardownsuitepostcondition	testsetup	tasksetuptestpreconditiontestteardowntaskteardowntestpostconditiontesttemplatetasktemplate)libraryresourcerQ   )documentationrP   	forcetagsdefaulttagstesttimeouttasktimeoutNc                 <    t         j                  |        || _        y rw   )r   r   _template_setter)r   template_setters     r   r   zSetting.__init__   s    4  /r   c                    |dk(  r| j                   r| j                  |       |dk(  r]t        |      }|| j                  v rt        d      | _        nY|| j
                  v rt               | _        n;|| j                  vr-t        S | j                  r| j                  j                  |      S t        j                  | ||      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&t444)6&4#7#77##))22599""466r   rw   )r+   r,   r-   SETTINGARGUMENTr   r   r   r   r   r   r>   r5   r   r   r   r      s4    !Gm <4O07r   r   c                       e Zd ZeefZy)r   N)r+   r,   r-   IMPORTr   r   r5   r   r   r   r      s    x Gr   r   c                       e Zd ZdZdZdZd Zy)TestCaseSetting)setuppreconditionteardownpostconditiontemplater5   )r   tagstimeoutc                     |dk(  r0t         j                  | |dd |      }dt        f|dd |fdt        fgS t         j                  | ||      S )Nr   rf   r   rC   rD   )r   r>   rF   )r   r(   r&   r   s       r   r>   zTestCaseSetting._tokenize   sX    A:$$T52;>D&ME!BK#6fFF  ue44r   N)r+   r,   r-   r   r   r   r>   r5   r   r   r   r      s    %:O5r   r   c                       e Zd ZdZdZy)KeywordSetting)r   )r   	argumentsreturnr   r   N)r+   r,   r-   r   r   r5   r   r   r   r      s    %QOr   r   c                       e Zd ZeefZd Zy)Variablec                 h    |dk(  r| j                  |      st        S t        j                  | ||      S r   )r   r=   r   r>   r   s      r   r>   zVariable._tokenize  s.    A:dooe4L""466r   N)r+   r,   r-   rF   r   r   r>   r5   r   r   r   r     s    x G7r   r   c                   "    e Zd ZeefZddZd Zy)r   c                 L    t         j                  |        | | _        d| _        y r   )r   r   _keyword_found_assigns)r   r   s     r   r   zKeywordCall.__init__  s"    4 "00r   c                    | j                   s,| j                  |      r| xj                  dz  c_        t        S | j                   r$t        j                  | ||| j                  z
        S d| _         t               j                  |t              S )Nrf   T)	r   r   r   rF   r   r>   GherkinTokenizerr    KEYWORDr   s      r   r>   zKeywordCall._tokenize  sn    ""tu'=MMQMM&&tUEDMM4IJJ"!**5'::r   N)T)r+   r,   r-   r   r   r   r   r>   r5   r   r   r   r     s    !G
;r   r   c                   L    e Zd Z ej                  dej
                        Zd Zy)r   z^(Given|When|Then|And|But) c                     | j                   j                  |      }|s||fgS |j                         }|d | t        f||d  |fgS rw   )_gherkin_prefixmatchrI   GHERKIN)r   r(   r)   r   rI   s        r   r    zGherkinTokenizer.tokenize"  sT    $$**51EN##iiktg&ste(<==r   N)r+   r,   r-   r   r   
IGNORECASEr   r    r5   r   r   r   r     s     bjj!>NO>r   r   c                       e Zd ZefZy)TemplatedKeywordCallN)r+   r,   r-   r   r   r5   r   r   r   r   *  s	    kGr   r   c                       e Zd Zd Zd Zy)ForLoopc                 <    t         j                  |        d| _        y NF)r   r   _in_argumentsr   s    r   r   zForLoop.__init__0  s    4 "r   c                 p    | j                   xr t        xs t        }|j                         dv rd| _         |S )N)INzIN RANGET)r   r   rF   upper)r   r(   r&   r)   s       r   r>   zForLoop._tokenize4  s3    ""/x96;;=..!%Dr   N)r+   r,   r-   r   r>   r5   r   r   r   r   .  s    #r   r   c                   6    e Zd ZdZddZd Zd Zd Zd Zd Z	y)	_TableNc                 J    | j                         | _        || _        g | _        y rw   )_tokenizer_class
_tokenizer_prev_tokenizer_prev_values_on_row)r   prev_tokenizers     r   r   z_Table.__init__>  s"    //1-#% r   c              #      K   | j                  ||      r| j                  | _        |t        f n| j	                  ||      E d {    | j
                  j                  |       y 7  wrw   )
_continuesr   r   rF   r>   r   appendr   s      r   r    z_Table.tokenizeC  sX     ??5%("22DO-~~eU333  ''. 4s   AA)A'!A)c                 N     |dk(  xr t         fd j                  D              S )Nz...c              3   @   K   | ]  }j                  |        y wrw   )	_is_empty).0tr   s     r   	<genexpr>z$_Table._continues.<locals>.<genexpr>L  s$      &I*+ '+nnQ&7 &Is   )allr   r   s   `  r   r   z_Table._continuesK  s3    ~ I# &I/3/G/G&I #I 	Ir   c                 
    |dv S )N)r   \r5   r   r(   s     r   r   z_Table._is_emptyO  s    
""r   c                 8    | j                   j                  |      S rw   )r   r    r   s      r   r>   z_Table._tokenizeR  s    ''..r   c                 <    | j                  | j                         y N)r   )r   r   r   s    r   rn   z_Table.end_rowU  s    T__5r   rw   )
r+   r,   r-   r   r   r    r   r   r>   rn   r5   r   r   r   r   ;  s'    &
/I#/6r   r   c                       e Zd ZeZd Zy)r[   c                      yr   r5   r   s      r   r   zUnknownTable._continues\      r   N)r+   r,   r-   r   r   r   r5   r   r   r[   r[   Y  s    r   r[   c                       e Zd ZeZy)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y)r`   Nc                 >    t         j                  | |       || _        y 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        j                  | ||      S )Nr   r   )r   r   r   r   r   r>   r   s      r   r>   zSettingTable._tokenizek  s<    A:)E*n<%d&;&;<DOeU33r   c                 R    | j                  | j                  | j                         y r  )r   r   r   r   s    r   rn   zSettingTable.end_rowp  s    d++DOOLr   rw   )r+   r,   r-   r   r   r   r>   rn   r5   r   r   r`   r`   d  s    04
Mr   r`   c                   X    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y)r_   Nc                 f    | 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  s-    4#9#9#'#6#6e#C''r   c                 >    |dkD  xr t         j                  | ||      S r   )r   r   r   s      r   r   zTestCaseTable._continues  s     qyBV..tUEBBr   c                    |dk(  r'|rd | _         t               j                  |t              S |dk(  r_| j	                  |      rN| j                  |      r(d| _         | j                  | j                        | _        n| j                         | _        |dk(  r | j                  |      rt               | _        |dk(  r| j                  |      r	|t        fgS t        j                  | ||      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:$**51  '&+#"&"5"5d6L6L"M"&"5"5"7A:$++E2%iDOA:$../FO$$eU33r   c                 J    |j                  d      xr |j                  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                 H    |j                  d      xr t        |d      dk(  S )N:rs   for)rl   r   r  s     r   r  zTestCaseTable._is_for_loop  s$    $N5)E)NNr   c                 0    | j                  |      | _        y rw   )_is_template_setr  r   r   s     r   r  zTestCaseTable.set_test_template  s    "33H=r   c                 0    | j                  |      | _        y 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  sP    $NN C4"=0O>AIr   r_   c                       e Zd ZeZeZd Zy)rc   c                      y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                   f    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y)r:   c                     d | _         d | _        d | _        d| _        d| _        || _        d| _        	 | j                  |       | j                          y # t        $ r Y y 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__  sf    	

',1)	KK NN  		s   A 	A! A!c                 h    | j                   r|j                  | j                        S | j                  S rw   )r+  replace_stringrG   )r   rQ   s     r   get_replaced_basez"VariableSplitter.get_replaced_base  s*    ,,++DII66yyr   c                 x   | j                   d   | _        dj                  | j                   dd       | _        | j                  t        | j                         z   | _        | j                         rLdj                  | j                  dd       | _	        | xj                  t        | j                        z  c_        y y )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0267	::D$8$8 99002!I!I!B!OPDJHHDDDEEH 3r   c                 B    | j                   xr | j                   d   dk(  S )Nr   rD   )r6  r   s    r   r5  z1VariableSplitter._has_list_or_dict_variable_index  s*    77 @44R8C?	@r   c                 T   | j                  |      \  }}|| _        d| _        | j                  | _        ||   dg| _        g | _        || _        |dz  }t        ||d        D ]5  \  }}||z  }	 | j	                  ||       ||k(  s$| j                         r5 y  y # t        $ r Y  y w xY w)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$VKL%9: 	KE4[ ED%( "4+M+M+O	 ! s   -B	B'&B'c                 J    | 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F#>>@ @ 	@r   c                     |j                  d      }|dk(  rt        d      | j                  ||      r| j                  |d |       S | j	                  |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FM2&&vn}'=>>,,VQF"677M))r   c                     |j                  d||      dz
  }|dk  ry| j                  ||      r|S | j                  ||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  sQ    C,q019""651L%%feAgs;;r   c                 N    ||   | j                   v xr | j                  ||       S rw   )r*  rG  )r   r   r&   s      r   rL  z#VariableSplitter._start_index_is_ok  s1    e} 1 11 0  //	0r   c                 \    d}|dkD  r$||dz
     dk(  r|dz  }| }|dkD  r||dz
     dk(  r|S )NFr   rf   r   r5   )r   r   r&   escapeds       r   rG  zVariableSplitter._is_escaped   sL    aiF57Ot3QJE!kG aiF57Ot3 r   c                 V   | j                   j                  |       |dk(  ri| j                  | j                  |      sM| xj                  dz  c_        | j                  dk(  r(| j                         st        | j                  | _        y y || j                  v r| j                  | _        y y )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!1$557''"EE % T&&&==DK '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(  r8| j                  j                  |       | xj                  dz  c_        d| _        y | j                  ||       y )NrA   rf   T)r;  r<  r3  r   r:  r+  rS  s      r   rR  z/VariableSplitter._internal_variable_start_state  sS    **3;  ''-!04D-  u-r   c                 r    |dk7  rt         | j                  j                  |       | j                  | _        y )NrC   )r>  r6  r   rD  r<  rS  s      r   rC  z3VariableSplitter._waiting_list_variable_index_state  s0    3;0077=55r   c                 P    | j                   j                  |       |dk(  rt        y )NrD   )r6  r   r>  rS  s      r   rD  z+VariableSplitter._list_variable_index_state$  s(    0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:     sP    
F@$@	*<0	>4.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 80i 7i 7<!I !
5g 
5R_ R
7y 7;) ;$> >9 
i 
6 6<6  F  M6 M 0IF 0If= v  v r   