Z-Qc@sdZddlZddlmZddlmZejjZej j Z ej j Z ejjZej jZejZej jZejZejZejZejjZejZddZdefdYZ d e!fd YZ"d e!fd YZ#d e!fdYZ$de!fdYZ%de%fdYZde%fdYZ&de%fdYZ'de&fdYZ(de(fdYZ)de%fdYZde%fdYZ*de!fd YZ+d!e%fd"YZ,d#e%fd$YZ-d%e!fd&YZ.d'e.fd(YZ/d)e.fd*YZ0d+e.fd,YZ1d-e.fd.YZ2d/e2fd0YZ3d1d3d2YZ4dS(4s pygments.lexers._robotframeworklexer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lexer for Robot Framework. :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. iN(tLexer(tTokentcCsF|j}x3|dD]'}||kr|j|d}qqW|S(Nt R(tlowertreplace(tstringtremovetchar((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyt normalize.s   tRobotFrameworkLexercBsGeZdZdZddgZddgZdgZdZdZRS(s For `Robot Framework `_ test data. Supports both space and pipe separated plain text formats. *New in Pygments 1.6.* tRobotFrameworktrobotframeworks*.txts*.robotstext/x-robotframeworkcKs(d|dR9R<R@((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRqs     ccst}t}xt|jj|D]\}}t|dd\}}|jdrbt}n6|dkr|jdr|j||_t}nx4|j |||||D]\}}||fVqWq%W|jj dS(Niit#it*( tFalset enumerateRGtsplittdivmodt startswithtTruet _start_tableRER,tend_row(RRt commentedtheadingRRt separatorR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs%  cCs(t|dd}|jj|tS(NRRO(R RMtgetRD(RtheaderR#((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRVsccsq|r|tfVnY|r(|tfVnE|r<|tfVn1x.|jj||D]\}}||fVqRWdS(N(R*t SEPARATORtHEADINGRER(RRRRXRZRYR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,s"(R R!RRRVR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRos   RFcBsAeZejdZejdZdZdZdZRS(s( {2,})s((?:^| +)\|(?: +|$))ccsL|jdr|jp|j}x||jD] }|Vq4WdVdS(Ns| s (RTt_split_from_pipest_split_from_spacestrstrip(RRtsplitterR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRRs   ccs+dVx|jj|D] }|VqWdS(NR(t_space_splitterRR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR`sccsm|jj|d\}}}|Vx>|jj|rc|jj|d\}}}|V|Vq&W|VdS(Ni(t_pipe_splitterRRtsearch(RRt_RZtresttcell((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR_s ( R R!tretcompileRcRdRRR`R_(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRFs   t TokenizercBs2eZdZdZdZdZdZRS(cCs d|_dS(Ni(t_index(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCsO|j||j}|jd7_t|ttrK||fg}n|S(Ni(R,Rlt isinstancettypeR(RRtvalues_and_tokens((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs cCs't|t|jd}|j|S(Ni(tminRt_tokens(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,scCsV|jdr"|d j}nt|dd}|jdkoU|jt|kS(Nt=iR's$@i(tendswithtstripR(R)R6R(RRR-((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyt _is_assignsN(R R!tNoneRqRRR,Ru(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRks    tCommentcBseZefZRS((R R!R*Rq(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRwstSettingc BsAeZeefZdZdZdZdZ ddZ dZ RS(t suitesetuptsuitepreconditiont suiteteardowntsuitepostconditiont testsetupttestpreconditiont testteardownttestpostconditiont testtemplatetlibrarytresourceR<t documentationR;t forcetagst defaulttagst testtimeoutcCstj|||_dS(N(RkRt_template_setter(Rttemplate_setter((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs cCs|dkr%|jr%|j|n|dkrt|}||jkratdt|_q||jkrt|_q||jkrt Sn|jr|jj |St j |||S(Niitsupport_assign( RR t_keyword_settingst KeywordCallRPt_custom_tokenizert_import_settingst ImportSettingt_other_settingsR+RRkR,(RRRt normalized((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,s   ( RyRzR{R|R}R~RRR(Rsresources variables(RsmetadataRRRN( R R!tSETTINGtARGUMENTRqRRRRvRRR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRxs  RcBseZeefZRS((R R!tIMPORTRRq(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRstTestCaseSettingcBs#eZd Zd Zd ZdZRS( tsetupt preconditiontteardownt postconditionttemplateRttagsttimeoutcCsa|dkrNtj||dd!|}dtf|dd!|fdtfgStj|||S(NiiiR0R1(RxR,R3(RRRRn((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,s &(ssetupRRRstemplate((s documentationRstimeout(R R!RRRR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs tKeywordSettingcBseZdZdZRS(RRt argumentstreturnR(steardown(s documentations argumentssreturnstimeout(R R!RR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRstVariablecBseZeefZdZRS(cCs3|dkr |j| r tStj|||S(Ni(RuR+RkR,(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR, s(R R!R3RRqR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR s RcBs)eZeefZedZdZRS(cCs$tj|| |_d|_dS(Ni(RkRt_keyword_foundt_assigns(RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs  cCsk|j r,|j|r,|jd7_tS|jrOtj||||jSt|_tj|t S(Ni( RRuRR3RkR,RUtGherkinTokenizerRtKEYWORD(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,s  (R R!RRRqRURR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs  RcBs&eZejdejZdZRS(s^(Given|When|Then|And) cCsO|jj|}|s%||fgS|j}|| tf|||fgS(N(t_gherkin_prefixtmatchR6tGHERKIN(RRRRR6((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR's   (R R!RiRjt IGNORECASERR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR$stTemplatedKeywordCallcBseZefZRS((R R!RRq(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR/stForLoopcBseZdZdZRS(cCstj|t|_dS(N(RkRRPt _in_arguments(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR5s cCs7|jrtpt}|jdkr3t|_n|S(NtINsIN RANGE(sINsIN RANGE(RRR3tupperRU(RRRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,9s (R R!RR,(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR3s t_TablecBsGeZdZddZdZdZdZdZdZ RS(cCs%|j|_||_g|_dS(N(t_tokenizer_classt _tokenizert_prev_tokenizert_prev_values_on_row(Rtprev_tokenizer((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRCs ccsb|j||r,|j|_|tfVn"x|j||D] }|Vq?W|jj|dS(N(t _continuesRRR3R,Rtappend(RRRtvalue_and_token((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRHs   cs)|dko(tfdjDS(Ns...c3s|]}j|VqdS(N(t _is_empty(t.0tt(R(sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pys Rs(tallR(RRR((RsN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRQscCs |dkS(NRs\(Rs\((RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRUscCs|jj|S(N(RR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,XscCs|jd|jdS(NR(RR(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRW[sN( R R!RvRRRRRR,RW(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR@s    RDcBseZeZdZRS(cCstS(N(RP(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRbs(R R!RwRR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRD_sRKcBseZeZRS((R R!RR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRKfsRIcBs,eZeZddZdZdZRS(cCstj||||_dS(N(RRR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRmscCsF|dkr3t|dkr3t|j|_ntj|||S(NiR(R RxRRRR,(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,qscCs|j|jd|jdS(NR(RRR(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRWvsN(R R!RxRRvRR,RW(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRIjs  RHcBsqeZeZd Zd ZedZdZ dZ dZ dZ dZ dZdZdZRS( cCs)|js!|jr%|jtk r%tStS(N(t_test_templatet_default_templateRPRR(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCs|dkotj|||S(Ni(RR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCs|dkr1|rd|_ntj|tS|dkr|j|r|j|r|t|_|j|j |_ q|j|_ n|dkr|j |rt |_ n|dkr|j |r|tfgStj|||S(Nii(RvRRRt TC_KW_NAMEt _is_settingt _is_templateRPt_setting_classtset_test_templateRt _is_for_loopRRR3RR,(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR,s    cCs|jdo|jdS(NR0R1(RTRs(RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCst|dkS(Ns [template](R (RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCs%|jdo$t|dddkS(Nt:Rtfor(RTR (RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCs|j||_dS(N(t_is_template_setR(RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCs|j||_dS(N(RR(RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRJscCst|dkS(NRs\tnones${empty}(Rs\Rs${empty}(R (RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRsN(R R!RRRvRRtpropertyRRR,RRRRRJR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRHzs       RLcBseZeZeZdZRS(cCstS(N(RP(RR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs(R R!RRRRR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRLsR(cBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZRS(cCsrd|_d|_d|_d|_d|_||_t|_y|j |Wnt k rcn X|j dS(Ni( RvR2R4RR)R6t _identifiersRPt_may_have_internal_variablest_splitt ValueErrort _finalize(RRR'((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs        cCs |jr|j|jS|jS(N(Rtreplace_stringR4(RR<((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pytget_replaced_bases cCs|jd|_dj|jdd!|_|jt|j|_|jrdj|jdd!|_ |jt|j7_ndS(NiRiii( t_variable_charsR2tjoinR4R)RR6t_has_list_variable_indext_list_variable_index_charsR(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs  cCs|jo|jddkS(NiR1(R(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs cCs|j|\}}||_d|_|j|_||dg|_g|_||_|d7}xnt||D]\\}}||7}y|j||Wnt k rdSX||krs|j rsdSqsWdS(NiR.i( t_find_variableR)t _open_curlyt_variable_statet_stateRRt_stringRQt StopIterationt_scanning_list_variable_index(RRt start_indext max_indexRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs         cCs|j|j|jgkS(N(Rt"_waiting_list_variable_index_statet_list_variable_index_state(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs cCs|jd}|dkr*tdn|j||rM|j|| S|j|d|}|dkr}tdn||fS(NR/isNo variable end foundisNo variable start found(trfindRt _is_escapedRt_find_start_index(RRt max_end_indexR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs  cCsV|jd||d}|dkr)dS|j||r?|S|j||d|S(NR.iiii(tfindt_start_index_is_okR(RRR)R6R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs  cCs$|||jko#|j|| S(N(RR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCsBt}x5|dkr=||ddkr=|d8}| }q W|S(Niis\(RP(RRRtescaped((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs #  cCs|jj||dkrw|j|j| rw|jd8_|jdkr|jsetn|j|_qn||j kr|j |_ndS(NR/ii( RRRRRt_is_list_variableRRRRt_internal_variable_start_state(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR s"  cCs|jddkS(Nit@(R(R((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRscCsW|j|_|dkrC|jj||jd7_t|_n|j||dS(NR.i(RRRRRRUR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyRs    cCs5|dkrtn|jj||j|_dS(NR0(RRRRR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR$s  cCs)|jj||dkr%tndS(NR1(RRR(RRR((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR*s (R R!RRRRRRRRRRRRRRR(((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyR(s           ((5R"Ritpygments.lexerRtpygments.tokenRtGenerictHeadingR^tKeywordt NamespaceRtNameRt SubheadingRtFunctionRtStringRRR5RwR*t PunctuationR]R3tEmphRtErrorR+R R tobjectRRRFRkRxRRRRRRRRRDRKRIRHRLR((((sN/usr/local/lib/python2.7/site-packages/pygments/lexers/_robotframeworklexer.pyt sL              0    3