Viewing File: /opt/alt/python38/lib/python3.8/site-packages/ply/__pycache__/yacc.cpython-38.pyc

U

×ÄV}ã
@sddlZddlZddlZddlZddlZddlZddlZdZdZ	dZ
dZdZdZ
dZdZd	ZdZejddkrteZneZejZGd
d„deƒZGdd
„d
eƒZGdd„deƒZdd„Zdd„Zdada da!dZ"dd„Z#dd„Z$dd„Z%dd„Z&Gdd„dƒZ'Gdd „d ƒZ(Gd!d"„d"ƒZ)e *d#¡Z+Gd$d%„d%eƒZ,Gd&d'„d'eƒZ-Gd(d)„d)eƒZ.d*d+„Z/Gd,d-„d-eƒZ0Gd.d/„d/eƒZ1Gd0d1„d1eƒZ2Gd2d3„d3eƒZ3d4d5„Z4d6d7„Z5Gd8d9„d9eƒZ6Gd:d;„d;e3ƒZ7d<d=„Z8d>d?„Z9Gd@dA„dAeƒZ:de
deddddeddddf
dBdC„Z;dS)DéNz3.8Tz
parser.outÚparsetabÚLALRéFé(c@s4eZdZdd„Zdd„ZeZdd„Zdd„ZeZd	S)
Ú	PlyLoggercCs
||_dS©N)Úf)Úselfr©r
ú/yacc.pyÚ__init__nszPlyLogger.__init__cOs|j ||d¡dS)NÚ
©rÚwrite©r	ÚmsgÚargsÚkwargsr
r
rÚdebugqszPlyLogger.debugcOs|j d||d¡dS)Nz	WARNING: r
rrr
r
rÚwarningvszPlyLogger.warningcOs|j d||d¡dS)NzERROR: r
rrr
r
rÚerroryszPlyLogger.errorN)	Ú__name__Ú
__module__Ú__qualname__rrÚinforrZcriticalr
r
r
rrmsrc@seZdZdd„Zdd„ZdS)Ú
NullLoggercCs|Srr
)r	Únamer
r
rÚ__getattribute__€szNullLogger.__getattribute__cOs|Srr
)r	rrr
r
rÚ__call__ƒszNullLogger.__call__N)rrrrrr
r
r
rrsrc@seZdZdS)Ú	YaccErrorN©rrrr
r
r
rr‡srcCsPt|ƒ}d|krt|ƒ}t|ƒtkr4|dt…d}dt|ƒjt|ƒ|f}|S)Nr
z ...z<%s @ 0x%x> (%s))ÚreprÚlenÚresultlimitÚtyperÚid)ÚrÚrepr_strÚresultr
r
rÚ
format_result‹sr)cCsBt|ƒ}d|krt|ƒ}t|ƒdkr(|Sdt|ƒjt|ƒfSdS)Nr
éz<%s @ 0x%x>)r!r"r$rr%)r&r'r
r
rÚformat_stack_entry•sr+aPLY: Don't use global functions errok(), token(), and restart() in p_error().
Instead, invoke the methods on the associated parser instance:

    def p_error(p):
        ...
        # Use parser.errok(), parser.token(), parser.restart()
        ...

    parser = yacc.yacc()
cCst t¡tƒSr)ÚwarningsÚwarnÚ_warnmsgÚ_errokr
r
r
rÚerrok¯s
r0cCst t¡tƒSr)r,r-r.Ú_restartr
r
r
rÚrestart³s
r2cCst t¡tƒSr)r,r-r.Ú_tokenr
r
r
rÚtoken·s
r4cCs>|ja|ja|ja||ƒ}z
bbbWntk
r8YnX|Sr)r0r/r4r3r2r1Ú	NameError)Ú	errorfuncr4Úparserr&r
r
rÚcall_errorfunc¼s
r8c@seZdZdd„Zdd„ZdS)Ú
YaccSymbolcCs|jSr©r$©r	r
r
rÚ__str__ÚszYaccSymbol.__str__cCst|ƒSr©Ústrr;r
r
rÚ__repr__ÝszYaccSymbol.__repr__N)rrrr<r?r
r
r
rr9Ùsr9c@sfeZdZddd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dS)ÚYaccProductionNcCs||_||_d|_d|_dSr)ÚsliceÚstackÚlexerr7)r	ÚsrBr
r
rrêszYaccProduction.__init__cCsBt|tƒrdd„|j|DƒS|dkr2|j|jS|j|jSdS)NcSsg|]
}|j‘qSr
©Úvalue©Ú.0rDr
r
rÚ
<listcomp>òsz.YaccProduction.__getitem__.<locals>.<listcomp>r)Ú
isinstancerArFrB©r	Únr
r
rÚ__getitem__ðs

zYaccProduction.__getitem__cCs||j|_dSr)rArF)r	rLÚvr
r
rÚ__setitem__øszYaccProduction.__setitem__cCsdd„|j||…DƒS)NcSsg|]
}|j‘qSr
rErGr
r
rrIüsz/YaccProduction.__getslice__.<locals>.<listcomp>)rA)r	ÚiÚjr
r
rÚ__getslice__ûszYaccProduction.__getslice__cCs
t|jƒSr)r"rAr;r
r
rÚ__len__þszYaccProduction.__len__cCst|j|ddƒS)NÚlinenor©ÚgetattrrArKr
r
rrTszYaccProduction.linenocCs||j|_dSr)rArT)r	rLrTr
r
rÚ
set_linenoszYaccProduction.set_linenocCs,t|j|ddƒ}t|j|d|ƒ}||fS)NrTrÚ	endlinenorU)r	rLÚ	startlineZendliner
r
rÚlinespanszYaccProduction.linespancCst|j|ddƒS)NÚlexposrrUrKr
r
rr[szYaccProduction.lexposcCs,t|j|ddƒ}t|j|d|ƒ}||fS)Nr[rÚ	endlexposrU)r	rLÚstartposÚendposr
r
rÚlexspanszYaccProduction.lexspancCst‚dSr)ÚSyntaxErrorr;r
r
rrszYaccProduction.error)N)rrrrrMrOrRrSrTrWrZr[r_rr
r
r
rr@és
r@c@s\eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd
d„Zddd„Z	ddd„Z
ddd„ZdS)ÚLRParsercCs0|j|_|j|_|j|_||_| ¡d|_dS©NT)	Úlr_productionsÚproductionsÚ	lr_actionÚactionÚlr_gotoÚgotor6Úset_defaulted_statesÚerrorok)r	ZlrtabZerrorfr
r
rrszLRParser.__init__cCs
d|_dSrb)rjr;r
r
rr0&szLRParser.errokcCs@|jdd…=|jdd…=tƒ}d|_|j |¡|j d¡dS)Nú$endr)Ú
statestackÚsymstackr9r$Úappend)r	Úsymr
r
rr2)szLRParser.restartcCsPi|_|j ¡D]:\}}t| ¡ƒ}t|ƒdkr|ddkr|d|j|<qdS©Nér)Údefaulted_statesrfÚitemsÚlistÚvaluesr")r	ÚstateÚactionsZrulesr
r
rri9s
zLRParser.set_defaulted_statescCs
i|_dSr)rrr;r
r
rÚdisable_defaulted_states@sz!LRParser.disable_defaulted_statesNFcCsZ|str.t|tƒrttjƒ}| |||||¡S|rD| |||||¡S| |||||¡SdSr)	Ú	yaccdevelrJÚintrÚsysÚstderrÚ
parsedebugÚparseoptÚparseopt_notrack)r	ÚinputrCrÚtrackingÚ	tokenfuncr
r
rÚparseCs

zLRParser.parsec Cs¢d}g}|j}|j}	|j}
|j}tdƒ}d}
| d¡|sLddlm}|j}||_||_	|dk	rj| 
|¡|dkrz|j}n|}||_g}||_g}||_
||_d}| d¡tƒ}d|_| |¡d}| d¡| d|¡||kr(|s|sø|ƒ}n| ¡}|stƒ}d|_|j}|| |¡}n||}| d||¡| d	d
d dd
„|Dƒdd…¡t|ƒf ¡¡|dk	rj|dkr¾| |¡|}| d|¡| |¡d}|
rÆ|
d8}
qÆ|dkr.|
|}|j}|j}tƒ}||_d|_|r<| d|jdd dd
„||d…Dƒ¡d|	|d||¡n| d|jg|	|d|¡|rv||dd…}||d<|rÀ|d}|j|_|j|_|d}t|d|jƒ|_t|d|jƒ|_||_ z^||d…=||d…=| !|¡| dt"|dƒ¡| |¡|	|d|}| |¡WqÆt#k
rp| |¡| ¡| ¡|d}d|_|}t$}
d|_%YqÆXqÆn¸|rŒ|j|_|j|_|g}||_ zF| !|¡| dt"|dƒ¡| |¡|	|d|}| |¡WqÆt#k
r*| |¡| ¡| ¡|d}d|_|}t$}
d|_%YqÆXqÆ|dkrj|d}t|ddƒ}| dt"|ƒ¡| d¡|S|dkr”| &dd
d dd
„|Dƒdd…¡t|ƒf ¡¡|
dksº|j%r|t$}
d|_%|}|jdkrØd}|j'r|røt(|dƒsø||_t)|j'||ƒ}|j%rz|}d}qÆn`|rjt(|d ƒr4|j}nd}|rVt*j+ ,d!||jf¡nt*j+ ,d"|j¡nt*j+ ,d#¡dSnt$}
t|ƒdkr²|jdkr²d}d}d}|dd…=qÆ|jdkrÂdS|jdkrd|d}|jdkr|rt|d |jƒ|_t|d$|jƒ|_d}qÆtƒ}d|_t(|d ƒr4|j|_|_t(|d$ƒrN|j|_|_||_| |¡|}qÆ| ¡}|r‚|j|_|j|_| ¡|d}qÆt-d%ƒ‚qÆdS)&NrzPLY: PARSE DEBUG STARTrq©ÚlexrkÚzState  : %sz#Defaulted state %s: Reduce using %dzStack  : %sz%s . %sú cSsg|]
}|j‘qSr
r:©rHZxxr
r
rrI±sz'LRParser.parsedebug.<locals>.<listcomp>z Action : Shift and goto state %sz3Action : Reduce rule [%s] with %s and goto state %dú[ú,cSsg|]}t|jƒ‘qSr
)r+rF)rHZ_vr
r
rrIÔsú]éÿÿÿÿrXr\zResult : %srFrFzDone   : Returning %szPLY: PARSE DEBUG ENDzError  : %scSsg|]
}|j‘qSr
r:rˆr
r
rrI=srCrTú(yacc: Syntax error at line %d, token=%s
úyacc: Syntax error, token=%sú yacc: Parse error in input. EOF
r[úyacc: internal parser error!!!
).rfrhrdrrr@rr†r…rCr7r€r4rlrmrBrnr9r$rÚpopÚgetÚjoinr>Úlstriprr"rFrTr[rVrXr\rAÚcallabler)r`Úerror_countrjrr6Úhasattrr8r{r|rÚRuntimeError© r	r€rCrrr‚Ú	lookaheadÚlookaheadstackrwrhÚprodrrÚpsliceÚ
errorcountr…Ú	get_tokenrlrmÚerrtokenrorvÚltypeÚtÚpÚpnameÚplenÚtargÚt1rLr(ÚtokrTr
r
rr}\s|





*ÿ






$þÿ








*ÿ

zLRParser.parsedebugc CsNd}g}|j}|j}	|j}
|j}tdƒ}d}
|sBddlm}|j}||_||_|dk	r`| 	|¡|dkrp|j
}n|}||_
g}||_g}||_||_
d}| d¡tƒ}d|_| |¡d}||kr|sî|sÖ|ƒ}n| ¡}|sîtƒ}d|_|j}|| |¡}n||}|dk	rJ|dkrJ| |¡|}| |¡d}|
r¼|
d8}
q¼|dkr(|
|}|j}|j}tƒ}||_d|_|r„||dd…}||d<|râ|d}|j|_|j|_|d}t|d|jƒ|_t|d|jƒ|_||_zJ||d…=||d…=| |¡| |¡|	|d|}| |¡Wq¼tk
r~| |¡| ¡| ¡|d}d|_|}t}
d	|_Yq¼Xq¼n¤|rš|j|_|j|_|g}||_z2| |¡| |¡|	|d|}| |¡Wq¼tk
r$| |¡| ¡| ¡|d}d|_|}t}
d	|_Yq¼Xq¼|dkrJ|d}t|d
dƒ}|S|dkr@|
dksf|jr(t}
d	|_|}|jdkr„d}|j rÆ|r¤t!|dƒs¤||_t"|j ||ƒ}|jr&|}d}q¼n`|rt!|dƒrà|j}nd}|rt#j$ %d
||jf¡nt#j$ %d|j¡nt#j$ %d¡dSnt}
t|ƒdkr^|jdkr^d}d}d}|dd…=q¼|jdkrndS|jdkr|d}|jdkrº|r´t|d|jƒ|_t|d|jƒ|_d}q¼tƒ}d|_t!|dƒrà|j|_|_t!|dƒrú|j|_|_||_| |¡|}q¼| ¡}|r.|j|_|j|_| ¡|d}q¼t&dƒ‚q¼dS)Nrrqr„rkrŒrXr\rFrFrCrTrrŽrr[r)'rfrhrdrrr@r†r…rCr7r€r4rlrmrBrnr9r$r‘r’rr"rFrTr[rVrXr\rAr•r`r–rjr6r—r8r{r|rr˜r™r
r
rr~±sN




















zLRParser.parseoptcCs¶d}g}|j}|j}	|j}
|j}tdƒ}d}
|sBddlm}|j}||_||_|dk	r`| 	|¡|dkrp|j
}n|}||_
g}||_g}||_||_
d}| d¡tƒ}d|_| |¡d}||kr|sî|sÖ|ƒ}n| ¡}|sîtƒ}d|_|j}|| |¡}n||}|dk	rî|dkrJ| |¡|}| |¡d}|
r¼|
d8}
q¼|dkrÌ|
|}|j}|j}tƒ}||_d|_|r>||dd…}||d<||_zJ||d…=||d…=| |¡| |¡|	|d|}| |¡Wq¼tk
r8| |¡| ¡| ¡|d}d|_|}t}
d|_Yq¼Xq¼nŽ|g}||_z2| |¡| |¡|	|d|}| |¡Wq¼tk
rÈ| |¡| ¡| ¡|d}d|_|}t}
d|_Yq¼Xq¼|dkrî|d}t|ddƒ}|S|dkr¨|
dks
|jrÌt}
d|_|}|jdkr(d}|jrj|rHt|d	ƒsH||_t|j||ƒ}|jrÊ|}d}q¼n`|rºt|d
ƒr„|j}nd}|r¦t j! "d||jf¡nt j! "d|j¡nt j! "d
¡dSnt}
t|ƒdkr|jdkrd}d}d}|dd…=q¼|jdkrdS|jdkrŽ|d}|jdkr8d}q¼tƒ}d|_t|d
ƒr^|j|_|_#t|dƒrx|j$|_$|_%||_| |¡|}q¼| ¡}| ¡|d}q¼t&dƒ‚q¼dS)Nrrqr„rkrŒrFrFrCrTrrŽrr[r)'rfrhrdrrr@r†r…rCr7r€r4rlrmrBrnr9r$r‘r’rr"rFrAr•r`r–rjrVr6r—r8rTr{r|rrXr[r\r˜)r	r€rCrrr‚ršr›rwrhrœrrrržr…rŸrlrmr rorvr¡r¢r£r¤r¥r¦rLr(r¨rTr
r
rrÝs.




















zLRParser.parseopt_notrack)NNFFN)NNFFN)NNFFN)NNFFN)rrrrr0r2rirxrƒr}r~rr
r
r
rras

W
.raz^[a-zA-Z0-9_-]+$c@sReZdZdZddd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„ZdS)Ú
Productionr©ÚrightrNr†c	Cs¤||_t|ƒ|_||_||_d|_||_||_||_t	|jƒ|_	g|_
|jD]}||j
krL|j
 |¡qLg|_d|_
|jr”d|jd |j¡f|_nd|j|_dS©Nú%s -> %sr‡z
%s -> <empty>)rÚtuplerœÚnumberÚfuncr•ÚfileÚlineÚprecr"ÚusymsrnÚlr_itemsÚlr_nextr“r>)	r	r¯rrœÚ
precedencer°r±r²rDr
r
rr
s$


zProduction.__init__cCs|jSrr=r;r
r
rr<+szProduction.__str__cCsdt|ƒdS)NzProduction(ú)r=r;r
r
rr?.szProduction.__repr__cCs
t|jƒSr)r"rœr;r
r
rrS1szProduction.__len__cCsdS©Nrqr
r;r
r
rÚ__nonzero__4szProduction.__nonzero__cCs
|j|Sr)rœ©r	Úindexr
r
rrM7szProduction.__getitem__c	Csˆ|t|jƒkrdSt||ƒ}zt|j|d|_Wnttfk
rRg|_YnXz|j|d|_Wntk
r‚d|_YnX|Sr¹)r"rœÚLRItemÚ	ProdnamesÚlr_afterÚ
IndexErrorÚKeyErrorÚ	lr_before)r	rLr£r
r
rÚlr_item;s
zProduction.lr_itemcCs|jr||j|_dSr©r°r•©r	Úpdictr
r
rÚbindKszProduction.bind)rªNr†r)rrrÚreducedrr<r?rSrºrMrÃrÇr
r
r
rr©s
r©c@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚMiniProductioncCs.||_||_||_d|_||_||_||_dSr)rr"r°r•r±r²r>)r	r>rr"r°r±r²r
r
rrTszMiniProduction.__init__cCs|jSrr=r;r
r
rr<]szMiniProduction.__str__cCs
d|jS)NzMiniProduction(%s)r=r;r
r
rr?`szMiniProduction.__repr__cCs|jr||j|_dSrrÄrÅr
r
rrÇdszMiniProduction.bindN)rrrrr<r?rÇr
r
r
rrÉSs	rÉc@s$eZdZdd„Zdd„Zdd„ZdS)r½cCsZ|j|_t|jƒ|_|j|_||_i|_|j |d¡t|jƒ|_t|jƒ|_|j	|_	dS)NÚ.)
rrtrœr¯Úlr_indexÚ
lookaheadsÚinsertr®r"r´)r	r£rLr
r
rr‚szLRItem.__init__cCs,|jrd|jd |j¡f}n
d|j}|Sr¬)rœrr“)r	rDr
r
rr<s
zLRItem.__str__cCsdt|ƒdS)NzLRItem(r¸r=r;r
r
rr?”szLRItem.__repr__N)rrrrr<r?r
r
r
rr½sr½cCs6t|ƒd}|dkr2|||kr(||S|d8}qdSrp)r")ZsymbolsÚ	terminalsrPr
r
rÚrightmost_terminalœs
rÏc@seZdZdS)ÚGrammarErrorNr r
r
r
rrЬsrÐc@s’eZdZdd„Zdd„Zdd„Zdd„Zd$dd
„Zd%dd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zd&d d!„Zd"d#„Zd	S)'ÚGrammarcCsbdg|_i|_i|_i|_|D]}g|j|<qg|jd<i|_i|_i|_i|_tƒ|_	d|_
dS©Nr)ÚProductionsr¾ÚProdmapÚ	TerminalsÚNonterminalsÚFirstÚFollowÚ
PrecedenceÚsetÚUsedPrecedenceÚStart)r	rÎÚtermr
r
rr°s
zGrammar.__init__cCs
t|jƒSr)r"rÓr;r
r
rrSÔszGrammar.__len__cCs
|j|Sr)rÓr»r
r
rrM×szGrammar.__getitem__cCsL|jdgkstdƒ‚||jkr*td|ƒ‚|dkr:tdƒ‚||f|j|<dS)Nz2Must call set_precedence() before add_production()z,Precedence already specified for terminal %r)Úleftr«Únonassocz:Associativity must be one of 'left','right', or 'nonassoc')rÓÚAssertionErrorrÙrÐ)r	rÝÚassocÚlevelr
r
rÚset_precedenceâs
zGrammar.set_precedenceNr†rc	Cs¸||jkrtd|||fƒ‚|dkr6td|||fƒ‚t |¡sRtd|||fƒ‚t|ƒD]œ\}}|ddkrÐzLt|ƒ}t|ƒdkr˜td||||fƒ‚||jkr¬g|j|<|||<WqZWntk
rÎYnXt |¡sZ|d	krZtd
||||fƒ‚qZd	|kr„|dd	kr td||fƒ‚|d
d	kr>td||fƒ‚|d}	|j 	|	¡}
|
sltd|||	fƒ‚n|j
 |	¡|d
d…=nt||jƒ}	|j 	|	d¡}
d||f}||j
krâ|j
|}td|||fd|j|jfƒ‚t|jƒ}
||jkrg|j|<|D]J}||jkr(|j| |
¡n&||jkr>g|j|<|j| |
¡qt|
|||
|||ƒ}|j |¡||j
|<z|j| |¡Wn"tk
r²|g|j|<YnXdS)Nz7%s:%d: Illegal rule name %r. Already defined as a tokenrz5%s:%d: Illegal rule name %r. error is a reserved wordz%s:%d: Illegal rule name %rrz'"rqzA%s:%d: Literal token %s in rule %r may only be a single characterz%precz!%s:%d: Illegal name %r in rule %rrŒz+%s:%d: Syntax error. Nothing follows %%precéþÿÿÿzH%s:%d: Syntax error. %%prec can only appear at the end of a grammar rulez/%s:%d: Nothing known about the precedence of %rrªr­z%s:%d: Duplicate rule %s. zPrevious definition at %s:%d)rÕrÐÚ_is_identifierÚmatchÚ	enumerateÚevalr"r`rÙr’rÛÚaddrÏrÔr±r²rÓrÖrnr©r¾rÁ)r	ÚprodnameÚsymsr°r±r²rLrDÚcZprecnameZprodprecÚmapÚmZpnumberr¢r£r
r
rÚadd_productionûsv


ÿ


ÿ
ÿ



zGrammar.add_productioncCsT|s|jdj}||jkr&td|ƒ‚tdd|gƒ|jd<|j| d¡||_dS)Nrqzstart symbol %s undefinedrúS')rÓrrÖrÐr©rnrÜ)r	Ústartr
r
rÚ	set_startOs
zGrammar.set_startcs>‡‡‡fdd„‰tƒ‰ˆˆjdjdƒ‡fdd„ˆjDƒS)NcsB|ˆkrdSˆ |¡ˆj |g¡D]}|jD]}ˆ|ƒq.q$dSr)rér¾r’rœ)rDr£r&©Úmark_reachable_fromÚ	reachabler	r
rrôbs

z5Grammar.find_unreachable.<locals>.mark_reachable_fromrcsg|]}|ˆkr|‘qSr
r
rG)rõr
rrIlsz,Grammar.find_unreachable.<locals>.<listcomp>)rÚrÓrœrÖr;r
rórÚfind_unreachable_szGrammar.find_unreachablecCsài}|jD]}d||<q
d|d<|jD]}d||<q&d}|j ¡D]N\}}|D]@}|jD]}||sXd}qrqXd}|rN||sŠd||<d}qBqNqB|s4qšq4g}	| ¡D]4\}}
|
s¦||jkrÐ||jkrÐ|dkrÐq¦|	 |¡q¦|	S)NTrkFr)rÕrÖr¾rsrœrn)r	Z
terminatesr¢rLÚsome_changeZplr£rDZp_terminatesÚinfiniterÝr
r
rÚinfinite_cyclesvs8




zGrammar.infinite_cyclescCsPg}|jD]@}|sq
|jD].}||jkr||jkr|dkr| ||f¡qq
|SrÒ)rÓrœr¾rÕrn)r	r(r£rDr
r
rÚundefined_symbols¶s

zGrammar.undefined_symbolscCs2g}|j ¡D]\}}|dkr|s| |¡q|SrÒ)rÕrsrn)r	Z
unused_tokrDrNr
r
rÚunused_terminalsÇs
zGrammar.unused_terminalscCs8g}|j ¡D]$\}}|s|j|d}| |¡q|S©Nr)rÖrsr¾rn)r	Zunused_prodrDrNr£r
r
rÚunused_rulesÖszGrammar.unused_rulescCs@g}|jD]0}||jks
||jks
| ||j|df¡q
|Srü)rÙrÕrÛrn)r	ZunusedZtermnamer
r
rÚunused_precedenceçs

zGrammar.unused_precedencecCsZg}|D]B}d}|j|D]$}|dkr,d}q||kr| |¡q|rFqqVq| d¡|S)NFú<empty>T)r×rn)r	Zbetar(ÚxZx_produces_emptyrr
r
rÚ_first÷s
zGrammar._firstcCs¨|jr|jS|jD]}|g|j|<qdg|jd<|jD]}g|j|<q6d}|jD]H}|j|D]8}| |j¡D]&}||j|krn|j| |¡d}qnq^qP|sFq¢qF|jS)NrkFT)r×rÕrÖr¾rrœrn)r	r¢rLr÷r£rr
r
rÚ
compute_firsts"



zGrammar.compute_firstc
Cs<|jr|jS|js| ¡|jD]}g|j|<q |s@|jdj}dg|j|<d}|jdd…D]Ì}t|jƒD]¼\}}||jkrl| |j|dd…¡}d}|D]:}	|	dkrÌ|	|j|krÌ|j| 	|	¡d}|	dkržd}qž|sð|t
|jƒdkrl|j|jD]*}	|	|j|krü|j| 	|	¡d}qüqlq^|sLq6qL|jS)NrqrkFrÿT)rØr×rrÖrÓrrçrœrrnr")
r	rñÚkÚdidaddr£rPÚBZfstZhasemptyrr
r
rÚcompute_follow?s:

zGrammar.compute_followc
CsÌ|jD]À}|}d}g}|t|ƒkr(d}ntt||ƒ}z|j|j|d|_Wnttfk
rjg|_YnXz|j|d|_Wntk
ršd|_YnX||_	|s¨qÀ| 
|¡|}|d7}q||_qdS©Nrrq)rÓr"r½r¾rœr¿rÀrÁrÂr¶rnrµ)r	r£ZlastlrirPrµZlrir
r
rÚ
build_lritemszs,



zGrammar.build_lritems)Nr†r)N)N)rrrrrSrMrãrïròrörùrúrûrýrþrrrrr
r
r
rrѯs $
T
@#%
;rÑc@seZdZdS)ÚVersionErrorNr r
r
r
rr	žsr	c@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚLRTablecCsd|_d|_d|_d|_dSr)rergrcÚ	lr_methodr;r
r
rr¢szLRTable.__init__cCszt|tjƒr|}ntd|ƒtj|}|jtkr:tdƒ‚|j	|_
|j|_g|_
|jD]}|j
 t|Ž¡qV|j|_|jS)Nú	import %sú&yacc table file version is out of date)rJÚtypesÚ
ModuleTypeÚexecr{ÚmodulesZ_tabversionÚ__tabversion__r	Z
_lr_actionreZ_lr_gotorgrcZ_lr_productionsrnrÉZ
_lr_methodrZ
_lr_signature)r	Úmodulerr£r
r
rÚ
read_table¨s


zLRTable.read_tablecCsÂzddl}Wntk
r(ddl}YnXtj |¡s:t‚t|dƒ}| |¡}|tkr^t	dƒ‚| |¡|_
| |¡}| |¡|_| |¡|_| |¡}g|_
|D]}|j
 t|Ž¡q | ¡|S)NrÚrbr
)ÚcPickleÚImportErrorÚpickleÚosÚpathÚexistsÚopenÚloadrr	rrergrcrnrÉÚclose)r	ÚfilenamerZin_fZ
tabversionÚ	signaturerdr£r
r
rÚread_pickle¼s(



zLRTable.read_picklecCs|jD]}| |¡qdSr)rcrÇ)r	rÆr£r
r
rÚbind_callablesØs
zLRTable.bind_callablesN)rrrrrr!r"r
r
r
rr
¡sr
c	CsLi}|D]}d||<qg}i}|D]$}||dkr"t|||||||ƒq"|Srü)Útraverse)ÚXÚRÚFPÚNrrBÚFr
r
rÚdigraphõs
r)c	Csü| |¡t|ƒ}|||<||ƒ||<||ƒ}|D]f}	||	dkrVt|	||||||ƒt||||	ƒ||<| |	g¡D]}
|
||krx|| |
¡qxq2|||krøt||d<||||d<| ¡}||krøt||d<||||d<| ¡}qÊdS)NrrŒ)rnr"r#Úminr’ÚMAXINTr‘)rr'rBr(r$r%r&ÚdÚrelÚyÚaZelementr
r
rr#s(
r#c@seZdZdS)Ú	LALRErrorNr r
r
r
rr0sr0c@s’eZdZd$dd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zd%d d!„Zd&d"d#„ZdS)'ÚLRGeneratedTablerNcCsž|dkrtd|ƒ‚||_||_|s*tƒ}||_i|_i|_|j|_i|_	i|_
d|_d|_d|_
g|_g|_g|_|j ¡|j ¡|j ¡| ¡dS)N)ZSLRrzUnsupported method %sr)r0ÚgrammarrrÚlogrergrÓrcÚ
lr_goto_cacheÚlr0_cidhashÚ
_add_countZsr_conflictZrr_conflictZ	conflictsÚsr_conflictsÚrr_conflictsrrrÚlr_parse_table)r	r2Úmethodr3r
r
rr"s,


zLRGeneratedTable.__init__cCsn|jd7_|dd…}d}|rjd}|D]<}|jD]0}t|ddƒ|jkrLq4| |j¡|j|_d}q4q*q|S)NrqTFÚ	lr0_addedr)r6r¿rVrnr¶r;)r	ÚIÚJrrQrr
r
rÚlr0_closureGs

zLRGeneratedTable.lr0_closurec	CsÐ|j t|ƒ|f¡}|r|S|j |¡}|s:i}||j|<g}|D]H}|j}|rB|j|krB| t|ƒ¡}|s|i}||t|ƒ<| |¡|}qB| d¡}|sº|r²| |¡}||d<n||d<||jt|ƒ|f<|S)Nrk)r4r’r%r¶rÂrnr>)	r	r<rÚgrDZgsr£rLÚs1r
r
rÚlr0_gotoas2




zLRGeneratedTable.lr0_gotoc	CsÊ| |jjdjg¡g}d}|D]}||jt|ƒ<|d7}q d}|t|ƒkrÆ||}|d7}i}|D]}|jD]}d||<qnqd|D]@}| ||¡}|r‚t|ƒ|jkr¦q‚t|ƒ|jt|ƒ<| 	|¡q‚q@|Sr)
r>r2rÓr¶r5r%r"r´rArn)	r	ÚCrPr<ZasymsÚiirDrr?r
r
rÚ	lr0_items„s(

zLRGeneratedTable.lr0_itemscCsxtƒ}d}|jjdd…D]@}|jdkr6| |j¡q|jD]}||kr<qq<| |j¡qt|ƒ|krjqtt|ƒ}q
|Sr)rÚr2rÓr"rérrœ)r	ÚnullableZnum_nullabler£r¢r
r
rÚcompute_nullable_nonterminals¼s


z.LRGeneratedTable.compute_nullable_nonterminalscCsjg}t|ƒD]X\}}|D]J}|j|jdkr||j|jdf}|d|jjkr||kr| |¡qq|Sr¹)rçrËr"rœr2rÖrn)r	rBÚtransZstatenorvr£r¢r
r
rÚfind_nonterminal_transitionsÙsz-LRGeneratedTable.find_nonterminal_transitionscCs”i}|\}}g}| |||¡}|D]B}	|	j|	jdkr$|	j|	jd}
|
|jjkr$|
|kr$| |
¡q$|dkr||jjdjdkr| d¡|S)Nrqrrk)rArËr"rœr2rÕrnrÓ)r	rBrGrEZdr_setrvr'Útermsr?r£r/r
r
rÚdr_relationís
zLRGeneratedTable.dr_relationcCsrg}|\}}| |||¡}|j t|ƒd¡}|D]:}	|	j|	jdkr2|	j|	jd}
|
|kr2| ||
f¡q2|S)NrŒrq)rAr5r’r%rËr"rœrn)r	rBrGÚemptyr-rvr'r?rQr£r/r
r
rÚreads_relation	szLRGeneratedTable.reads_relationcCs²i}i}i}|D]}d||<q|D]„\}}	g}
g}||D],}|j|	krNq<|j}
|}|
|jdkrö|
d}
|j|
}||f|krÒ|
d}||jkrÄ|j||jjkrªqÒ|j||krºqÒ|d}qŒ| ||f¡| |||¡}|j 	t
|ƒd¡}qX||D]j}|j|jkrqþ|j|jkr"qþd}||jkrZ|j||j|dkrNqþ|d}q&|
 ||f¡qþq<|D]*}||kr†g||<|| ||	f¡qp|
|||	f<q"||fS)NrqrŒr)rrËr"rœr2rÕrnrAr5r’r%)r	rBrGrEZlookdictZincludedictZdtransr¢rvr'ZlookbZincludesr£rËrQZlir?r&rPr
r
rÚcompute_lookback_includes1	sX





z*LRGeneratedTable.compute_lookback_includescs0‡‡‡fdd„}‡‡‡fdd„}t|||ƒ}|S)Ncsˆ ˆ|ˆ¡Sr)rJ©r©rBrEr	r
rÚ<lambda>‚	óz4LRGeneratedTable.compute_read_sets.<locals>.<lambda>csˆ ˆ|ˆ¡Sr)rLrNrOr
rrPƒ	rQ©r))r	rBÚntransrEr&r%r(r
rOrÚcompute_read_sets	sz"LRGeneratedTable.compute_read_setscs(‡fdd„}‡fdd„}t|||ƒ}|S)Ncsˆ|Srr
rN)Úreadsetsr
rrP˜	rQz6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>csˆ |g¡Sr)r’rN)Úinclsetsr
rrP™	rQrR)r	rSrUrVr&r%r(r
)rVrUrÚcompute_follow_sets—	sz$LRGeneratedTable.compute_follow_setsc	Csl| ¡D]^\}}|D]P\}}||jkr0g|j|<| |g¡}|D]"}||j|kr@|j| |¡q@qqdSr)rsrÌr’rn)	r	Z	lookbacksZ	followsetrGZlbrvr£rr/r
r
rÚadd_lookaheads©	s

zLRGeneratedTable.add_lookaheadscCsP| ¡}| |¡}| |||¡}| |||¡\}}| |||¡}| ||¡dSr)rFrHrTrMrWrX)r	rBrErGrUZlookdZincludedZ
followsetsr
r
rÚadd_lalr_lookaheads»	s
z$LRGeneratedTable.add_lalr_lookaheadsc$
Cs
|jj}|jj}|j}|j}|j}i}| d|j¡| ¡}|jdkrP| 	|¡d}|D]ª}	g}
i}i}i}
| d¡| d|¡| d¡|	D]}| d|j
|¡q’| d¡|	D]ð}|j|jdkr|j
dkrìd|d	<||d	<q¨|jdkr|j|}n|jj|j
}|D]ú}|
 ||d
|j
|ff¡| |¡}|dk	rè|dkr.|||j
j\}}| |d¡\}}||ks–||krê|dkrê|j
||<|||<|sÔ|sÔ| d
|¡|j ||df¡||j
jd7_nB||kr|dkrd||<n$|sæ| d|¡|j ||df¡n¸|dkrÚ||}||j
}|j|jkr¢|j
||<|||<||}}||j
jd7_||j
jd8_n
||}}|j |||f¡| d|||j
||¡ntd|ƒ‚n(|j
||<|||<||j
jd7_qq¶|j}|j|d}||jjkr¶| |	|¡}|j t|ƒd¡}|dkr¶|
 ||d|f¡| |¡}|dk	r˜|dkr¦||kr–td|ƒ‚nð|dkrŠ|||j
j\}}| |d¡\}}||ksò||kr@|dkr@|||j
jd8_|||<|||<|sˆ| d|¡|j ||df¡nH||kr^|dkr^d||<n*|s–|s–| d
|¡|j ||df¡ntd|ƒ‚q¶|||<|||<q¶i}|
D]>\}}}||kr²|||kr²| d||¡d|||f<q²| d¡d}|
D]P\}}}||kr|||k	r||f|kr| d||¡d}d|||f<q|rf| d¡i} |	D]*}!|!jD]}"|"|jjkrxd| |"<qxqn| D]D}#| |	|#¡}|j t|ƒd¡}|dkrž||
|#<| d|#|¡qž|||<|||<|
||<|d7}qXdS)NzParsing method: %srrr†zstate %dz    (%d) %srqrðrkzreduce using rule %d (%s)rªrÞz3  ! shift/reduce conflict for %s resolved as reduceÚreducerßz2  ! shift/reduce conflict for %s resolved as shiftÚshiftz=  ! reduce/reduce conflict for %s resolved using rule %d (%s)zUnknown conflict in state %drŒzshift and go to state %dz Shift/shift conflict in state %dr«z    %-15s %sz  ! %-15s [ %s ]z"    %-30s shift and go to state %d) r2rÓrÙrgrer3rrrDrYr¯r"rËrrÌrØrnr’r³r7rÈr²r8r0rœrÕrAr5r%rr´rÖ)$r	rÓrÙrhrfr3ZactionprBÚstr<ZactlistZ	st_actionZ
st_actionpZst_gotor£Zlaheadsr/r&ZsprecZslevelZrprecZrlevelZoldpZppZchosenpZrejectprPr?rQZ	_actprintrîZnot_usedZnkeysrCrDrLr
r
rr9Ó	s

















ÿ












zLRGeneratedTable.lr_parse_tabler†cCsšt|tjƒrtdƒ‚| d¡d}tj ||¡d}z8t|dƒ}| 	dtj 
|¡t|j|f¡d}|r`i}|j
 ¡D]T\}	}
|
 ¡D]B\}}| |¡}
|
s°ggf}
|
||<|
d |	¡|
d |¡qŠqz| 	d	¡| ¡D]f\}}| 	d
|¡|dD]}
| 	d|
¡q| 	d¡|dD]}
| 	d|
¡q(| 	d
¡qâ| 	d¡| 	d¡nF| 	d¡|j
 ¡D]&\}}| 	d|d|d|f¡qt| 	d¡|r¨i}|j ¡D]Z\}	}
|
 ¡D]F\}}| |¡}
|
sòggf}
|
||<|
d |	¡|
d |¡qÊqº| 	d¡| ¡D]h\}}| 	d
|¡|dD]}
| 	d|
¡qF| 	d¡|dD]}
| 	d|
¡qn| 	d
¡q(| 	d¡| 	d¡nF| 	d¡|j ¡D]&\}}| 	d|d|d|f¡q¼| 	d¡| 	d¡|jD]Z}|jr:| 	d|j|j|j|jtj 
|j¡|jf¡n| 	dt|ƒ|j|jf¡qþ| 	d¡| ¡Wn&tk
r”}z‚W5d}~XYnXdS)Nz"Won't overwrite existing tabmodulerÊrŒz.pyÚwzu
# %s
# This file is automatically generated. Do not edit.
_tabversion = %r

_lr_method = %r

_lr_signature = %r
    rqrz
_lr_action_items = {z%r:([z%r,z],[z]),z}
zÂ
_lr_action = {}
for _k, _v in _lr_action_items.items():
   for _x,_y in zip(_v[0],_v[1]):
      if not _x in _lr_action:  _lr_action[_x] = {}
      _lr_action[_x][_k] = _y
del _lr_action_items
z
_lr_action = { z(%r,%r):%r,z
_lr_goto_items = {z¹
_lr_goto = {}
for _k, _v in _lr_goto_items.items():
   for _x, _y in zip(_v[0], _v[1]):
       if not _x in _lr_goto: _lr_goto[_x] = {}
       _lr_goto[_x][_k] = _y
del _lr_goto_items
z
_lr_goto = { z_lr_productions = [
z  (%r,%r,%d,%r,%r,%d),
z  (%r,%r,%d,None,None,None),
z]
)rJrrÚIOErrorÚsplitrrr“rrÚbasenamerrrersr’rnrgrcr°r>rr"r±r²r)r	Ú	tabmoduleÚ	outputdirr ZbasemodulenamerrZsmallerrsrDZndrrNrPrr£Úer
r
rÚwrite_tableŠ
s’
ø





 




	
 


ÿ
 
zLRGeneratedTable.write_tablecCsþzddl}Wntk
r(ddl}YnXt|dƒÀ}| t|t¡| |j|t¡| ||t¡| |j|t¡| |j	|t¡g}|j
D]T}|jrÂ| |j
|j|j|jtj |j¡|jf¡qŒ| t
|ƒ|j|jdddf¡qŒ| ||t¡W5QRXdS)NrÚwb)rrrrÚdumprÚpickle_protocolrrergrcr°rnr>rr"rrr`r±r²)r	rr rZoutfZoutpr£r
r
rÚpickle_tables 
, zLRGeneratedTable.pickle_table)rN)r†r†)r†)rrrrr>rArDrFrHrJrLrMrTrWrXrYr9rdrhr
r
r
rr1!s"
%#8+P8
zr1cCs0t |¡}|j ¡}|j|jkr,| |j¡|Sr)r{Ú	_getframeÚ	f_globalsÚcopyÚf_localsÚupdate)ZlevelsrZldictr
r
rÚget_caller_module_dict's


rnc
Csg}| ¡}d}|}|D]â}|d7}| ¡}|s2qzˆ|ddkrf|sTtd||fƒ‚|}	|dd…}
n@|d}	|	}|dd…}
|d}|dkr¦|dkr¦td||fƒ‚| |||	|
f¡Wqtk
rЂYqtk
røtd	||| ¡fƒ‚YqXq|S)
Nrqrú|z%s:%d: Misplaced '|'éú:z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)Ú
splitlinesr_r`rnÚ	ExceptionÚstrip)Údocr±r²r2ZpstringsZlastpZdlineZpsr£rêrëZassignr
r
rÚ
parse_grammar3s6rvc@s†eZdZd dd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„ZdS)!Ú
ParserReflectNcCsL||_d|_d|_d|_tƒ|_g|_d|_|dkrBtt	j
ƒ|_n||_dS)NF)rÆrñÚ
error_funcÚtokensrÚrr2rrr{r|r3)r	rÆr3r
r
rr]szParserReflect.__init__cCs,| ¡| ¡| ¡| ¡| ¡dSr)Ú	get_startÚget_error_funcÚ
get_tokensÚget_precedenceÚget_pfunctionsr;r
r
rÚget_allls
zParserReflect.get_allcCs6| ¡| ¡| ¡| ¡| ¡| ¡|jSr)Úvalidate_startÚvalidate_error_funcÚvalidate_tokensÚvalidate_precedenceÚvalidate_pfunctionsÚvalidate_modulesrr;r
r
rÚvalidate_alltszParserReflect.validate_allc	Cszddlm}Wn tk
r0ddlm}YnXz|ƒ}|jrR| |j d¡¡|jrz| d dd„|jDƒ¡ d¡¡|jr˜| d |j¡ d¡¡|j	D] }|drž| |d d¡¡qžWnt
tfk
rÚYnXt 
| ¡¡}tjddkr| d¡}|S)	Nr)Úmd5zlatin-1r†cSsg|]}d |¡‘qS)r†)r“)rHr£r
r
rrIˆsz+ParserReflect.signature.<locals>.<listcomp>r‡r)Zhashlibr‡rrñrmÚencoder³r“ryÚpfuncsÚ	TypeErrorÚ
ValueErrorÚbase64Z	b16encodeÚdigestr{Úversion_infoÚdecode)r	r‡Zsigrrr
r
rr ~s*"

zParserReflect.signaturec	Cs”t d¡}|jD]~}t |¡\}}i}t|ƒD]^\}}|d7}| |¡}|r.| d¡}| |¡}	|	sn|||<q.t 	|¡}
|j
 d|
|||	¡q.qdS)Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(rqz;%s:%d: Function %s redefined. Previously defined on line %d)ÚreÚcompilerÚinspectZgetsourcelinesrçræÚgroupr’Ú
getsourcefiler3r)r	ZfrerÚlinesZlinenZ	counthashr²rîrÚprevrr
r
rr…¡s&






ÿzParserReflect.validate_modulescCs|j d¡|_dS)Nrñ)rÆr’rñr;r
r
rrz·szParserReflect.get_startcCs&|jdk	r"t|jtƒs"|j d¡dS)Nz'start' must be a string)rñrJÚstring_typesr3rr;r
r
rr€»s
zParserReflect.validate_startcCs|j d¡|_dS)NÚp_error)rÆr’rxr;r
r
rr{ÁszParserReflect.get_error_funccCs |jrœt|jtjƒrd}n*t|jtjƒr.d}n|j d¡d|_dS|jjj}|jjj	}t
 |j¡}|j 
|¡|jjj|}|dkrœ|j d||¡d|_dS)Nrrqz2'p_error' defined, but is not a function or methodTz$%s:%d: p_error() requires 1 argument)rxrJrÚFunctionTypeÚ
MethodTyper3rÚ__code__Úco_firstlinenoÚco_filenamer’Ú	getmodulerréÚco_argcount)r	ZismethodZelineZefilerZargcountr
r
rrÅs 

z!ParserReflect.validate_error_funccCsn|j d¡}|s&|j d¡d|_dSt|ttfƒsJ|j d¡d|_dS|sd|j d¡d|_dS||_dS)NryzNo token list is definedTztokens must be a list or tupleztokens is empty)rÆr’r3rrJrtr®ry)r	ryr
r
rr|ÛszParserReflect.get_tokenscCsVd|jkr |j d¡d|_dStƒ}|jD]$}||krF|j d|¡| |¡q,dS)Nrz.Illegal token name 'error'. Is a reserved wordTzToken %r multiply defined)ryr3rrÚrré)r	rÎrLr
r
rr‚ïs

zParserReflect.validate_tokenscCs|j d¡|_dS)Nr·)rÆr’r³r;r
r
rr}ýszParserReflect.get_precedencecCsg}|jrt|jttfƒs2|j d¡d|_dSt|jƒD]È\}}t|ttfƒsj|j d¡d|_dSt|ƒdkr|j d|¡d|_dS|d}t|tƒsº|j d¡d|_dS|dd…D]<}t|tƒsî|j d	¡d|_dS| 	|||df¡qÆq<||_
dS)
Nz"precedence must be a list or tupleTzBad precedence tablerpz?Malformed precedence entry %s. Must be (assoc, term, ..., term)rz)precedence associativity must be a stringrqz precedence items must be strings)r³rJrtr®r3rrçr"r—rnÚpreclist)r	r râr£rárÝr
r
rrƒs6

z!ParserReflect.validate_precedencecCs~g}|j ¡D]T\}}| d¡r|dkr*qt|tjtjfƒr|jj}t	 
|¡}| ||||jf¡q|j
dd„d||_dS)NÚp_r˜cSs |dt|dƒ|d|dfS)Nrrqrprr=)Z
p_functionr
r
rrP-s

üz.ParserReflect.get_pfunctions.<locals>.<lambda>)Úkey)rÆrsÚ
startswithrJrr™ršr›rœr’ržrnÚ__doc__Úsortr‰)r	Zp_functionsrÚitemr²rr
r
rr~ s
zParserReflect.get_pfunctionscCsNg}t|jƒdkr(|j d¡d|_dS|jD]\}}}}t |¡}|j|}t|tj	ƒrbd}nd}|j
j|krŽ|j d|||j¡d|_q.|j
j|kr¶|j d|||j¡d|_q.|j
sÒ|j d|||j¡q.z(t|||ƒ}	|	D]}
| ||
f¡qäWn:tk
r4}z|j t|ƒ¡d|_W5d}~XYnX|j |¡q.|j ¡D]ô\}}
| d	¡rzt|
tjtj	fƒrzqN| d
¡rŠqN| d	¡r®|dkr®|j d|¡t|
tjƒrÊ|
j
jdksèt|
tj	ƒrN|
jj
jdkrN|
j
rNz8|
j
 d
¡}|ddkr&|j d|
j
j|
j
j|¡Wntk
r>YnXqN||_dS)Nrz+no rules of the form p_rulename are definedTrprqz%%s:%d: Rule %r has too many argumentsz#%s:%d: Rule %r requires an argumentzA%s:%d: No documentation string specified in function %r (ignored)r¡Zt_r˜z%r not defined as a functionr‡rqz9%s:%d: Possible grammar rule %r defined without p_ prefix)r"r‰r3rr’r”rÆrJrršr›rŸrr¤rrvrnr`r>rrérsr£r™Ú__func__r_rrœrÀr2)r	r2r²rrrur±r°ZreqargsZparsed_gr?rcrLrNr
r
rr„5sn

ÿ 
ÿÿÿ
z!ParserReflect.validate_pfunctions)N)rrrrrr†r r…rzr€r{rr|r‚r}rƒr~r„r
r
r
rrw\s

#rwc
<s0	|dkrt}|rd}|dkr&ttjƒ}ˆrf‡fdd„tˆƒDƒ}
t|
ƒ}d|krntj|dj|d<ntdƒ}|	dkrât	|t
jƒrŠ|j}nLd|krœ|d}n:| d¡}d 
|dd…¡}td	|ƒttj|dd
ƒ}tj |¡}	| d¡}|rt	|tƒrd|kr|d|}|dk	r&||d<t||d
}| ¡|jrJtdƒ‚| ¡}zŽtƒ}|rl| |¡}n
| |¡}|s†||krÞz&| |j¡t||j ƒ}|j!a!|WWSt"k
rÜ}z| #d|¡W5d}~XYnXWnFt$k
r}z| #t|ƒ¡W5d}~XYnt%k
r&YnX|
dkrš|r”ztt&tj 
|	|¡dƒƒ}
Wn<t'k
r}z| #d||f¡t(ƒ}
W5d}~XYnXnt(ƒ}
|
 )dt*¡d}| +¡r¼tdƒ‚|j sÎ| #d¡t,|j-ƒ}|j.D]P\}}}z| /|||¡Wn0t0k
r*}z| #d|¡W5d}~XYnXqÞ|j1D]b\}}|\} }!}"}#z| 2|"|#|| |!¡Wn4t0k
r”}z| d|¡d}W5d}~XYnXq6z&|dkr´| 3|j4¡n
| 3|¡Wn6t0k
rö}z| t|ƒ¡d}W5d}~XYnX|rtdƒ‚| 5¡}$|$D]"\}%}&| d|&j6|&j7|%¡d}q| 8¡}'|'r†|
 )d
¡|
 )d¡|
 )d
¡|'D]}| #d|¡|
 )d|¡qf|rÎ|
 )d
¡|
 )d¡|
 )d
¡t9|j:ƒD]\}(})|
 )d|(|)¡q´| ;¡}*|*D]}&| #d|&j6|&j7|&j<¡qÚt=|'ƒdkr| #d¡t=|'ƒdkr.| #d t=|'ƒ¡t=|*ƒdkrF| #d!¡t=|*ƒdkrd| #d"t=|*ƒ¡|r4|
 )d
¡|
 )d#¡|
 )d
¡t>|j?ƒ}+|+ @¡|+D]*}|
 )d$|d% 
d&d„|j?|Dƒ¡¡qž|
 )d
¡|
 )d'¡|
 )d
¡t>|jAƒ},|, @¡|,D]*}-|
 )d$|-d% 
d(d„|jA|-Dƒ¡¡qþ|
 )d
¡|r~| B¡}.|.D]}/| #d)|/¡qF| C¡}0|0D]}1| d*|1¡d}qf| D¡}2|2D]\}}| d+||¡d}qŠ|r¶tdƒ‚|rÈ| Ed,|¡tF|||
ƒ}|rFt=|jGƒ}3|3dkrú| #d-¡n|3dkr| #d.|3¡t=|jHƒ}4|4dkr0| #d/¡n|4dkrF| #d0|4¡|rp|jGs\|jHrp|
 #d
¡|
 #d1¡|
 #d
¡|jGD]\}5}6}7|
 #d2|6|5|7¡q€tIƒ}8|jHD]x\}5}9}:|5tJ|9ƒtJ|:ƒf|8krÐqª|
 #d3|5|9¡|
 #d4|:|5¡| #d3|5|9¡| #d4|:|5¡|8 K|5tJ|9ƒtJ|:ƒf¡qªg};|jHD]@\}5}9}:|:jLs.|:|;kr.|
 #d5|:¡| #d5|:¡|; M|:¡q.|rÀz| N||	|¡Wn6t'k
r¾}z| #d6||f¡W5d}~XYnX|	rz| O||¡Wn6t'k
	r}z| #d6||f¡W5d}~XYnX| |j¡t||j ƒ}|j!a!|S)7Nrcsg|]}|tˆ|ƒf‘qSr
)rV)rHr©rr
rrIŠszyacc.<locals>.<listcomp>Ú__file__rrprÊrŒrr†Ú__package__rñ)r3zUnable to build parserz.There was a problem loading the table file: %rr]zCouldn't open %r. %sz5Created by PLY version %s (http://www.dabeaz.com/ply)Fz no p_error() function is definedz%sTz;%s:%d: Symbol %r used, but not defined as a token or a rulezUnused terminals:zToken %r defined, but not usedz    %srÑzRule %-5d %sz$%s:%d: Rule %r defined, but not usedrqzThere is 1 unused tokenzThere are %d unused tokenszThere is 1 unused rulezThere are %d unused rulesz'Terminals, with rules where they appearz
%-20s : %sr‡cSsg|]}t|ƒ‘qSr
r=rGr
r
rrI0
sz*Nonterminals, with rules where they appearcSsg|]}t|ƒ‘qSr
r=rGr
r
rrI8
szSymbol %r is unreachablez)Infinite recursion detected for symbol %rz0Precedence rule %r defined for unknown symbol %rzGenerating %s tablesz1 shift/reduce conflictz%d shift/reduce conflictsz1 reduce/reduce conflictz%d reduce/reduce conflictsz
Conflicts:z7shift/reduce conflict for %s in state %d resolved as %sz;reduce/reduce conflict in state %d resolved using rule (%s)zrejected rule (%s) in state %dzRule (%s) is never reducedzCouldn't create %r. %s)PÚ
tab_modulerr{r|ÚdirÚdictrr©rnrJrrr_r“rrVrrÚdirnamer’r>rwrrrr r
r!rr"rÆrarxrƒrsrr	rrr^rrÚ__version__r†rÑryr rãrÐr2rïròrñrúr±r²rûrçrÓrýrr"rtrÕr¥rÖrörùrþrr1r7r8rÚr%rérÈrnrdrh)<r:rrrarñZcheck_recursionÚoptimizeZwrite_tablesZ	debugfilerbZdebuglogZerrorlogZ
picklefileZ_itemsrÆZsrcfileÚpartsZpkgnameZpkgZpinfor ZlrZread_signaturer7rcÚerrorsr2rÝrárâÚfuncnameZgramr±r²rêrërúrorœrûrLr£rýrIZnontermsZnontermZunreachableÚurøÚinfZunused_precZnum_srZnum_rrrvr¨Z
resolutionZalready_reportedZruleZrejectedZwarned_neverr
r¨rÚyaccws„






"



"












(



(









$$r¶)<rrr{Zos.pathrr’rŒr,r¯rZ	yaccdebugZ
debug_filer«Z
default_lrr–ryr#rgrŽZ
basestringr—r>Úmaxsizer+Úobjectrrrsrr)r+r/r3r1r.r0r2r4r8r9r@rar‘rår©rÉr½rÏrÐrÑr	r
r)r#r0r1rnrvrwr¶r
r
r
rÚ<module>>s 
4[
H.rT
)
þ
Back to Directory File Manager