Ë
    |í¼e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-2023 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      ú@/usr/lib/python3/dist-packages/pygments/lexers/robotframework.pyÚ	normalizer   /   s>   € Ø�\‰\‹^€FØ˜‘ò .ˆØ�6Š>Ø—^‘^ D¨"Ó-‰Fð.ð €Mó    c                   ó8   — e Zd ZdZdZdZdgZddgZdgZd„ Z	d	„ Z
y
)r   zƒ
    For Robot Framework test data.

    Supports both space and pipe separated plain text formats.

    .. versionadded:: 1.6
    ÚRobotFrameworkzhttp://robotframework.orgÚrobotframeworkz*.robotz
*.resourceztext/x-robotframeworkc                 óD   — d|d<   d|d<   t        j                  | fi |¤Ž y )Né   ÚtabsizezUTF-8Úencoding)r   Ú__init__)ÚselfÚoptionss     r   r   zRobotFrameworkLexer.__init__E   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_unprocessedJ   s�   è ø€ Ü$›ˆÜ)Ó+ˆØˆØ—?‘?Ó$ò 	,ˆCØ -× 6Ñ 6°sÓ ;ò ,‘��uØ$1×$:Ñ$:¸5À%Ó$Hò ,‘L�E˜5ÚØ# U¬C°«JÐ6Ò6Ø¤ U£Ñ+™ñ,ñ,ñ	,ùs   ‚ABÁ%BN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesr   r*   © r   r   r   r   7   s7   „ ñð €DØ
%€CØÐ €GØ˜LÐ)€IØ(Ð)€Iò(ó
	,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.tokenizeX   sc   è ø€ Ü˜v°6Ô:ˆØ�9‰9�qŠ=˜E¤g¬uÐ%5Ñ5Ø˜%�-ÒØØ ŸN™N¨3°¸Ó>ò 	#‰LˆE�5ÚØ˜U�lÓ"ñ	#ù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._tokenizea   s»   è ø€ Ø˜
˜Ÿ™Ð#ˆØ�jÐ Ò Ø�n‰n˜sÑ"¤FÐ*Ò*Ø—=‘= §¡¬8Ó4×4Ð4Ø”6ˆkÒØ�9‰9Ð Ø”v�+ÒØ—}‘} S§Y¡Y´Ó9×9Ð9Ø”v�+ÒØ—=‘= ¨¯©¨Ð!1°:Ó>×>Ñ>ð 	5øð :øà>ús7   ‚ACÁCÁACÂCÂ0CÃCÃCÃCÃCN)r+   r,   r-   r    r=   r4   r   r   r   r   V   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   rR   rM   rP   rV   s        r   r   zRowTokenizer.__init__p   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Â   è ø€ Øˆ	ØˆÜ% d§n¡n×&:Ñ&:¸3Ó&?Ó@ò 		:‰LˆE�5ä% e¨A¡g¨qÓ1ÑˆE�9Ø×Ñ Ô$Ø ‘	Ø˜!’ × 0Ñ 0°Ô 5Ø"×/Ñ/°Ó6�”Ø�Ø—~‘~ e¨U°IØ&/°ó:÷ :ñ :ð		:ð 	�‰×ÑÕð:ús   ‚BCÂB?Â"Cc                 ód   — t        |d¬«      }| j                  j                  |t        «       «      S )Nrg   ©r   )r   rc   ÚgetrZ   )r   Úheaderr/   s      r   rl   zRowTokenizer._start_tableŽ   s'   € Ü˜¨Ô,ˆØ�|‰|×Ñ ¤l£nÓ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&   rn   rp   ro   s         r   r=   zRowTokenizer._tokenize’   sH   è ø€ ÙØœ�.Ó ÙØœÐ"Ó"ÙØœ�.Ó à—{‘{×+Ñ+¨E°5Ó9×9Ò9ús   ‚AAÁ	AÁ
AN)r+   r,   r-   r   r    rl   r=   r4   r   r   r   r   n   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| ú
)rk   Ú_split_from_pipesÚ_split_from_spaces)r   r'   Úsplitters      r   ri   zRowSplitter.split¡   sG   è ø€ Ø—N‘N 4Ó(ÒC¨T×-CÑ-Cò /Ø×.Ñ.ð 	á˜C“=× Ð Ø‹
ð 	!ús   ‚9A»A¼
Ac              #   ó^   K  — d–— | j                   j                  |«      E d {  –—†  y 7 Œ­w)Nr   )Ú_space_splitterri   )r   r'   s     r   r}   zRowSplitter._split_from_spaces§   s%   è ø€ ØŠØ×'Ñ'×-Ñ-¨cÓ2×2Ò2ús   ‚#-¥+¦-c              #   ó  K  — | j                   j                  |d«      \  }}}|–— | j                   j                  |«      rD| j                   j                  |d«      \  }}}|–— |–— | j                   j                  |«      rŒD|–— y ­w©Nre   )Ú_pipe_splitterri   Úsearch)r   r'   Ú_rp   ÚrestÚcells         r   r|   zRowSplitter._split_from_pipes«   s„   è ø€ Ø!×0Ñ0×6Ñ6°s¸AÓ>Ñˆˆ9�dØŠØ×!Ñ!×(Ñ(¨Ô.Ø$(×$7Ñ$7×$=Ñ$=¸dÀAÓ$FÑ!ˆD�)˜TØŠJØŠOð ×!Ñ!×(Ñ(¨Õ.ð ‹
ùs   ‚BBÂBN)
r+   r,   r-   ÚreÚcompiler€   rƒ   ri   r}   r|   r4   r   r   r\   r\   �   s2   „ Ø �b—j‘j Ó+€OØ�R—Z‘ZÐ 7Ó8€Nòò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   € Ø ŸN™N¨5°$·+±+Ó>ÐØ�Š�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+   € Ü�Eœ3˜tŸ|™|Ó,¨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$@&r7   r   )ÚendswithÚstripr9   r:   rH   r"   )r   r(   r>   s      r   Ú
_is_assignzTokenizer._is_assignÆ   sN   € Ø�>‰>˜#ÔØ˜#˜2�J×$Ñ$Ó&ˆEÜ˜u°%Ô8ˆØ�y‰y˜A‰~Ò7 #§'¡'¬S°«ZÑ"7Ð7r   )r+   r,   r-   r•   r   r    r=   rœ   r4   r   r   r‹   r‹   µ   s   „ Ø€Gòò!ò#ó8r   r‹   c                   ó   — e Zd ZefZy)ÚCommentN)r+   r,   r-   r;   r•   r4   r   r   rž   rž   Í   s	   „ Øˆj�Gr   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ÚresourcerP   )ÚdocumentationrO   Ú	forcetagsÚdefaulttagsÚtesttimeoutÚtasktimeoutNc                 ó<   — t         j                  | «       || _        y rv   )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 )Nre   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Ü)4ÀEÔ)J�Õ&Ø˜t×4Ñ4Ñ4Ü)6«�Õ&Ø 4×#7Ñ#7Ñ7Ü�Ø×#Ò#Ø×)Ñ)×2Ñ2°5Ó9Ð9Ü×"Ñ" 4¨°Ó6Ð6r   rv   )r+   r,   r-   ÚSETTINGÚARGUMENTr•   r¹   r¼   r¾   r»   r   r=   r4   r   r   r    r    Ñ   s4   „ Ø˜Ð!€GðmÐð <Ðð4€OàÐó0ó7r   r    c                   ó   — e Zd ZeefZy)r½   N)r+   r,   r-   ÚIMPORTrÁ   r•   r4   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Útemplater4   )r¯   ÚtagsÚtimeoutc                 óš   — |dk(  r0t         j                  | |dd |«      }dt        f|dd |fdt        fgS t         j                  | ||«      S )Nr   re   r™   rB   rC   )r    r=   rE   )r   r(   r&   r‘   s       r   r=   zTestCaseSetting._tokenizeù   sX   € Ø�AŠ:Ü×$Ñ$ T¨5°°2¨;¸Ó>ˆDØœ&�M E¨!¨B K°Ð#6¸¼f¸ÐFÐFÜ× Ñ   u¨eÓ4Ð4r   N)r+   r,   r-   r¹   r¼   r¾   r=   r4   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¾   r4   r   r   rÏ   rÏ      s   „ Ø%ÐØQ�Or   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Š:˜dŸo™o¨eÔ4ÜˆLÜ×"Ñ" 4¨°Ó6Ð6r   N)r+   r,   r-   rE   rÁ   r•   r=   r4   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 )Nre   T)	r×   rœ   rØ   rE   r‹   r=   ÚGherkinTokenizerr    ÚKEYWORDr–   s      r   r=   zKeywordCall._tokenize  sn   € Ø×"Ò" t§¡°uÔ'=Ø�MŠM˜QÑ�MÜˆMØ×ÒÜ×&Ñ& t¨U°E¸D¿M¹MÑ4IÓJÐJØ"ˆÔÜÓ!×*Ñ*¨5´'Ó:Ð:r   N)T)r+   r,   r-   rÛ   rÁ   r•   r   r=   r4   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 rv   )Ú_gherkin_prefixÚmatchrH   ÚGHERKIN)r   r(   r)   rß   rH   s        r   r    zGherkinTokenizer.tokenize#  sT   € Ø×$Ñ$×*Ñ*¨5Ó1ˆÙØ˜E�NÐ#Ð#Ø�i‰i‹kˆØ�t˜�œgÐ&¨¨s¨t¨°eÐ(<Ð=Ð=r   N)r+   r,   r-   rˆ   r‰   Ú
IGNORECASErÞ   r    r4   r   r   rÚ   rÚ      s   „ Ø �b—j‘jÐ!>ÀÇÁÓN€Oó>r   rÚ   c                   ó   — e Zd ZefZy)ÚTemplatedKeywordCallN)r+   r,   r-   rÁ   r•   r4   r   r   rã   rã   +  s	   „ Øˆk�Gr   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__1  s   € Ü×Ñ˜4Ô Ø"ˆÕr   c                 óp   — | j                   xr t        xs t        }|j                  «       dv rd| _         |S )N)ÚINzIN RANGET)rè   rÁ   rE   Úupper)r   r(   r&   r)   s       r   r=   zForLoop._tokenize5  s3   € Ø×"Ñ"Ò/¤xÒ9´6ˆØ�;‰;‹=Ð.Ñ.Ø!%ˆDÔØˆr   N)r+   r,   r-   r   r=   r4   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 rv   )Ú_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rv   )Ú
_continuesrñ   rð   rE   r=   rò   Úappendr–   s      r   r    z_Table.tokenizeD  sX   è ø€ Ø�?‰?˜5 %Ô(Ø"×2Ñ2ˆDŒOØœ�-Óà—~‘~ e¨UÓ3×3Ð3Ø× Ñ ×'Ñ'¨Õ.ð 4ús   ‚AA)ÁA'Á!A)c                 óN   ‡ — |dk(  xr t        ˆ fd„‰ j                  D «       «      S )Nz...c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrv   )Ú	_is_empty)Ú.0Útr   s     €r   ú	<genexpr>z$_Table._continues.<locals>.<genexpr>M  s$   øè ø€ ò &IØ*+ð '+§n¡n°Q×&7ñ &Iùs   ƒ)Úallrò   r–   s   `  r   rõ   z_Table._continuesL  s3   ø€ Ø˜‰~ò I¤#ó &IØ/3×/GÑ/Gô&Ió #Ið 	Ir   c                 ó
   — |dv S )N)r   ú\r4   ©r   r(   s     r   rù   z_Table._is_emptyP  s   € Ø˜
Ð"Ð"r   c                 ó8   — | j                   j                  |«      S rv   )rð   r    r–   s      r   r=   z_Table._tokenizeS  s   € Ø�‰×'Ñ'¨Ó.Ð.r   c                 ó<   — | j                  | j                  ¬«       y ©N)ró   )r   rð   rŽ   s    r   rm   z_Table.end_rowV  s   € Ø�‰ T§_¡_ˆÕ5r   rv   )
r+   r,   r-   rï   r   r    rõ   rù   r=   rm   r4   r   r   rí   rí   <  s'   „ ØÐó&ò
/òIò#ò/ó6r   rí   c                   ó   — e Zd ZeZd„ Zy)rZ   c                  ó   — yrç   r4   r–   s      r   rõ   zUnknownTable._continues]  ó   € Ør   N)r+   r,   r-   rž   rï   rõ   r4   r   r   rZ   rZ   Z  s   „ ØÐór   rZ   c                   ó   — e Zd ZeZy)ra   N)r+   r,   r-   rÓ   rï   r4   r   r   ra   ra   a  s   „ ØÑr   ra   c                   ó$   — e Zd ZeZdd„Zd„ Zd„ Zy)r_   Nc                 ó>   — t         j                  | |«       || _        y rv   )rí   r   rµ   )r   r¶   ró   s      r   r   zSettingTable.__init__h  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._tokenizel  s<   € Ø�AŠ:œ) EÓ*¨nÒ<Ü% d×&;Ñ&;Ó<ˆDŒOÜ×Ñ  e¨UÓ3Ð3r   c                 óR   — | j                  | j                  | j                  ¬«       y r  )r   rµ   rð   rŽ   s    r   rm   zSettingTable.end_rowq  s   € Ø�‰�d×+Ñ+¸D¿O¹OˆÕLr   rv   )r+   r,   r-   r    rï   r   r=   rm   r4   r   r   r_   r_   e  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_classz  s-   € à×Ò 4×#9Ò#9Ø#'×#6Ñ#6¸eÑ#CÜ'Ð'ÜÐr   c                 ó>   — |dkD  xr t         j                  | ||«      S r   )rí   rõ   r–   s      r   rõ   zTestCaseTable._continues�  s    € Ø�q‰yÒBœV×.Ñ.¨t°U¸EÓ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   re   F)r  rÚ   r    Ú
TC_KW_NAMEÚ_is_settingÚ_is_templateÚ_setting_classÚset_test_templaterð   Ú_is_for_looprå   rù   rE   rí   r=   r–   s      r   r=   zTestCaseTable._tokenize„  sÍ   € Ø�AŠ:ÙØ&*�Ô#Ü#Ó%×.Ñ.¨u´jÓAÐAØ�AŠ:˜$×*Ñ*¨5Ô1Ø× Ñ  Ô'Ø&+�Ô#Ø"&×"5Ñ"5°d×6LÑ6LÓ"M�•à"&×"5Ñ"5Ó"7�”Ø�AŠ:˜$×+Ñ+¨EÔ2Ü%›iˆDŒOØ�AŠ:˜$Ÿ.™.¨Ô/ØœF�OÐ$Ð$Ü×Ñ  e¨UÓ3Ð3r   c                 óJ   — |j                  d«      xr |j                  d«      S )NrB   rC   )rk   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ú:rr   Úfor)rk   r   r   s     r   r  zTestCaseTable._is_for_loop›  s$   € Ø×Ñ Ó$ÒN¬°5ÀÔ)EÈÑ)NÐNr   c                 ó0   — | j                  |«      | _        y rv   )Ú_is_template_setr  ©r   rÊ   s     r   r  zTestCaseTable.set_test_templatež  s   € Ø"×3Ñ3°HÓ=ˆÕr   c                 ó0   — | j                  |«      | _        y rv   )r  r  r   s     r   r`   z"TestCaseTable.set_default_template¡  s   € Ø!%×!6Ñ!6°xÓ!@ˆÕ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  r`   r  r4   r   r   r^   r^   u  sP   „ Ø$€NØ€NØÐàñó ðòCò4ò"=ò0òOò>òAóIr   r^   c                   ó   — e Zd ZeZeZd„ Zy)rb   c                  ó   — yrç   r4   r   s     r   r  zKeywordTable._is_template¬  r  r   N)r+   r,   r-   rº   rï   rÏ   r  r  r4   r   r   rb   rb   ¨  s   „ Ø"ÐØ#€Nór   rb   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)r9   c                 óÈ   — d | _         d | _        d | _        d| _        d| _        || _        d| _        	 | j                  |«       | j                  «        y # t        $ r Y y w xY w)Nr™   F)
rD   rF   r&   r:   rH   Ú_identifiersÚ_may_have_internal_variablesÚ_splitÚ	_finalizeÚ
ValueError)r   r   r8   s      r   r   zVariableSplitter.__init__´  sf   € ØˆŒØˆŒ	ØˆŒ
ØˆŒ
ØˆŒØ'ˆÔØ,1ˆÔ)ð	Ø�K‰K˜Ôð �N‰NÕøô ò 	Ùð	ús   ³A Á	A!Á A!c                 óh   — | j                   r|j                  | j                  «      S | j                  S rv   )r*  Úreplace_stringrF   )r   rP   s     r   Úget_replaced_basez"VariableSplitter.get_replaced_baseÃ  s*   € Ø×,Ò,Ø×+Ñ+¨D¯I©IÓ6Ð6Ø�y‰yÐ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™   re   )
Ú_variable_charsrD   ÚjoinrF   r:   r"   rH   Ú _has_list_or_dict_variable_indexÚ#_list_and_dict_variable_index_charsr&   rŽ   s    r   r,  zVariableSplitter._finalizeÈ  s“   € Ø×.Ñ.¨qÑ1ˆŒØ—G‘G˜D×0Ñ0°°2Ð6Ó7ˆŒ	Ø—:‘:¤ D×$8Ñ$8Ó 9Ñ9ˆŒØ×0Ñ0Ô2ØŸ™ ×!IÑ!IÈ!ÈBÐ!OÓPˆDŒJØ�HŠHœ˜D×DÑDÓEÑEŽHð 3r   c                 óB   — | j                   xr | j                   d   dk(  S )Nr™   rC   )r5  rŽ   s    r   r4  z1VariableSplitter._has_list_or_dict_variable_indexÐ  s*   € Ø×7Ñ7ò @Ø×4Ñ4°RÑ8¸CÑ?ð	@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)Nre   r@   r   )Ú_find_variabler:   Ú_open_curlyÚ_variable_stateÚ_stater2  r5  Ú_stringrh   ÚStopIterationÚ_scanning_list_variable_index)r   r   Ústart_indexÚ	max_indexr&   r   s         r   r+  zVariableSplitter._splitÔ  sÆ   € Ø!%×!4Ñ!4°VÓ!<Ñˆ�YØ ˆŒ
ØˆÔØ×*Ñ*ˆŒØ & {Ñ 3°SÐ9ˆÔØ35ˆÔ0ØˆŒØ�qÑˆÜ$ V¨K¨LÐ%9Ó:ò 	‰KˆE�4Ø�[Ñ ˆEðØ—‘˜D %Ô(ð ˜Ó"¨4×+MÑ+MÕ+OÙñ	øô !ò Úðús   Á-BÂ	B'Â&B'c                 óJ   — | j                   | j                  | j                  fv S rv   )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 )NrA   r™   zNo variable end foundre   zNo variable start found)Úrfindr-  Ú_is_escapedr8  Ú_find_start_index)r   r   Úmax_end_indexr?  s       r   r8  zVariableSplitter._find_variableê  s   € ØŸ™ SÓ)ˆØ˜BÒÜÐ4Ó5Ð5Ø×Ñ˜F MÔ2Ø×&Ñ& v¨n¨}Ð'=Ó>Ð>Ø×,Ñ,¨V°Q¸ÓFˆØ˜"ÒÜÐ6Ó7Ð7Ø˜MÐ)Ð)r   c                 óŽ   — |j                  d||«      dz
  }|dk  ry| j                  ||«      r|S | j                  ||dz   |«      S )Nr@   re   r   r™   r   )ÚfindÚ_start_index_is_okrG  )r   r   r:   rH   r&   s        r   rG  z"VariableSplitter._find_start_indexõ  sQ   € Ø—‘˜C ¨Ó,¨qÑ0ˆØ�1Š9ØØ×"Ñ" 6¨5Ô1ØˆLØ×%Ñ% f¨e°A©g°sÓ;Ð;r   c                 óN   — ||   | j                   v xr | j                  ||«       S rv   )r)  rF  )r   r   r&   s      r   rK  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   re   rÿ   r4   )r   r   r&   Úescapeds       r   rF  zVariableSplitter._is_escaped  sL   € ØˆØ�aŠi˜F 5¨¡7™O¨tÒ3Ø�Q‰JˆEØ!�kˆGð �aŠi˜F 5¨¡7™O¨tÓ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 )NrA   re   r   )r2  rö   rF  r<  r9  Ú_is_list_or_dict_variabler=  rB  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×&Ñ&Ñ&Ø×=Ñ=ˆD�Kð 'r   c                 ó$   — | j                   d   dv S )Nr   )ú@ú&)r2  rŽ   s    r   rP  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 )Nr@   re   T)r:  r;  r2  rö   r9  r*  rR  s      r   rQ  z/VariableSplitter._internal_variable_start_state  sS   € Ø×*Ñ*ˆŒØ�3Š;Ø× Ñ ×'Ñ'¨Ô-Ø×Ò Ñ!ÕØ04ˆDÕ-à× Ñ   uÕ-r   c                 ór   — |dk7  rt         ‚| j                  j                  |«       | j                  | _        y )NrB   )r=  r5  rö   rC  r;  rR  s      r   rB  z3VariableSplitter._waiting_list_variable_index_state  s0   € Ø�3Š;ÜÐØ×0Ñ0×7Ñ7¸Ô=Ø×5Ñ5ˆ�r   c                 óP   — | j                   j                  |«       |dk(  rt        ‚y )NrC   )r5  rö   r=  rR  s      r   rC  z+VariableSplitter._list_variable_index_state%  s(   € Ø×0Ñ0×7Ñ7¸Ô=Ø�3Š;ÜÐð r   N)r+   r,   r-   r   r0  r,  r4  r+  r>  r8  rG  rK  rF  r:  rP  rQ  rB  rC  r4   r   r   r9   r9   ²  sP   „ òòò
Fò@òò$@ò	*ò<ò0òò	>ò4ò.ò6ó r   r9   )r   )5r.   rˆ   Úpygments.lexerr   Úpygments.tokenr   Ú__all__ÚGenericÚHeadingrx   ÚKeywordÚ	NamespacerÀ   ÚNamerÃ   Ú
Subheadingr  ÚFunctionrÛ   ÚStringrÁ   rÓ   rG   rž   r;   ÚPunctuationrw   rE   ÚEmphrà   ÚErrorr<   r   r   r   r   r\   r‹   r    r½   rÅ   rÏ   rº   rÚ   rã   rå   rí   rZ   ra   r_   r^   rb   r9   r4   r   r   ú<module>rg     sÂ  ðñó0 
å  Ý  à Ð
!€ð �-‰-×
Ñ
€Ø
�-‰-×
!Ñ
!€Ø	�‰×	Ñ	€Ø�]‰]×%Ñ%€
Ø
�*‰*×
Ñ
€Ø�<‰<€Ø�:‰:×Ñ€Ø
�-‰-€Ø×Ñ€	Ø	×	Ñ	€Ø
�-‰-×
Ñ
€Ø�‰€óô,˜%ô ,÷>?ñ ?÷0,:ñ ,:÷^ñ ÷08ñ 8ô0ˆiô ô7ˆiô 7ô<!�Iô !ô
5�gô 
5ôR�_ô Rô
7ˆyô 7ô;�)ô ;÷$>ñ >ô˜9ô ô
ˆiô 
÷6ñ 6ô<�6ô ô �Fô  ôM�6ô Mô 0I�Fô 0Iôf�=ô ÷v ò v r   