|eHdZddlZddlmZddlmZdgZejjZ ejjZ ejjZejjZejj"Zej&Zejj*Zej.Zej2Zej2Zejj8Zej<Zd2dZ GddeZ!Gdd Z"Gd d Z#Gd d Z$GddZ%Gdde%ZGdde%Z&Gdde%Z'Gdde&Z(Gdde(Z)Gdde%ZGdde%Z*GddZ+Gd d!e%Z,Gd"d#e%Z-Gd$d%Z.Gd&d'e.Z/Gd(d)e.Z0Gd*d+e.Z1Gd,d-e.Z2Gd.d/e2Z3Gd0d1Z4y)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)TokenRobotFrameworkLexerch|j}|dzD]}||vs|j|d}|S)N )lowerreplace)stringremovechars @/usr/lib/python3/dist-packages/pygments/lexers/robotframework.py normalizer/s> \\^F . 6>^^D"-F. Mc8eZdZdZdZdZdgZddgZdgZdZ d Z y ) rz For Robot Framework test data. Supports both space and pipe separated plain text formats. .. versionadded:: 1.6 RobotFrameworkzhttp://robotframework.orgrobotframeworkz*.robotz *.resourceztext/x-robotframeworkc Dd|d<d|d<tj|fi|y)NtabsizezUTF-8encoding)r__init__)selfoptionss rrzRobotFrameworkLexer.__init__Es' %  t'w'rc# Kt}t}d}|jD]V}|j|D]@\}}|j||D]&\}}|s ||t |f|t |z }(BXywNr) RowTokenizerVariableTokenizer splitlinestokenizestrlen)rtext row_tokenizer var_tokenizerindexrowvaluetokens rget_tokens_unprocessedz*RobotFrameworkLexer.get_tokens_unprocessedJs$ )+ ??$ ,C - 6 6s ; , u$1$:$:5%$H,LE5#UCJ66U+, , ,s AB%BN) __name__ __module__ __qualname____doc__nameurlaliases filenames mimetypesrr*rrrr7s7 D %C GL)I()I( ,rceZdZdZdZy)rc#Kt|d}|jdks|ttfvr||fy|j |||D]\}}|s ||fyw)Nz$@%& identifiersr)VariableSplitterstartCOMMENTERROR _tokenize)rr r)varr(s rr zVariableTokenizer.tokenizeXscv6: 99q=Egu%55%-   NN3> #LE5Ul" #s A A Ac#K|d|j}||f|jdztf|j|jt Ed{dtf|j r orig_tokenbefores rr=zVariableTokenizer._tokenizeas #j  nns"F**==84446k 99 v+ }}SYY9 9 9v+ ==!1:>>> 5 :>s7ACCACC0C C CCCN)r+r,r-r r=r4rrrrVs # ?rrc$eZdZdZdZdZdZy)rct|_t|_t }t |j }t}t}|||||||||||||d |_ y)N) settingssettingmetadata variablesvariable testcasestestcasetaskstaskkeywordskeyword userkeywords userkeyword) UnknownTable_table RowSplitter _splitter TestCaseTable SettingTableset_default_template VariableTable KeywordTable_tables)rrRrMrPrVs rrzRowTokenizer.__init__psd"n $!O  > >?!O >$,$,%.I%.I!*I$,(0 K rc#Kd}d}t|jj|D]v\}}t|dz d\}}|j drd}n.|dk(r)|j dr|j ||_d}|j|||||Ed{x|j jy7!w)NFr#Tr*) enumerater]splitdivmod startswith _start_tabler[r=end_row)rr' commentedheadingr&r( separators rr zRowTokenizer.tokenizes %dnn&:&:3&?@ :LE5%eAgq1 E9$ ! 0 0 5"//6 ~~eUI&/: : : :  :sBCB?"Ccdt|d}|jj|tS)Nrgr )rrcgetrZ)rheaderr/s rrlzRowTokenizer._start_tables',||ln55rc#K|r |tfy|r |tfy|r |tfy|jj ||Ed{y7wN)r; SEPARATORHEADINGr[r )rr(r&rnrpros rr=zRowTokenizer._tokenizesH . " " . {{++E59 9 9sAA A AN)r+r,r-rr rlr=r4rrrrns K 6:rrcfeZdZejdZejdZdZdZdZ y)r\z( {2,})z((?:^| +)\|(?: +|$))c#K|jdxr |jxs |j}||Ed{dy7 w)Nz|  )rk_split_from_pipes_split_from_spaces)rr'splitters rrizRowSplitter.splitsGNN4(CT-C-C/.. C=    !s9AA Ac#^Kd|jj|Ed{y7w)Nr)_space_splitterri)rr's rr}zRowSplitter._split_from_spacess%''--c222s #-+-c#K|jj|d\}}}||jj|rD|jj|d\}}}|||jj|rD|ywNre)_pipe_splitterrisearch)rr'_rprestcells rr|zRowSplitter._split_from_pipess!0066sA>9d!!((.$($7$7$=$=dA$F !D)TJO!!((. s BB B N) r+r,r-recompilerrrir}r|r4rrr\r\s2 bjj+ORZZ 78N 3rr\c(eZdZdZdZdZdZdZy) TokenizerNcd|_yr)_indexrs rrzTokenizer.__init__s  rc|j||j}|xjdz c_t|ttr||fg}|Sr)r=r isinstancetyper)rr(values_and_tokenss rr zTokenizer.tokenizesI NN5$++> q 'e 5"'):!; <   rcdt|t|jdz }|j|Sr)minr"_tokensrr(r&s rr=zTokenizer._tokenizes+E3t||,q01||E""rc|jdr|ddj}t|d}|jdk(xr|jt |k(S)N=z$@&r7r)endswithstripr9r:rHr")rr(r>s r _is_assignzTokenizer._is_assignsN >># #2J$$&Eu%8yyA~7#''SZ"77r)r+r,r-rrr r=rr4rrrrsG!#8rrceZdZefZy)CommentN)r+r,r-r;rr4rrrrs jGrrc2eZdZeefZdZdZdZdZ ddZ dZ y)Setting) suitesetupsuiteprecondition suiteteardownsuitepostcondition testsetup tasksetuptestprecondition testteardown taskteardowntestpostcondition testtemplate tasktemplate)libraryresourcerP) documentationrO forcetags defaulttags testtimeout tasktimeoutNc<tj|||_yrv)rr_template_setter)rtemplate_setters rrzSetting.__init__s4 /rc|dk(r|jr|j||dk(r]t|}||jvrtd|_nY||j vrt |_n;||jvr-tS|jr|jj|Stj|||S)NrerF)support_assign) rr_keyword_settings KeywordCall_custom_tokenizer_import_settings ImportSetting_other_settingsr<r rr=)rr(r& normalizeds rr=zSetting._tokenizes A:$//  ! !% ( A:"5)JT333)4E)J&t444)6&4#7#77  # #))2259 9""466rrv) r+r,r-SETTINGARGUMENTrrrrrrr=r4rrrrs4!Gm<4O0 7rrceZdZeefZy)rN)r+r,r-IMPORTrrr4rrrrs x GrrceZdZdZdZdZdZy)TestCaseSetting)setup preconditionteardown postconditiontemplater4)rtagstimeoutc|dk(r0tj||dd|}dtf|dd|fdtfgStj|||S)NrrerrBrC)rr=rE)rr(r&rs rr=zTestCaseSetting._tokenizesX A:$$T52;>D&ME!BK#6f F F  ue44rN)r+r,r-rrrr=r4rrrrs%:O5rrceZdZdZdZy)KeywordSetting)r)r argumentsreturnrrN)r+r,r-rrr4rrrrs %QOrrceZdZeefZdZy)Variablech|dk(r|j|stStj|||Sr)rr<rr=rs rr=zVariable._tokenizes. A:dooe4L""466rN)r+r,r-rErrr=r4rrrrsx G7rrc"eZdZeefZddZdZy)rcLtj|| |_d|_yr)rr_keyword_found_assigns)rrs rrzKeywordCall.__init__s"4 "00 rc|js,|j|r|xjdz c_tS|jr$tj ||||jz Sd|_t j|tS)NreT) rrrrErr=GherkinTokenizerr KEYWORDrs rr=zKeywordCall._tokenizesn""tu'= MMQ MM   &&tUEDMM4IJ J"!**5'::rN)T)r+r,r-rrrrr=r4rrrrs!G ;rrcLeZdZejdej ZdZy)rz^(Given|When|Then|And|But) c|jj|}|s||fgS|j}|d|tf||d|fgSrv)_gherkin_prefixmatchrHGHERKIN)rr(r)rrHs rr zGherkinTokenizer.tokenize#sT$$**51EN# #iiktg&ste(<==rN)r+r,r-rr IGNORECASErr r4rrrr s bjj!> NO>rrceZdZefZy)TemplatedKeywordCallN)r+r,r-rrr4rrrr+s kGrrceZdZdZdZy)ForLoopc<tj|d|_yNF)rr _in_argumentsrs rrzForLoop.__init__1s4 "rcp|jxrtxst}|jdvrd|_|S)N)INzIN RANGET)rrrEupper)rr(r&r)s rr=zForLoop._tokenize5s3""/x96 ;;=. .!%D  rN)r+r,r-rr=r4rrrr/s #rrc6eZdZdZddZdZdZdZdZdZ y) _TableNcJ|j|_||_g|_yrv)_tokenizer_class _tokenizer_prev_tokenizer_prev_values_on_row)rprev_tokenizers rrz_Table.__init__?s"//1-#% rc#K|j||r|j|_|tfn|j ||Ed{|j j |y7 wrv) _continuesrrrEr=rappendrs rr z_Table.tokenizeDsX ??5% ("22DO- ~~eU3 3 3   ''. 4sAA)A'!A)cN|dk(xrtfdjDS)Nz...c3@K|]}j|ywrv) _is_empty).0trs r z$_Table._continues..Ms$&I*+'+nnQ&7&Is)allrrs` rrz_Table._continuesLs3~I#&I/3/G/G&I#I Irc |dvS)N)r\r4rr(s rrz_Table._is_emptyPs  ""rc8|jj|Srv)rr rs rr=z_Table._tokenizeSs''..rc<|j|jyN)r)rrrs rrmz_Table.end_rowVs T__ 5rrv) r+r,r-rrr rrr=rmr4rrrr<s'& /I#/6rrceZdZeZdZy)rZcyrr4rs rrzUnknownTable._continues]rN)r+r,r-rrrr4rrrZrZZs rrZceZdZeZy)raN)r+r,r-rrr4rrraraasrrac$eZdZeZddZdZdZy)r_Nc>tj||||_yrv)rrr)rrrs rrzSettingTable.__init__hsn- /rc|dk(r(t|dk(rt|j|_tj |||S)Nrr)rrrrrr=rs rr=zSettingTable._tokenizels< A:)E*n<%d&;&;|dkDxrtj|||Sr)rrrs rrzTestCaseTable._continuess qyBV..tUEBBrc|dk(r'|rd|_tj|tS|dk(r_|j |rN|j |r(d|_|j |j|_n|j |_|dk(r |j|rt|_|dk(r|j|r |tfgStj|||S)NrreF)rrr TC_KW_NAME _is_setting _is_template_setting_classset_test_templater _is_for_looprrrErr=rs rr=zTestCaseTable._tokenizes A:&*##%..ujA A A:$**51  '&+#"&"5"5d6L6L"M"&"5"5"7 A:$++E2%iDO A:$../FO$ $eU33rcJ|jdxr|jdS)NrBrC)rkrrs rrzTestCaseTable._is_settings!$<)<AIrr^ceZdZeZeZdZy)rbcyrr4rs rrzKeywordTable._is_templaterrN)r+r,r-rrrrrr4rrrbrbs"#NrrbcfeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZy)r9cd|_d|_d|_d|_d|_||_d|_ |j||jy#t$rYywxYw)NrF) rDrFr&r:rH _identifiers_may_have_internal_variables_split _finalize ValueError)rr r8s rrzVariableSplitter.__init__sf   ',1)  KK  NN    sA A! A!ch|jr|j|jS|jSrv)r*replace_stringrF)rrPs rget_replaced_basez"VariableSplitter.get_replaced_bases*  , ,++DII6 6yyrcx|jd|_dj|jdd|_|jt |jz|_|jrLdj|jdd|_ |xj t |jz c_yy)Nrrrrre) _variable_charsrDjoinrFr:r"rH _has_list_or_dict_variable_index#_list_and_dict_variable_index_charsr&rs rr,zVariableSplitter._finalizes..q1GGD00267 ::D$8$8 99  0 0 2!I!I!B!OPDJ HHDDDE EH 3rcB|jxr|jddk(S)NrrC)r5rs rr4z1VariableSplitter._has_list_or_dict_variable_indexs*77@  4 4R 8C ? @rcT|j|\}}||_d|_|j|_||dg|_g|_||_|dz }t||dD]5\}}||z } |j ||||k(s$|jr5yy#t$rYywxYw)Nrer@r) _find_variabler: _open_curly_variable_state_stater2r5_stringrh StopIteration_scanning_list_variable_index)rr start_index max_indexr&r s rr+zVariableSplitter._splits!%!4!4V!< Y  ** &{ 3S9350 q $VKL%9: KE4 [ E  D%("4+M+M+O !  s-B B'&B'cJ|j|j|jfvSrv)r;"_waiting_list_variable_index_state_list_variable_index_staters rr>z.VariableSplitter._scanning_list_variable_indexs,{{tFF#>>@@ @rc|jd}|dk(r td|j||r|j|d|S|j |d|}|dk(r td||fS)NrArzNo variable end foundrezNo variable start found)rfindr- _is_escapedr8_find_start_index)rr max_end_indexr?s rr8zVariableSplitter._find_variables S) B 45 5   FM 2&&vn}'=> >,,VQ F " 67 7M))rc|jd||dz }|dkry|j||r|S|j||dz|S)Nr@rerrr)find_start_index_is_okrG)rr r:rHr&s rrGz"VariableSplitter._find_start_indexsQ C,q0 19  " "65 1L%%feAgs;;rcN|||jvxr|j|| Srv)r)rF)rr r&s rrKz#VariableSplitter._start_index_is_oks1e} 1 110  / / 0rc\d}|dkDr$||dz dk(r|dz}| }|dkDr ||dz dk(r|S)NFrrerr4)rr r&escapeds rrFzVariableSplitter._is_escapedsLaiF57Ot3 QJE!kGaiF57Ot3rcV|jj||dk(ri|j|j|sM|xjdzc_|jdk(r(|j st |j|_yy||jvr|j|_yy)NrArer) r2rrFr<r9_is_list_or_dict_variabler=rBr;r)_internal_variable_start_staterr r&s rr:z VariableSplitter._variable_states ##D) 3;t// eD    ! 1$557''"EE %T&& &==DK'rc$|jddvS)Nr)@&)r2rs rrPz*VariableSplitter._is_list_or_dict_variables##A&)33rc|j|_|dk(r8|jj||xjdz c_d|_y|j||y)Nr@reT)r:r;r2rr9r*rRs rrQz/VariableSplitter._internal_variable_start_statesS** 3;  ' ' -    ! 04D -  u -rcr|dk7rt|jj||j|_y)NrB)r=r5rrCr;rRs rrBz3VariableSplitter._waiting_list_variable_index_states0 3;  0077=55 rcP|jj||dk(rty)NrC)r5rr=rRs rrCz+VariableSplitter._list_variable_index_state%s( 0077= 3;  rN)r+r,r-rr0r,r4r+r>r8rGrKrFr:rPrQrBrCr4rrr9r9sP  F@$@ *<0 >4.6  rr9)r)5r.rpygments.lexerrpygments.tokenr__all__GenericHeadingrxKeyword NamespacerNamer SubheadingrFunctionrStringrrrGrr; PunctuationrwrEEmphrErrorr<rrrrr\rrrrrrrrrrrZrar_r^rbr9r4rrrgs0 ! --   -- ! !    ]] % % **   << ::   --       --   ,%,>??0,:,:^0880i7i7<!I! 5g 5R_R 7y7;);$>>9 i 66<6 F  M6 M 0IF0If=v v r