Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
pycparser / ply / __pycache__ / yacc.cpython-35.pyc
Size: Mime:


ìQâXjã@sôddlZddlZddlZddlZddlZddlZddlZdZdZ	dZ
dZdZdZ
dZdZd	ZdZejddkr¬eZneZejZGd
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)ej*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ddddedddddBdC„
Z;dS)DéNz3.10Tz
parser.outÚparsetabÚLALRéFé(c@sLeZdZdd„Zdd„ZeZdd„Zdd„ZeZd	S)
Ú	PlyLoggercCs
||_dS)N)Úf)Úselfr©r	ú../pycparser/ply/yacc.pyÚ__init__nszPlyLogger.__init__cOs|jj||dƒdS)NÚ
)rÚwrite)rÚmsgÚargsÚkwargsr	r	r
ÚdebugqszPlyLogger.debugcOs |jjd||dƒdS)Nz	WARNING: r)rr
)rrrrr	r	r
ÚwarningvszPlyLogger.warningcOs |jjd||dƒdS)NzERROR: r)rr
)rrrrr	r	r
ÚerroryszPlyLogger.errorN)	Ú__name__Ú
__module__Ú__qualname__rrÚinforrZcriticalr	r	r	r
rmsrc@s(eZdZdd„Zdd„ZdS)Ú
NullLoggercCs|S)Nr	)rÚnamer	r	r
Ú__getattribute__€szNullLogger.__getattribute__cOs|S)Nr	)rrrr	r	r
Ú__call__ƒszNullLogger.__call__N)rrrrrr	r	r	r
rsrc@seZdZdS)Ú	YaccErrorN)rrrr	r	r	r
r‡srcCspt|ƒ}d|kr$t|ƒ}t|ƒtkrJ|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%cCs[t|ƒ}d|kr$t|ƒ}t|ƒdkr:|Sdt|ƒjt|ƒfSdS)Nréz<%s @ 0x%x>)rrr 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()
cCstjtƒtƒS)N)ÚwarningsÚwarnÚ_warnmsgÚ_errokr	r	r	r
Úerrok¯s
r,cCstjtƒtƒS)N)r(r)r*Ú_restartr	r	r	r
Úrestart³s
r.cCstjtƒtƒS)N)r(r)r*Ú_tokenr	r	r	r
Útoken·s
r0cCsM|ja|ja|ja||ƒ}y
bbbWntk
rHYnX|S)N)r,r+r0r/r.r-Ú	NameError)Ú	errorfuncr0Úparserr"r	r	r
Úcall_errorfunc¼s			

r4c@s(eZdZdd„Zdd„ZdS)Ú
YaccSymbolcCs|jS)N)r )rr	r	r
Ú__str__ÚszYaccSymbol.__str__cCs
t|ƒS)N)Ústr)rr	r	r
Ú__repr__ÝszYaccSymbol.__repr__N)rrrr6r8r	r	r	r
r5Ùsr5c@s—eZdZddd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dS)ÚYaccProductionNcCs(||_||_d|_d|_dS)N)ÚsliceÚstackÚlexerr3)rÚsr;r	r	r
rês			zYaccProduction.__init__cCsSt|tƒr'dd„|j|DƒS|dkrA|j|jS|j|jSdS)NcSsg|]}|j‘qSr	)Úvalue)Ú.0r=r	r	r
ú
<listcomp>òs	z.YaccProduction.__getitem__.<locals>.<listcomp>r)Ú
isinstancer:r>r;)rÚnr	r	r
Ú__getitem__ðs
zYaccProduction.__getitem__cCs||j|_dS)N)r:r>)rrBÚvr	r	r
Ú__setitem__øszYaccProduction.__setitem__cCsdd„|j||…DƒS)NcSsg|]}|j‘qSr	)r>)r?r=r	r	r
r@üs	z/YaccProduction.__getslice__.<locals>.<listcomp>)r:)rÚiÚjr	r	r
Ú__getslice__ûszYaccProduction.__getslice__cCs
t|jƒS)N)rr:)rr	r	r
Ú__len__þszYaccProduction.__len__cCst|j|ddƒS)NÚlinenor)Úgetattrr:)rrBr	r	r
rJszYaccProduction.linenocCs||j|_dS)N)r:rJ)rrBrJr	r	r
Ú
set_linenoszYaccProduction.set_linenocCs<t|j|ddƒ}t|j|d|ƒ}||fS)NrJrÚ	endlineno)rKr:)rrBÚ	startlineZendliner	r	r
ÚlinespanszYaccProduction.linespancCst|j|ddƒS)NÚlexposr)rKr:)rrBr	r	r
rPszYaccProduction.lexposcCs<t|j|ddƒ}t|j|d|ƒ}||fS)NrPrÚ	endlexpos)rKr:)rrBÚstartposÚendposr	r	r
ÚlexspanszYaccProduction.lexspancCs
t‚dS)N)ÚSyntaxError)rr	r	r
rszYaccProduction.error)rrrrrCrErHrIrJrLrOrPrTrr	r	r	r
r9ésr9c@s¸eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdddddd
d„Zddddddd„Z	ddddddd„Z
ddddddd„ZdS)ÚLRParsercCsD|j|_|j|_|j|_||_|jƒd|_dS)NT)	Úlr_productionsÚproductionsÚ	lr_actionÚactionÚlr_gotoÚgotor2Úset_defaulted_statesÚerrorok)rZlrtabZerrorfr	r	r
rs	
zLRParser.__init__cCs
d|_dS)NT)r^)rr	r	r
r,&szLRParser.errokcCsV|jdd…=|jdd…=tƒ}d|_|jj|ƒ|jjdƒdS)Nz$endr)Ú
statestackÚsymstackr5r Úappend)rÚsymr	r	r
r.)s		zLRParser.restartcCsri|_xb|jjƒD]Q\}}t|jƒƒ}t|ƒdkr|ddkr|d|j|<qWdS)Nér)Údefaulted_statesrZÚitemsÚlistÚvaluesr)rÚstateÚactionsZrulesr	r	r
r]9s
	"zLRParser.set_defaulted_statescCs
i|_dS)N)rd)rr	r	r
Údisable_defaulted_states@sz!LRParser.disable_defaulted_statesNFcCs|strCt|tƒr*ttjƒ}|j|||||ƒS|rb|j|||||ƒS|j|||||ƒSdS)N)	Ú	yaccdevelrAÚintrÚsysÚstderrÚ
parsedebugÚparseoptÚparseopt_notrack)rÚinputr<rÚtrackingÚ	tokenfuncr	r	r
ÚparseCszLRParser.parsec Csñd}g}|j}|j}	|j}
|j}tdƒ}d}
|jdƒ|snddlm}|j}||_||_	|dk	r™|j
|ƒ|dkr±|j}n|}||_g}||_g}||_
||_d}|jdƒtƒ}d|_|j|ƒd}xË|jdƒ|jd|ƒ||kr¦|s‡|sc|ƒ}n|jƒ}|s‡tƒ}d|_|j}||j|ƒ}n||}|jd||ƒ|jd	d
djdd
„|Dƒdd…ƒt|ƒfjƒƒ|dk	rô|dkrk|j|ƒ|}|jd|ƒ|j|ƒd}|
r"|
d8}
q"|dkr¥|
|}|j}|j}tƒ}||_d|_|r
|jd|jddjdd
„||d…Dƒƒd|	|d%||ƒn%|jd|jg|	|d&|ƒ|rµ||dd…}||d<|r¶|d}|j|_|j|_|d'}t|d|jƒ|_t|d|jƒ|_||_ y|||d…=||_!|j"|ƒ||d…=|jdt#|dƒƒ|j|ƒ|	|d(|}|j|ƒWq"t$k
r®|j|ƒ|j%|dd)…ƒ|jƒ|d*}d|_d|_|}t&}
d|_'Yq"Xq"nð|rÓ|j|_|j|_|g}||_ y`||_!|j"|ƒ|jdt#|dƒƒ|j|ƒ|	|d+|}|j|ƒWq"t$k
r¡|j|ƒ|jƒ|d,}d|_d|_|}t&}
d|_'Yq"Xq"|dkrô|d-}t|ddƒ}|jdt#|ƒƒ|jdƒ|S|dkrÝ|j(dd
djdd
„|Dƒdd…ƒt|ƒfjƒƒ|
dks[|j'rdt&}
d|_'|}|jdkr…d}|j)ræ|r­t*|dƒr­||_||_!t+|j)||ƒ}|j'ra|}d}q"qj|rMt*|dƒr|j}nd}|r3t,j-j.d ||jfƒqat,j-j.d!|jƒqjt,j-j.d"ƒdSnt&}
t|ƒdkr­|jdkr­d}d}d}|dd…=q"|jdkrÀdS|jdkrœ|d.}|jdkr'|rt|d|jƒ|_t|d#|jƒ|_d}q"tƒ}d|_t*|dƒr[|j|_|_t*|d#ƒr}|j|_|_||_|j|ƒ|}q"|jƒ}|rÆ|j|_|j|_|jƒ|d/}q"t/d$ƒ‚q"WdS)0NrzPLY: PARSE DEBUG STARTrc)Úlexz$endÚzState  : %sz#Defaulted state %s: Reduce using %dzStack  : %sz%s . %sú cSsg|]}|j‘qSr	)r )r?Úxxr	r	r
r@±s	z'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'r>)r?Z_vr	r	r
r@Ôs	ú]rMrQzResult : %srFr>zDone   : Returning %szPLY: PARSE DEBUG ENDzError  : %scSsg|]}|j‘qSr	)r )r?ryr	r	r
r@Bs	r<rJz(yacc: Syntax error at line %d, token=%s
zyacc: Syntax error, token=%sz yacc: Parse error in input. EOF
rPzyacc: internal parser error!!!
éÿÿÿÿr}r}r}r}r}r}r}r}r}r})0rZr\rXrdr9rrwrvr<r3rrr0r_r`r;rar5r rÚpopÚgetÚjoinr7Úlstriprrr>rJrPrKrMrQr:rhÚcallabler%rUÚextendÚerror_countr^rr2Úhasattrr4rmrnr
ÚRuntimeError) rrrr<rrsrtÚ	lookaheadÚlookaheadstackrir\ÚprodrdÚpsliceÚ
errorcountrvÚ	get_tokenr_r`ÚerrtokenrbrhÚltypeÚtÚpÚpnameÚplenÚtargÚt1rBr$ÚtokrJr	r	r
ro\s~				
			
				
		

			
	=


					,


		





					





		

	=
					 !

			
	

zLRParser.parsedebugc Cs@d}g}|j}|j}	|j}
|j}tdƒ}d}
|saddlm}|j}||_||_|dk	rŒ|j	|ƒ|dkr¤|j
}n|}||_
g}||_g}||_||_
d}|jdƒtƒ}d|_|j|ƒd}x'||kr||s]|s9|ƒ}n|jƒ}|s]tƒ}d|_|j}||j|ƒ}n
||}|dk	r‰|dkr×|j|ƒ|}|j|ƒd}|
r|
d8}
q|dkr]|
|}|j}|j}tƒ}||_d|_|r‡||dd…}||d<|r¢|d}|j|_|j|_|d}t|d|jƒ|_t|d|jƒ|_||_yb||d…=||_|j|ƒ||d…=|j|ƒ|	|d|}|j|ƒWqtk
r€|j|ƒ|j|dd…ƒ|jƒ|d}d|_d|_|}t }
d|_!YqXqnÖ|r¥|j|_|j|_|g}||_yF||_|j|ƒ|j|ƒ|	|d|}|j|ƒWqtk
rY|j|ƒ|jƒ|d}d|_d|_|}t }
d|_!YqXq|dkr‰|d}t|d	dƒ}|S|dkr,|
dksª|j!r³t }
d|_!|}|jdkrÔd}|j"r5|rüt#|d
ƒrü||_||_t$|j"||ƒ}|j!r°|}d}qq¹|rœt#|dƒrV|j}nd}|r‚t%j&j'd||jfƒq°t%j&j'd
|jƒq¹t%j&j'dƒdSnt }
t|ƒdkrü|jdkrüd}d}d}|dd…=q|jdkrdS|jdkrë|d}|jdkrv|rmt|d|jƒ|_t|d|jƒ|_d}qtƒ}d|_t#|dƒrª|j|_|_t#|dƒrÌ|j|_|_||_|j|ƒ|}q|jƒ}|r|j|_|j|_|jƒ|d}qt(dƒ‚qWdS)Nrrc)rvz$endrMrQrFr>r<rJz(yacc: Syntax error at line %d, token=%s
zyacc: Syntax error, token=%sz yacc: Parse error in input. EOF
rPzyacc: internal parser error!!!
r}r}r}r}r}r}r}r}r}))rZr\rXrdr9rwrvr<r3rrr0r_r`r;rar5r r~rrrr>rJrPrKrMrQr:rhr‚rUrƒr„r^r2r…r4rmrnr
r†) rrrr<rrsrtr‡rˆrir\r‰rdrŠr‹rvrŒr_r`rrbrhrŽrrr‘r’r“r”rBr$r•rJr	r	r
rp·sX							
				
		
			



					


		





					





		

					 !

			
	

zLRParser.parseoptcCsld}g}|j}|j}	|j}
|j}tdƒ}d}
|saddlm}|j}||_||_|dk	rŒ|j	|ƒ|dkr¤|j
}n|}||_
g}||_g}||_||_
d}|jdƒtƒ}d|_|j|ƒd}xS||kr||s]|s9|ƒ}n|jƒ}|s]tƒ}d|_|j}||j|ƒ}n
||}|dk	r	|dkr×|j|ƒ|}|j|ƒd}|
r|
d8}
q|dkrÝ|
|}|j}|j}tƒ}||_d|_|r%||dd…}||d<||_yb||d…=||_|j|ƒ||d…=|j|ƒ|	|d|}|j|ƒWqtk
r|j|ƒ|j|dd…ƒ|jƒ|d}d|_d|_|}t}
d|_YqXqn¸|g}||_yF||_|j|ƒ|j|ƒ|	|d|}|j|ƒWqtk
rÙ|j|ƒ|jƒ|d}d|_d|_|}t}
d|_YqXq|dkr	|d}t|ddƒ}|S|dkrX|
dks*|jr3t}
d|_|}|jdkrTd}|jrµ|r|t|dƒr|||_||_t |j||ƒ}|jr0|}d}qq9|rt|d	ƒrÖ|j!}nd}|rt"j#j$d
||jfƒq0t"j#j$d|jƒq9t"j#j$dƒdSnt}
t|ƒdkr||jdkr|d}d}d}|dd…=q|jdkrdS|jdkr5|d}|jdkrÀd}qtƒ}d|_t|d	ƒrô|j!|_!|_%t|d
ƒr|j&|_&|_'||_|j|ƒ|}q|jƒ}|jƒ|d}qt(dƒ‚qWdS)Nrrc)rvz$endrFr>r<rJz(yacc: Syntax error at line %d, token=%s
zyacc: Syntax error, token=%sz yacc: Parse error in input. EOF
rPzyacc: internal parser error!!!
r}r}r}r}r}r}r}r}))rZr\rXrdr9rwrvr<r3rrr0r_r`r;rar5r r~rrrr>r:rhr‚rUrƒr„r^rKr2r…r4rJrmrnr
rMrPrQr†)rrrr<rrsrtr‡rˆrir\r‰rdrŠr‹rvrŒr_r`rrbrhrŽrrr‘r’r“rBr$r•rJr	r	r
rqés8							
				
		
			



					
		





					





		

					 !

			
	

zLRParser.parseopt_notrack)rrrrr,r.r]rjrurorprqr	r	r	r
rVsÿ\ÿ3rVz^[a-zA-Z0-9_-]+$c@s‚eZdZdZdddddd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„ZdS)Ú
ProductionrÚrightNrwc	Csð||_t|ƒ|_||_||_d|_||_||_||_t	|jƒ|_	g|_
x0|jD]%}||j
krs|j
j|ƒqsWg|_d|_
|jrÜd|jdj|jƒf|_nd|j|_dS)Nz%s -> %srxz
%s -> <empty>)rÚtupler‰ÚnumberÚfuncr‚ÚfileÚlineÚprecrÚusymsraÚlr_itemsÚlr_nextr€r7)	rr™rr‰Ú
precedenceršr›rœr=r	r	r
rs$											%zProduction.__init__cCs|jS)N)r7)rr	r	r
r6=szProduction.__str__cCsdt|ƒdS)NzProduction(ú))r7)rr	r	r
r8@szProduction.__repr__cCs
t|jƒS)N)rr‰)rr	r	r
rICszProduction.__len__cCsdS)Nrcr	)rr	r	r
Ú__nonzero__FszProduction.__nonzero__cCs|j|S)N)r‰)rÚindexr	r	r
rCIszProduction.__getitem__cCs¢|t|jƒkrdSt||ƒ}yt|j|d|_Wn!ttfk
rgg|_YnXy|j|d|_Wntk
rd|_YnX|S)Nrc)rr‰ÚLRItemÚ	ProdnamesÚlr_afterÚ
IndexErrorÚKeyErrorÚ	lr_before)rrBrr	r	r
Úlr_itemMs
zProduction.lr_itemcCs|jr||j|_dS)N)ršr‚)rÚpdictr	r	r
Úbind]s	zProduction.bind)zrightr)rrrÚreducedrr6r8rIr£rCr«r­r	r	r	r
r–sr–c@s@eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚMiniProductioncCsC||_||_||_d|_||_||_||_dS)N)rrršr‚r›rœr7)rr7rrršr›rœr	r	r
rfs						zMiniProduction.__init__cCs|jS)N)r7)rr	r	r
r6oszMiniProduction.__str__cCsd|jS)NzMiniProduction(%s))r7)rr	r	r
r8rszMiniProduction.__repr__cCs|jr||j|_dS)N)ršr‚)rr¬r	r	r
r­vs	zMiniProduction.bindN)rrrrr6r8r­r	r	r	r
r¯es	r¯c@s4eZdZdd„Zdd„Zdd„ZdS)r¥cCsƒ|j|_t|jƒ|_|j|_||_i|_|jj|dƒt|jƒ|_t|jƒ|_|j	|_	dS)NÚ.)
rrfr‰r™Úlr_indexÚ
lookaheadsÚinsertr˜rrž)rrrBr	r	r
r”s		zLRItem.__init__cCs<|jr+d|jdj|jƒf}n
d|j}|S)Nz%s -> %srxz
%s -> <empty>)r‰rr€)rr=r	r	r
r6Ÿs	"
zLRItem.__str__cCsdt|ƒdS)NzLRItem(r¢)r7)rr	r	r
r8¦szLRItem.__repr__N)rrrrr6r8r	r	r	r
r¥“sr¥cCsIt|ƒd}x2|dkrD|||kr7||S|d8}qWdS)Nrcr)r)ZsymbolsÚ	terminalsrFr	r	r
Úrightmost_terminal®srµc@seZdZdS)ÚGrammarErrorN)rrrr	r	r	r
r¶¾sr¶c@sßeZdZdd„Zdd„Zdd„Zdd„Zd	d
ddd
„Zd	dd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zd	d d!„Zd"d#„Zd	S)$ÚGrammarcCsdg|_i|_i|_i|_x|D]}g|j|<q.Wg|jd<i|_i|_i|_i|_tƒ|_	d|_
dS)Nr)ÚProductionsr¦ÚProdmapÚ	TerminalsÚNonterminalsÚFirstÚFollowÚ
PrecedenceÚsetÚUsedPrecedenceÚStart)rr´Útermr	r	r
rÂs			

				zGrammar.__init__cCs
t|jƒS)N)rr¸)rr	r	r
rIæszGrammar.__len__cCs|j|S)N)r¸)rr¤r	r	r
rCészGrammar.__getitem__cCsl|jdgkstdƒ‚||jkr=td|ƒ‚|dkrUtdƒ‚||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')zleftzrightrÄ)r¸ÚAssertionErrorr¾r¶)rrÂÚassocÚlevelr	r	r
Úset_precedenceôszGrammar.set_precedenceNrwrcCsš||jkr(td|||fƒ‚|dkrMtd|||fƒ‚tj|ƒsutd|||fƒ‚xÞt|ƒD]Ð\}}|ddkrygt|ƒ}t|ƒdkrÛtd||||fƒ‚||jkr÷g|j|<|||<w‚Wntk
rYnXtj|ƒr‚|d	kr‚td
||||fƒ‚q‚Wd	|kr|dd	krˆtd||fƒ‚|dd	kr®td
||fƒ‚|d}	|jj	|	ƒ}
|
sìtd|||	fƒ‚n|j
j|	ƒ|dd…=n't||jƒ}	|jj	|	dƒ}
d||f}||j
krŒ|j
|}td|||fd|j|jfƒ‚t|jƒ}
||jkr·g|j|<xd|D]\}||jkrê|j|j|
ƒq¾||jkrg|j|<|j|j|
ƒq¾Wt|
|||
|||ƒ}|jj|ƒ||j
|<y|j|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'"rczA%s:%d: Literal token %s in rule %r may only be a single characterz%precz!%s:%d: Illegal name %r in rule %rz+%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—z%s -> %sz%s:%d: Duplicate rule %s. zPrevious definition at %s:%dr}éþÿÿÿr}rÊ)zrightr)rºr¶Ú_is_identifierÚmatchÚ	enumerateÚevalrrUr¾rrÀÚaddrµr¹r›rœr¸r»rar–r¦r©)rÚprodnameÚsymsršr›rœrBr=ÚcZprecnameZprodprecÚmapÚmZpnumberrrr	r	r
Úadd_production
sp


 






zGrammar.add_productioncCsr|s|jdj}||jkr5td|ƒ‚tdd|gƒ|jd<|j|jdƒ||_dS)Nrczstart symbol %s undefinedrzS')r¸rr»r¶r–rarÁ)rÚstartr	r	r
Ú	set_startaszGrammar.set_startcsS‡‡‡fdd†‰tƒ‰ˆˆjdjdƒ‡fdd†ˆjDƒS)Ncs_|ˆkrdSˆj|ƒx;ˆjj|gƒD]$}x|jD]}ˆ|ƒqCWq3WdS)N)rÏr¦rr‰)r=rr")Úmark_reachable_fromÚ	reachablerr	r
rØts
z5Grammar.find_unreachable.<locals>.mark_reachable_fromrcs"g|]}|ˆkr|‘qSr	r	)r?r=)rÙr	r
r@~s	z,Grammar.find_unreachable.<locals>.<listcomp>)r¿r¸r‰r»)rr	)rØrÙrr
Úfind_unreachableqs	zGrammar.find_unreachablecCsDi}x|jD]}d||<qWd|d<x|jD]}d||<q8WxŽd}xz|jjƒD]i\}}xZ|D]R}x(|jD]}||sˆd}PqˆWd}|rx||sÉd||<d}PqxWqeW|sOPqOWg}	xZ|jƒD]L\}}
|
sð||jkr/||jkr/|dkr/qð|	j|ƒqðW|	S)NTz$endFr)rºr»r¦rer‰ra)rZ
terminatesrrBÚsome_changeZplrr=Zp_terminatesÚinfiniterÂr	r	r
Úinfinite_cyclesˆs:




	*zGrammar.infinite_cyclescCsxg}xk|jD]`}|sqxN|jD]C}||jkr)||jkr)|dkr)|j||fƒq)WqW|S)Nr)r¸r‰r¦rºra)rr$rr=r	r	r
Úundefined_symbolsÈs*zGrammar.undefined_symbolscCsJg}x=|jjƒD],\}}|dkr|r|j|ƒqW|S)Nr)rºrera)rZ
unused_tokr=rDr	r	r
Úunused_terminalsÙs
zGrammar.unused_terminalscCsNg}xA|jjƒD]0\}}|s|j|d}|j|ƒqW|S)Nr)r»rer¦ra)rZunused_prodr=rDrr	r	r
Úunused_rulesèszGrammar.unused_rulescCsZg}xM|jD]B}||jkp1||jks|j||j|dfƒqW|S)Nr)r¾rºrÀra)rZunusedZtermnamer	r	r
Úunused_precedenceùs
"zGrammar.unused_precedencecCs~g}xq|D]\}d}xC|j|D]4}|dkrBd}q'||kr'|j|ƒq'W|rhq
Pq
W|jdƒ|S)NFz<empty>T)r¼ra)rZbetar$ÚxZx_produces_emptyrr	r	r
Ú_first	s
	
zGrammar._firstcCsö|jr|jSx!|jD]}|g|j|<qWdg|jd<x|jD]}g|j|<qNWx‡d}xs|jD]h}x_|j|D]P}xG|j|jƒD]3}||j|kr¥|j|j|ƒd}q¥WqŒWqxW|shPqhW|jS)Nz$endFT)r¼rºr»r¦rãr‰ra)rrrBrÛrrr	r	r
Ú
compute_first,s$	zGrammar.compute_firstc
Cs»|jr|jS|js#|jƒx|jD]}g|j|<q-W|sZ|jdj}dg|j|<xGd}x3|jdd…D]}xt|jƒD]\}}||jkr|j|j|dd…ƒ}d}xY|D]Q}	|	dkr$|	|j|kr$|j|j	|	ƒd}|	dkråd}qåW|sY|t
|jƒdkrxE|j|jD]3}	|	|j|krj|j|j	|	ƒd}qjWqWq‡W|smPqmW|jS)Nrcz$endFz<empty>T)r½r¼rär»r¸rrÍr‰rãrar)
rrÖÚkÚdidaddrrFÚBZfstZhasemptyrr	r	r
Úcompute_followQs<		
 

zGrammar.compute_followcCs
x|jD]ø}|}d}g}xÔ|t|ƒkr@d}nˆt||ƒ}y|j|j|d|_Wn!ttfk
r‘g|_YnXy|j|d|_Wntk
rÇd|_YnX||_	|sØP|j
|ƒ|}|d7}q%W||_q
WdS)Nrrc)r¸rr¥r¦r‰r§r¨r©rªr rarŸ)rrZlastlrirFrŸZlrir	r	r
Ú
build_lritemsŒs.	
	
zGrammar.build_lritems)rrrrrIrCrÈrÕr×rÚrÝrÞrßràrárãrärèrér	r	r	r
r·Ás $T@#%;r·c@seZdZdS)ÚVersionErrorN)rrrr	r	r	r
rê°srêc@s@eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚLRTablecCs(d|_d|_d|_d|_dS)N)rYr[rWÚ	lr_method)rr	r	r
r´s			zLRTable.__init__cCs¯t|tjƒr|}ntd|ƒtj|}|jtkrQtdƒ‚|j	|_
|j|_g|_
x'|jD]}|j
jt|Œƒq|W|j|_|jS)Nz	import %sz&yacc table file version is out of date)rAÚtypesÚ
ModuleTypeÚexecrmÚmodulesZ_tabversionÚ__tabversion__rêZ
_lr_actionrYZ_lr_gotor[rWZ_lr_productionsrar¯Z
_lr_methodrìZ
_lr_signature)rÚmodulerrr	r	r
Ú
read_tableºs	
	zLRTable.read_tablecCsyddl}Wntk
r0ddl}YnXtjj|ƒsIt‚t|dƒ}|j|ƒ}|tkrt	dƒ‚|j|ƒ|_
|j|ƒ}|j|ƒ|_|j|ƒ|_|j|ƒ}g|_
x$|D]}|j
jt|ŒƒqãW|jƒ|S)NrÚrbz&yacc table file version is out of date)ÚcPickleÚImportErrorÚpickleÚosÚpathÚexistsÚopenÚloadrñrêrìrYr[rWrar¯Úclose)rÚfilenamer÷Zin_fZ
tabversionÚ	signaturerXrr	r	r
Úread_pickleÎs(
	

zLRTable.read_picklecCs%x|jD]}|j|ƒq
WdS)N)rWr­)rr¬rr	r	r
Úbind_callablesêszLRTable.bind_callablesN)rrrrrórrr	r	r	r
rë³srëc	Csni}x|D]}d||<q
Wg}i}x:|D]2}||dkr4t|||||||ƒq4W|S)Nr)Útraverse)ÚXÚRÚFPÚNrâr;ÚFr	r	r
Údigraphs

 rc	CsT|j|ƒt|ƒ}|||<||ƒ||<||ƒ}x“|D]‹}	||	dkrxt|	||||||ƒt||||	ƒ||<x;|j|	gƒD]'}
|
||kr¦||j|
ƒq¦WqFW|||krPt||d<||||d<|jƒ}x<||krOt||d<||||d<|jƒ}qWdS)Nrrcr}r}r}r})rarrÚminrÚMAXINTr~)rârr;rrrrÚdÚrelÚyÚaÚelementr	r	r
rs(


rc@seZdZdS)Ú	LALRErrorN)rrrr	r	r	r
r)src@sßeZdZdddd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zddd d!„Zdd"d#„ZdS)$ÚLRGeneratedTablerNcCsá|dkrtd|ƒ‚||_||_|s=tƒ}||_i|_i|_|j|_i|_	i|_
d|_d|_d|_
g|_g|_g|_|jjƒ|jjƒ|jjƒ|jƒdS)NÚSLRrzUnsupported method %sr)rr)rÚgrammarrìrÚlogrYr[r¸rWÚ
lr_goto_cacheÚlr0_cidhashÚ
_add_countZsr_conflictZrr_conflictZ	conflictsÚsr_conflictsÚrr_conflictsrérärèÚlr_parse_table)rrÚmethodrr	r	r
r4s,														


zLRGeneratedTable.__init__cCs¡|jd7_|dd…}d}xu|rœd}xb|D]Z}xQ|jD]F}t|ddƒ|jkroqK|j|jƒ|j|_d}qKWq;Wq(W|S)NrcTFÚ	lr0_addedr)rr§rKrar r)rÚIÚJrærGrâr	r	r
Úlr0_closureYs	
zLRGeneratedTable.lr0_closurec	Cs*|jjt|ƒ|fƒ}|r(|S|jj|ƒ}|sSi}||j|<g}xp|D]h}|j}|r`|j|kr`|jt|ƒƒ}|sµi}||t|ƒ<|j|ƒ|}q`W|jdƒ}|s
|r|j|ƒ}||d<n
||d<||jt|ƒ|f<|S)Nz$end)rrr!r rªrar)	rrrâÚgr=ZgsrrBÚs1r	r	r
Úlr0_gotoss2

	



zLRGeneratedTable.lr0_gotoc	Cs*|j|jjdjgƒg}d}x+|D]#}||jt|ƒ<|d7}q/Wd}xÇ|t|ƒkr%||}|d7}i}x,|D]$}x|jD]}d||<q¢Wq’Wxe|D]]}|j||ƒ}|sÁt|ƒ|jkrøqÁt|ƒ|jt|ƒ<|j	|ƒqÁWq_W|S)Nrrc)
rrr¸r rr!rržr"ra)	rÚCrFrZasymsÚiir=râr r	r	r
Ú	lr0_items–s("




zLRGeneratedTable.lr0_itemscCs­tƒ}d}x—xq|jjdd…D]Y}|jdkrQ|j|jƒq)x.|jD]}||kr[Pq[W|j|jƒq)Wt|ƒ|kr™Pt|ƒ}qW|S)Nrrc)r¿rr¸rrÏrr‰)rÚnullableZnum_nullablerrr	r	r
Úcompute_nullable_nonterminalsÎs	z.LRGeneratedTable.compute_nullable_nonterminalscCs—g}xŠt|ƒD]|\}}xm|D]e}|j|jdkr&||j|jdf}|d|jjkr&||kr&|j|ƒq&WqW|S)Nrc)rÍr±rr‰rr»ra)rr#ÚtransZstatenorhrrr	r	r
Úfind_nonterminal_transitionsës
z-LRGeneratedTable.find_nonterminal_transitionscCsÎi}|\}}g}|j|||ƒ}xc|D][}	|	j|	jdkr5|	j|	jd}
|
|jjkr5|
|kr5|j|
ƒq5W|dkrÊ||jjdjdkrÊ|jdƒ|S)Nrcrz$end)r"r±rr‰rrºrar¸)rr#r(r&Zdr_setrhrÚtermsr rrr	r	r
Údr_relationÿs
)
zLRGeneratedTable.dr_relationcCs¡g}|\}}|j|||ƒ}|jjt|ƒdƒ}xW|D]O}	|	j|	jdkrJ|	j|	jd}
|
|krJ|j||
fƒqJW|S)Nrcr})r"rrr!r±rr‰ra)rr#r(Úemptyrrhrr rGrrr	r	r
Úreads_relation	s
zLRGeneratedTable.reads_relationcCsTi}i}i}x|D]}d||<qWx|D]\}}	g}
g}x©||D]}|j|	kroqW|j}
|}xÜ|
|jdkr\|
d}
|j|
}||f|kr(|
d}x^||jkr|j||jjkróP|j||krP|d}qÊW|j||fƒ|j|||ƒ}|jj	t
|ƒdƒ}qWx”||D]ˆ}|j|jkrƒqh|j|jkr˜qhd}xO||jkrÜ|j||j|dkrÏP|d}q¡W|
j||fƒqhWqWWx;|D]3}||krg||<||j||	fƒqÿW|
|||	f<q4W||fS)Nrcrr})rr±rr‰rrºrar"rrr!)rr#r(r&ZlookdictZincludedictZdtransrrhrZlookbZincludesrr±rGZlir r"rFr	r	r
Úcompute_lookback_includesC	sX
	




z*LRGeneratedTable.compute_lookback_includescsF‡‡‡fdd†}‡‡‡fdd†}t|||ƒ}|S)Ncsˆjˆ|ˆƒS)N)r+)râ)r#r&rr	r
Ú<lambda>”	sz4LRGeneratedTable.compute_read_sets.<locals>.<lambda>csˆjˆ|ˆƒS)N)r-)râ)r#r&rr	r
r/•	s)r)rr#Úntransr&rrrr	)r#r&rr
Úcompute_read_sets“	sz"LRGeneratedTable.compute_read_setscs:‡fdd†}‡fdd†}t|||ƒ}|S)Ncsˆ|S)Nr	)râ)Úreadsetsr	r
r/ª	sz6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>csˆj|gƒS)N)r)râ)Úinclsetsr	r
r/«	s)r)rr0r2r3rrrr	)r3r2r
Úcompute_follow_sets©	sz$LRGeneratedTable.compute_follow_setsc	Csžx—|jƒD]‰\}}xz|D]r\}}||jkrHg|j|<|j|gƒ}x5|D]-}||j|kra|j|j|ƒqaWq Wq
WdS)N)rer²rra)	rZ	lookbacksZ	followsetr(Zlbrhrrrr	r	r
Úadd_lookaheads»	s

zLRGeneratedTable.add_lookaheadscCst|jƒ}|j|ƒ}|j|||ƒ}|j|||ƒ\}}|j|||ƒ}|j||ƒdS)N)r'r)r1r.r4r5)rr#r&r(r2ZlookdZincludedZ
followsetsr	r	r
Úadd_lalr_lookaheadsÍ	sz$LRGeneratedTable.add_lalr_lookaheadsc$	Csá|jj}|jj}|j}|j}|j}i}|jd|jƒ|jƒ}|jdkrt|j	|ƒd}x`|D]X}	g}
i}i}i}
|jdƒ|jd|ƒ|jdƒx$|	D]}|jd|j
|ƒqÐW|jdƒx
|	D]}|j|jdkrü|j
dkrFd|d	<||d	<q	|jdkre|j|}n|jj|j
}xŽ|D]v}|
j||d
|j
|ffƒ|j|ƒ}|dk	rÇ|dkrà|j|dƒ\}}||j
j\}}||ks!||kr‰|dkr‰|j
||<|||<|rp|rp|jd
|ƒ|jj||dfƒ||j
jd7_qÄ||kr®|dkr®d||<qÄ|sÄ|jd|ƒ|jj||dfƒqõ|dkr´||}||j
}|j|jkrj|j
||<|||<||}}||j
jd7_||j
jd8_n
||}}|jj|||fƒ|jd|||j
||ƒqõtd|ƒ‚q|j
||<|||<||j
jd7_qWq|j}|j|d}||jjkr|j|	|ƒ}|jjt|ƒdƒ}|dkr|
j||d|fƒ|j|ƒ}|dk	rõ|dkrÁ||kròtd|ƒ‚q	|dkrâ|j|dƒ\}}|||j
j\}}||ks#||krƒ|dkrƒ|||j
jd8_|||<|||<|sß|jd|ƒ|jj||dfƒqò||kr¨|dkr¨d||<qò|rò|rò|jd
|ƒ|jj||dfƒq	td|ƒ‚q|||<|||<qWi}xV|
D]N\}}}||kr|||kr|jd||ƒd|||f<qW|jdƒd}xn|
D]f\}}}||kr†|||k	r†||f|kr†|jd||ƒd}d|||f<q†W|r|jdƒi} x>|	D]6}!x-|!jD]"}"|"|jjkr d| |"<q WqWxd| D]\}#|j|	|#ƒ}|jjt|ƒdƒ}|dkrQ||
|#<|jd|#|ƒqQW|||<|||<|
||<|d7}qWdS)NzParsing method: %srrrwzstate %dz    (%d) %srczS'z$endzreduce using rule %d (%s)r—rÃz3  ! shift/reduce conflict for %s resolved as reduceÚreducerÄz2  ! shift/reduce conflict for %s resolved as shiftZshiftz=  ! reduce/reduce conflict for %s resolved using rule %d (%s)zUnknown conflict in state %dzshift and go to state %dz Shift/shift conflict in state %dz    %-15s %sz  ! %-15s [ %s ]z"    %-30s shift and go to state %d)úrightrr})r8rr}) rr¸r¾r[rYrrrìr%r6r™rr±rr²r½rarrrr®rœrrr‰rºr"rr!rržr»)$rr¸r¾r\rZrZactionpr#ÚstrZactlistZ	st_actionZ
st_actionpZst_gotorZlaheadsrr"ZsprecZslevelZrprecZrlevelZoldpZppZchosenpZrejectprFr rGZ	_actprintrÔZnot_usedZnkeysr$r=rBr	r	r
rå	s			









#$





	
	$











zLRGeneratedTable.lr_parse_tablerwcCsÉt|tjƒrtdƒ‚|jdƒd}tjj||ƒd}yPt|dƒ}|j	dtjj
|ƒt|j|fƒd}|râi}x‡|j
jƒD]v\}	}
xg|
jƒD]Y\}}|j|ƒ}
|
súggf}
|
||<|
dj|	ƒ|
dj|ƒqÃWqªW|j	dƒx‘|jƒD]ƒ\}}|j	d	|ƒx#|dD]}
|j	d
|
ƒqfW|j	dƒx#|dD]}
|j	d
|
ƒq™W|j	dƒq>W|j	d
ƒ|j	dƒn\|j	dƒx?|j
jƒD].\}}|j	d|d|d|fƒqÿW|j	d
ƒ|r’i}x‡|jjƒD]v\}	}
xg|
jƒD]Y\}}|j|ƒ}
|
sªggf}
|
||<|
dj|	ƒ|
dj|ƒqsWqZW|j	dƒx‘|jƒD]ƒ\}}|j	d	|ƒx#|dD]}
|j	d
|
ƒqW|j	dƒx#|dD]}
|j	d
|
ƒqIW|j	dƒqîW|j	d
ƒ|j	dƒn\|j	dƒx?|jjƒD].\}}|j	d|d|d|fƒq¯W|j	d
ƒ|j	dƒx„|jD]y}|jrX|j	d|j|j|j|jtjj
|jƒ|jfƒq|j	dt|ƒ|j|jfƒqW|j	dƒ|jƒWn(tk
rÄ}z‚WYdd}~XnXdS)Nz"Won't overwrite existing tabmoduler°rcz.pyÚwzu
# %s
# This file is automatically generated. Do not edit.
_tabversion = %r

_lr_method = %r

_lr_signature = %r
    rz
_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]
r})rArírîÚIOErrorÚsplitrørùr€rûr
ÚbasenamerñrìrYrerrar[rWršr7rrr›rœrý)rÚ	tabmoduleÚ	outputdirrÿZbasemodulenamerþrZsmallerrer=ZndrrDrFrårÚer	r	r
Úwrite_table¦
sŽ&





&






&

	)*
zLRGeneratedTable.write_tablecCsWyddl}Wntk
r0ddl}YnXt|dƒ}|jt|tƒ|j|j|tƒ|j||tƒ|j|j|tƒ|j|j	|tƒg}x…|j
D]z}|jr
|j|j
|j|j|jtjj|jƒ|jfƒq»|jt
|ƒ|j|jdddfƒq»W|j||tƒWdQRXdS)NrÚwb)rõrör÷rûÚdumprñÚpickle_protocolrìrYr[rWršrar7rrrørùr=r›rœ)rrþrÿr÷ZoutfZoutprr	r	r
Úpickle_table s 
	@/zLRGeneratedTable.pickle_table)rrrrrr"r%r'r)r+r-r.r1r4r5r6rrArEr	r	r	r
r3s %#8+PÁzrcCsDtj|ƒ}|jjƒ}|j|jkr@|j|jƒ|S)N)rmÚ	_getframeÚ	f_globalsÚcopyÚf_localsÚupdate)ZlevelsrZldictr	r	r
Úget_caller_module_dictCs
rKcCsTg}|jƒ}d}|}x/|D]'}|d7}|jƒ}|sJq%yº|ddkr’|sytd||fƒ‚|}	|dd…}
nX|d}	|	}|dd…}
|d}|dkrê|dkrêtd||fƒ‚|j|||	|
fƒWq%tk
r‚Yq%tk
rKtd	|||jƒfƒ‚Yq%Xq%W|S)
Nrcrú|z%s:%d: Misplaced '|'rÉú:z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)Ú
splitlinesr<rUraÚ	ExceptionÚstrip)Údocr›rœrZpstringsZlastpZdlineZpsrrÐrÑZassignr	r	r
Ú
parse_grammarOs6





(rRc@sÇeZdZddd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„ZdS) Ú
ParserReflectNcCsp||_d|_d|_d|_tƒ|_g|_d|_|dkrctt	j
ƒ|_n	||_dS)NF)r¬rÖÚ
error_funcÚtokensr¿rðrrrrmrnr)rr¬rr	r	r
rys						zParserReflect.__init__cCs6|jƒ|jƒ|jƒ|jƒ|jƒdS)N)Ú	get_startÚget_error_funcÚ
get_tokensÚget_precedenceÚget_pfunctions)rr	r	r
Úget_allˆs




zParserReflect.get_allcCsC|jƒ|jƒ|jƒ|jƒ|jƒ|jƒ|jS)N)Úvalidate_startÚvalidate_error_funcÚvalidate_tokensÚvalidate_precedenceÚvalidate_pfunctionsÚvalidate_modulesr)rr	r	r
Úvalidate_alls





zParserReflect.validate_allcCsËg}y|jr"|j|jƒ|jrQ|jdjdd„|jDƒƒƒ|jrs|jdj|jƒƒx,|jD]!}|dr}|j|dƒq}WWnttfk
r½YnXdj|ƒS)NrwcSsg|]}dj|ƒ‘qS)rw)r€)r?rr	r	r
r@ s	z+ParserReflect.signature.<locals>.<listcomp>rxr)rÖrarr€rUÚpfuncsÚ	TypeErrorÚ
ValueError)rÚpartsrr	r	r
rÿšs		&	
zParserReflect.signaturecCsötjdƒ}xà|jD]Õ}ytj|ƒ\}}Wntk
rOwYnXi}x•t|ƒD]‡\}}|d7}|j|ƒ}|rc|jdƒ}|j	|ƒ}	|	s¿|||<qctj
|ƒ}
|jjd|
|||	ƒqcWqWdS)Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(rcz;%s:%d: Function %s redefined. Previously defined on line %d)
ÚreÚcompilerðÚinspectZgetsourcelinesr;rÍrÌÚgrouprÚ
getsourcefilerr)rZfreròÚlinesZlinenZ	counthashrœrÔrÚprevrþr	r	r
raµs$


zParserReflect.validate_modulescCs|jjdƒ|_dS)NrÖ)r¬rrÖ)rr	r	r
rVÎszParserReflect.get_startcCs5|jdk	r1t|jtƒs1|jjdƒdS)Nz'start' must be a string)rÖrAÚstring_typesrr)rr	r	r
r\ÒszParserReflect.validate_startcCs|jjdƒ|_dS)NÚp_error)r¬rrT)rr	r	r
rWØszParserReflect.get_error_funccCsä|jràt|jtjƒr'd}n;t|jtjƒrEd}n|jjdƒd|_dS|jjj}|jjj	}t
j|jƒ}|jj
|ƒ|jjj|}|dkrà|jjd||ƒd|_dS)Nrrcz2'p_error' defined, but is not a function or methodTz$%s:%d: p_error() requires 1 argument)rTrAríÚFunctionTypeÚ
MethodTyperrÚ__code__Úco_firstlinenoÚco_filenameriÚ	getmodulerðrÏÚco_argcount)rZismethodZelineZefileròZargcountr	r	r
r]Üs 				z!ParserReflect.validate_error_funccCs—|jjdƒ}|s5|jjdƒd|_dSt|ttfƒsg|jjdƒd|_dS|sŠ|jjdƒd|_dS||_dS)NrUzNo token list is definedTztokens must be a list or tupleztokens is empty)r¬rrrrArfr˜rU)rrUr	r	r
rXòs			zParserReflect.get_tokenscCsyd|jkr,|jjdƒd|_dStƒ}x=|jD]2}||krd|jjd|ƒ|j|ƒq?WdS)Nrz.Illegal token name 'error'. Is a reserved wordTzToken %r multiply defined)rUrrr¿rrÏ)rr´rBr	r	r
r^s		zParserReflect.validate_tokenscCs|jjdƒ|_dS)Nr¡)r¬rr)rr	r	r
rYszParserReflect.get_precedencecCslg}|jr_t|jttfƒsD|jjdƒd|_dSxt|jƒD]\}}t|ttfƒs’|jjdƒd|_dSt|ƒdkrÄ|jjd|ƒd|_dS|d}t|tƒsú|jjdƒd|_dSx^|dd…D]L}t|tƒs=|jjd	ƒd|_dS|j	|||dfƒqWqTW||_
dS)
Nz"precedence must be a list or tupleTzBad precedence tablerÉz?Malformed precedence entry %s. Must be (assoc, term, ..., term)rz)precedence associativity must be a stringrcz precedence items must be strings)rrArfr˜rrrÍrrnraÚpreclist)rrwrÇrrÆrÂr	r	r
r_s6				
		"z!ParserReflect.validate_precedencecCsÆg}xš|jjƒD]‰\}}|jdƒs|dkrAqt|tjtjfƒrt|d|jj	ƒ}t
j|ƒ}|j||||j
fƒqW|jddd„ƒ||_dS)NÚp_rorsÚkeycSs&|dt|dƒ|d|dfS)NrrcrÉr)r7)Z
p_functionr	r	r
r/Ds
z.ParserReflect.get_pfunctions.<locals>.<lambda>)r¬reÚ
startswithrArírprqrKrrrsriruraÚ__doc__Úsortrc)rZp_functionsrÚitemrœròr	r	r
rZ7s zParserReflect.get_pfunctionscCsg}t|jƒdkr8|jjdƒd|_dSx‡|jD]|\}}}}tj|ƒ}|j|}t|tj	ƒr‹d}nd}|j
j|krË|jjd|||jƒd|_qB|j
j|kr|jjd|||jƒd|_qB|j
s-|jjd|||jƒqBy:t|||ƒ}	x!|	D]}
|j||
fƒqIWWnDtk
r­}z$|jjt|ƒƒd|_WYdd}~XnX|jj|ƒqBWx>|jjƒD]-\}}
|jd	ƒrt|
tjtj	fƒrqÒ|jd
ƒrqÒ|jd	ƒrK|dkrK|jjd|ƒt|
tjƒro|
j
jdks–t|
tj	ƒrÒ|
jj
jdkrÒ|
j
rÒyK|
j
jd
ƒ}|ddkré|jjd|
j
j|
j
j|ƒWqÒtk
rþYqÒXqÒW||_dS)Nrz+no rules of the form p_rulename are definedTrÉrcz%%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)rxZt_roz%r not defined as a functionrxrMz9%s:%d: Possible grammar rule %r defined without p_ prefix)rrcrrrirkr¬rArírqrrrvrr{rrRrarUr7rðrÏrerzrpÚ__func__r<rtrsr¨r)rrrœròrrQr›ršZreqargsZparsed_gr r@rBrDr	r	r
r`Ls\	
		
*$'	
	z!ParserReflect.validate_pfunctions)rrrrr[rbrÿrarVr\rWr]rXr^rYr_rZr`r	r	r	r
rSxs
rSc
<Osø|dkrt}|rd}|dkr9ttjƒ}ˆr‘‡fdd†tˆƒDƒ}
t|
ƒ}d|krtj|dj|d<ntdƒ}|	dkrAt	|t
jƒrÇ|j}nhd|krà|d}nO|jdƒ}dj
|dd6…ƒ}td	|ƒttj|dd
ƒ}tjj|ƒ}	|jdƒ}|rt	|tƒrd|kr|d|}|dk	r•||d<t|d
|ƒ}|jƒ|jrÆtdƒ‚|jƒ}y±tƒ}|rö|j|ƒ}n|j|ƒ}|s||kr‚y3|j|jƒt||j ƒ}|j!a!|SWn5t"k
r}z|j#d|ƒWYdd}~XnXWnIt$k
r½}z|j#t|ƒƒWYdd}~Xnt%k
rÎYnX|
dkr]|rTy(tt&tjj
|	|ƒdƒƒ}
Wq]t'k
rP}z%|j#d||fƒt(ƒ}
WYdd}~Xq]Xn	t(ƒ}
|
j)dt*ƒd}|j+ƒr‹tdƒ‚|j s¡|j#dƒt,|j-ƒ}xi|j.D]^\}}}y|j/|||ƒWqºt0k
r}z|j#d|ƒWYdd}~XqºXqºWx„|j1D]y\}}|\} }!}"}#y|j2|"|#|| |!ƒWq&t0k
rž}z|jd|ƒd}WYdd}~Xq&Xq&Wy0|dkrÅ|j3|j4ƒn
|j3|ƒWn>t0k
r}z|jt|ƒƒd}WYdd}~XnX|r&tdƒ‚|j5ƒ}$x6|$D].\}%}&|jd|&j6|&j7|%ƒd}q9W|j8ƒ}'|'rÕ|
j)d
ƒ|
j)dƒ|
j)d
ƒx.|'D]&}|j#d|ƒ|
j)d|ƒq«W|r5|
j)d
ƒ|
j)dƒ|
j)d
ƒx0t9|j:ƒD]\}(})|
j)d|(|)ƒqW|j;ƒ}*x-|*D]%}&|j#d|&j6|&j7|&j<ƒqHWt=|'ƒdkr|j#dƒt=|'ƒdkr¸|j#dt=|'ƒƒt=|*ƒdkr×|j#d ƒt=|*ƒdkrÿ|j#d!t=|*ƒƒ|r|
j)d
ƒ|
j)d"ƒ|
j)d
ƒt>|j?ƒ}+|+j@ƒx>|+D]6}|
j)d#|d$j
d%d„|j?|DƒƒƒqLW|
j)d
ƒ|
j)d&ƒ|
j)d
ƒt>|jAƒ},|,j@ƒx>|,D]6}-|
j)d#|-d$j
d'd„|jA|-DƒƒƒqÍW|
j)d
ƒ|rz|jBƒ}.x|.D]}/|j#d(|/ƒq-W|jCƒ}0x$|0D]}1|jd)|1ƒd}qZW|jDƒ}2x-|2D]%\}}|jd*||ƒd}qW|rÈtdƒ‚|rÞ|jEd+|ƒtF|||
ƒ}|r„	t=|jGƒ}3|3dkr!	|j#d,ƒn|3dkr=	|j#d-|3ƒt=|jHƒ}4|4dkrh	|j#d.ƒn|4dkr„	|j#d/|4ƒ|r|jGsœ	|jHr|
j#d
ƒ|
j#d0ƒ|
j#d
ƒx0|jGD]%\}5}6}7|
j#d1|6|5|7ƒqÍ	WtIƒ}8x¬|jHD]¡\}5}9}:|5tJ|9ƒtJ|:ƒf|8kr<
q	
|
j#d2|5|9ƒ|
j#d3|:|5ƒ|j#d2|5|9ƒ|j#d3|:|5ƒ|8jK|5tJ|9ƒtJ|:ƒfƒq	
Wg};x]|jHD]R\}5}9}:|:jLr¾
|:|;kr¾
|
j#d4|:ƒ|j#d4|:ƒ|;jM|:ƒq¾
W|rpy|jN||	|ƒWn<t'k
ro}z|j#d5||fƒWYdd}~XnX|rÉy|jO||ƒWn<t'k
rÈ}z|j#d5||fƒWYdd}~XnX|j|jƒt||j ƒ}|j!a!|S)7Nrcs%g|]}|tˆ|ƒf‘qSr	)rK)r?rå)ròr	r
r@¡s	zyacc.<locals>.<listcomp>Ú__file__rrÉr°rcz	import %srwÚ__package__rÖrzUnable 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 usedzThere is 1 unused tokenzThere are %d unused tokenszThere is 1 unused rulezThere are %d unused rulesz'Terminals, with rules where they appearz
%-20s : %srxcSsg|]}t|ƒ‘qSr	)r7)r?r=r	r	r
r@G
s	z*Nonterminals, with rules where they appearcSsg|]}t|ƒ‘qSr	)r7)r?r=r	r	r
r@O
s	zSymbol %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. %sr})PÚ
tab_modulerrmrnÚdirÚdictrðrrKrArírîr<r€rïrKrørùÚdirnamerr7rSr[rrrÿrërrórr¬rVrTrurOrrêrörûr;rrÚ__version__rbr·rUrwrÈr¶rrÕr×rÖrÞr›rœrßrÍr¸ràrrrfrºr|r»rÚrÝrárrrrr¿r!rÏr®rarArE)<rrròr>rÖZcheck_recursionÚoptimizeZwrite_tablesZ	debugfiler?ZdebuglogZerrorlogZ
picklefileZ_itemsr¬ZsrcfilerfZpkgnameZpkgZpinforÿZlrZread_signaturer3r@ÚerrorsrrÂrÆrÇÚfuncnameZgramr›rœrÐrÑrÞrbr‰rßrBrràr*ZnontermsZnontermZunreachableÚurÜÚinfZunused_precZnum_srZnum_rrrhr•Z
resolutionZalready_reportedÚruleZrejectedZwarned_neverr	)ròr
ÚyaccŽs„


			'%
(		
'








#






4




4







	!&**	rŒ)<rgrírmZos.pathrøriÚbase64r(r…rñZ	yaccdebugZ
debug_filerZ
default_lrr„rkrrDÚversion_infoZ
basestringrnr7Úmaxsizer
ÚobjectrrrOrr%r'r+r/r-r*r,r.r0r4r5r9rVrhrËr–r¯r¥rµr¶r·rêrërrrrrKrRrSrŒr	r	r	r
Ú<module>>s~		

4ÿÿÿéH.ÿðT
ÿÿÿ)ÿ