^c @sdZdadZdZdZdZddlZddlZddlZddl Z ddl Z yddl m Z Wn!ek rddlm Z nXdd lmZd efd YZd fd YZdfdYZdfdYZdZdZdZdfdYZdfdYZejdZdZdZdZ dZ!dZ"ddZ#d Z$d!Z%e&d"Z'd#Z(e&d$Z)d%Z*d&Z+d'a,d(Z-d)Z.ia/d*Z0d+Z1d,Z2d-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:d5Z;d6Z<ed7d8Z=ed'd9Z>yej?ej@fZAWneBk reCZAnXete&ee&dd'ded7d: ZDd;ZEd<aFdS(=s2.2is parser.outtparsetabtLALRiiN(tStringIO(tutilt YaccErrorcBseZRS((t__name__t __module__(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyROst YaccSymbolcBseZdZdZRS(cCs|jS(N(ttype(tself((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt__str__cscCs t|S(N(tstr(R ((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt__repr__ds(RRR R (((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRbs tYaccProductioncBs\eZd dZdZdZdZdZdZdZ dZ dZ RS( cCs||_g|_||_dS(N(tslicetpbstacktstack(R tsR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt__init__ps  cCstt|tkr=|dkr,|j|jS|j|jSn3g|j|j|j|jD]}|j^q]SdS(Ni(RtintRtvalueRtstarttstoptstep(R tnR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt __getitem__us  cCs||j|_dS(N(RR(R Rtv((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt __setitem__|scCs t|jS(N(tlenR(R ((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt__len__scCst|j|ddS(Ntlinenoi(tgetattrR(R R((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRscCs<t|j|dd}t|j|d|}||fS(NRit endlineno(RR(R Rt startlinetendline((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytlinespanscCst|j|ddS(Ntlexposi(RR(R R((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR$scCs<t|j|dd}t|j|d|}||fS(NR$it endlexpos(RR(R Rtstartpostendpos((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytlexspanscCs|dkrtdn|t|jdkrZtd|t|jdfnx3td|D]"}|jj|j| dqjWdS(NisExpected a positive valueis,Can't push %d tokens. Only %d are available.(t ValueErrorRRtrangeRtappend(R Rti((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytpushbacks  &N( RRtNoneRRRRRR#R$R(R-(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR os        tParsercBs8eZddZdZdZddddZRS(cCsU|dkrtdnd|_d|_i|_i|_i|_d|_dS(Ntxyzzys-Can't instantiate Parser. Use yacc() instead.s Unknown LR(RR.t productionst errorfunctactiontgototrequiretmethod(R tmagic((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRs      cCs d|_dS(Ni(t errorcount(R ((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyterrokscCsD|j2|j2t}d|_|jj||jjddS(Ns$endi(t statestacktsymstackRRR+(R tsym((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytrestarts   icCsd}g}|j}|j}|j}td} || _d|_|sgddlm} | j }n|| _ |r|j |n|j } g} | |_ g} | |_ | | _d}| jdt}d|_| j|x|dkr d| dfGHn|sK|s!| }n |j}|sKt}d|_qKn|rddjg| D]}|j^qadt|fj}n| d}|j}|j||fd}|dkrd |fGHn|dk r|dkr|dkrtjjd dS| j||dkrFtjjd ||fn| j|d}|jdkr|jd8_qqn|dkr@|| }|j}|j}t}||_d|_|dkrtjjd || fn|r| | d}||dtlexertinputttokenR:R;RR+RRtpoptjoinR tlstriptgettsyststderrtwritetnameRRRRR R$R%tAttributeErrorRRtfunct error_countR2R9R=thasattrt RuntimeError(R RERDtdebugt lookaheadtlookaheadstacktactionsR4tprodtpsliceR>t get_tokenR:R;terrtokenR<txxt errorleadRtltypetttptpnametplenttargt_tRttokR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytparses                     B                   $                           !        N(RRR.RR9R=Rf(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR/s   c Cstjj|\}}|dkr(dSy&t|}|j}|jWntk rbdSXtjd}i}d}d}x|D]} |j | } | r| j d} |j | } | s||| %sR@s %s -> (RXRNRH(R R((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR 2s " cCs t|S(N(R (R ((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR 9scCs'|t|jkrdSt}|j|_t|j|_|j|_||_i|_|j |_ |jj |dt |j|_t|j|_|j |_ yt |j|d|_Wn"ttfk r}g|_nXy|j|d|_Wntk r"d|_nX|S(Nt.i(RRXR.RRNtlisttnumberRRRtinsertttupleRRtlraftert IndexErrortKeyErrortlrbefore(R RR`te((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytlr_item=s,          (RRRR R R(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR&s  tMiniProductioncBseZRS((RR(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRWss^[a-zA-Z0-9_-~]+$cCs|tkr-tjjd|||fdS|dkrZtjjd|||fdStj|stjjd|||fdSxtt|D]}||}|ddkr@ylt|}t|dkrtjjd ||||fdS|tkrgt| %ss%s:%d: Duplicate rule %s. s$%s:%d: Previous definition at %s:%d s-%s:%d: Syntax error. Nothing follows %%prec. s2%s:%d: Nothing known about the precedence of '%s' tprectright(Ri(Ri(RRKRLRMt_is_identifierRpR*Rtevalt SyntaxErrorRtfiletlineRRNRXRPRRR+RRRRJR.RRRRRRR(RuRRtprodnametsymstxRtctmapR|R`R,R_tprecnameR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytadd_productionns            &              #         cCsa|jj}|jj}d}t|tjr9d}nd}|jj|krutjj d|||j fdS|jj|krtjj d|||j fdS|j r=|j j }d}|}x|D]`}|d7}|j} | sqny| ddkrc|s5tjj d||fdS|} t| dkrZ| d} qg} nu| d} | }| d} t| dkr| d} ng} | d kr| d krtjj d ||fdSt|||| | } || 7}Wqtk r5tjj d |||f|d8}qXqWn tjj d |||j f|S(Niiis)%s:%d: Rule '%s' has too many arguments. is'%s:%d: Rule '%s' requires an argument. t|s%s:%d: Misplaced '|'. Rs::=s"%s:%d: Syntax error. Expected ':' s!%s:%d: Syntax error in rule '%s' s:%s:%d: No documentation string specified in function '%s' (RRRRRRRRKRLRMRRt splitlinesR.RRRR(RuRRRAtreqdargstpstringstlastptdlinetpsR`RRtassignR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt add_functions\                cCsi}x4ttjttjD]}d||Wxd}xtjD]r\}}xc|D][}x+|jD]}||sd}PqqWd}|r{||sd|| Raise an error for any symbols that don't terminate. is$endiRAs3yacc: Infinite recursion detected for symbol '%s'. ( RRRRRRXRKRLRM( t TerminatesR_Rt some_changetplR`Rt p_terminatest some_errort terminates((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytcompute_terminates>s<       $ c Csed}xtD]y}|sq nxd|jD]Y}|tkr)|tkr)|dkr)tjjd|j|j|fd}q)q)q)Wq Wd}t rt jdnxhtj D]Z\}}|dkr| rtjjd|t rt jd|n|d7}qqWt rbt jdx;t dt tD]!}t jd |t|fq:Wnd}x^tj D]P\}}|sut|d}tjjd |j|j|f|d7}ququW|dkrtjjd n|dkr tjjd |n|dkr*tjjd n|dkrMtjjd|nt rDt jdttj}|jxK|D]C} t jd| djgt| D]}t|^qfqWt jdttj}|jxN|D]C} t jd| djgt| D]}t|^qfqWn|rat|t7}n|S(NiRAs?%s:%d: Symbol '%s' used, but not defined as a token or a rule. isUnused terminals: s1yacc: Warning. Token '%s' defined, but not used. s %s s Grammar s Rule %-5d %s s1%s:%d: Warning. Rule '%s' defined, but not used. s(yacc: Warning. There is 1 unused token. s+yacc: Warning. There are %d unused tokens. s'yacc: Warning. There is 1 unused rule. s*yacc: Warning. There are %d unused rules. s* Terminals, with rules where they appear s %-20s : %s R@s- Nonterminals, with rules where they appear (RRXRRRKRLRMRRt yaccdebugRRR*RRRRtsortRHR RR( t cycle_checkRAR`Rt unused_tokRR,t unused_prodtksR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytverify_productionssf $# "#       A   DcCsx}tD]u}|}|jd}d}xQ|j|}||_|sMPntt|_tj||}|d7}q+qWdS(Nii(RRtlr_nextRRtlr_numR+(R`tlastlritlriR,((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt build_lritemss   cCsd}d}x|D]}|d7}y|d}|d}|dkrv|dkrv|dkrvtjjd|dSxN|D]F}|tkrtjjd||d7}q}n||ft|i(RR+(tbetatresultRtx_produces_emptyRu((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytfirsts     c CsxtjD]}gt|s Follow: s %-20s : %s R@(RRRRRNR*RRXRR+RRRMRHR ( RRtdidaddR`R,tBtfstthasemptyRuR((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytcompute_follow8s<         c CsYx!tjD]}|gt|| D]6}||kr'g|||j| gD]*} | ||kr||j| qqWqFW|||kr_tj||d<||||d<|j} xB| |kr[tj||d<||||d<|j} qWndS(Nii(R+RR#tminRJRKtmaxsizeRG( RRRR'R$R%R&RRtyRtelement((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR#s(      cs:fd}fd}t|||}|S(Ncst|S(N(R(R(R R(s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytscst|S(N(R(R(R R(s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR-s(R((R tntransRR&R%R'((R Rs3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytcompute_read_setsscs4fd}fd}t|||}|S(Ncs|S(N((R(treadsets(s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR-scsj|gS(N(RJ(R(tinclsets(s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR-s(R((R.R0R1R&R%R'((R1R0s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytcompute_follow_setsscCsx|jD]\}}x|D]x\}}||jkrKg|j||t?d |} g| j4D]E}t5|tj-tj.fkr| |j6d dkr| |^q}$| rt dnt@tAtB||d)kr8tC|nt d#||r^tD|| ntry_tEtFjGjH| |d$}|jItJjK|jId%|jItLjK|jMWqtNk r}d&||fGHqXqntOd'}t|_Pt3|_QtR|_StT|_UtV|_Wt'|_X|jYaY|aZ|sOt[n|S(*NiisExpected a moduleRiiittokenss&module does not define a list 'tokens'stokens must be a list or tuple.R5srequire must be a dictionary.RsJInvalid specification for rule '%s' in require. Expected a list of stringsRAs1yacc: Illegal token 'error'. Is a reserved word.sIllegal token names+yacc: Warning. Token '%s' multiply defined.t precedences#precedence must be a list or tuple.Rtp_errors3'p_error' defined, but is not a function or method.s%%s:%d: p_error() requires 1 argument.s0yacc: Warning. no p_error() function is defined.Rs,no rules of the form p_rulename are defined.tkeycSs |jjS(N(RR(R((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyR-<ssUnable to construct parser.sBad starting symbol '%s'RtSLRRsUnknown parsing method '%s'RKs syacc: can't create '%s'R0(srighti(R\sLALR(\RRRtupdateRt encode_inputRRt ModuleTypet__dict__t _INSTANCETYPEtdirRR)RSRKtexc_infottb_frametf_backt f_globalsRJR.RWRRSR+RRNRRRRPRRRtdictRt TypeErrorRRRRRRLRRRRRRRRRRRRRRRR~RRRRRRRRJRQRjRgRhRHRMRtgetvalueRRlRmR/R1R2RR3RR4RR6R5RfRBt yacc_cleanup(%R6RTRUt tabmoduleRtcheck_recursionRVt write_tablest debugfileROtfilesRAtldictRt_itemsR,RtbR_RuR`R|RXtrequiresRRRtv1RRteftismethodtelinetefiletsymbolsRrt otherfunc((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pytyaccs$ .              "                9#          E             cCs:bbbbbbbbbb b b b b bbbbdS(N(RRRRRRRRRRRRRRRRRR(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRjs    cOstddS(Ns!yacc: No parser built with yacc()(R(targstkwargs((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyRfs(Gt __version__Rt debug_filet tab_modulet default_lrRQRnRRKRtos.pathRgt cStringIORRTtioRCRRRRR R/R~RRRRRoRRRRRRRRRR.RRRRRRRR RRRRRRR"R(R#R/R2R6R:RJRQRWt InstanceTypet ObjectTypeRaROtobjectR{RjRf(((s3/usr/lib64/python2.7/site-packages/sepolgen/yacc.pyt5sz<  0   D1 l A   B O    " , )   ! <    + O "     n  '