
    2hg                    L   d Z dZdZdZdZdZdZdZdZdZ	dd	l
Z
dd	lZdd	lZdd	lZdd	lZej        d         dk     rd
 Znd Zej        d         dk     reZneZ	 ej        Zn# e$ r
 ej        ZY nw xY wd Z G d de          Z G d de          Z G d de          Zd Zd Z d	a!d	a"d	a#dZ$dd	l%Z%d Z&d Z'd Z(d Z) G d d          Z* G d d          Z+ G d d          Z,dd	l
Z
 e
j-        d           Z. G d! d"e          Z/ G d# d$e          Z0 G d% d&e          Z1d' Z2 G d( d)e          Z3 G d* d+e          Z4 G d, d-e          Z5 G d. d/e          Z6d0 Z7d1 Z8 G d2 d3e          Z9 G d4 d5e6          Z:d6 Z;d7 Z< G d8 d9e          Z=ded	ed	ddded:d	d	d	fd;Z>d	S )<z3.5z3.2   z
parser.outparsetabLALR       (   Nc                     | j         S N)	func_codefs    M/home/metal/girl-os-victor/victor-clad/tools/message-buffers/clad/ply/yacc.pyr
   r
   [   s
    {    c                     | j         S r	   )__code__r   s    r   r
   r
   ^   s
    zr   c                  H    t           j        d         dk     rdd l} ndd lm}  | S )Nr   r   )sysversion_infolexply.lex)r   s    r   load_ply_lexr   n   s7    
Q



Jr   c                   .    e Zd Zd Zd ZeZd Zd ZeZdS )	PlyLoggerc                     || _         d S r	   r   )selfr   s     r   __init__zPlyLogger.__init__|   s    r   c                 F    | j                             ||z  dz              d S )N
r   writer   msgargskwargss       r   debugzPlyLogger.debug~   s%    cDjD()))))r   c                 L    | j                             d||z  z   dz              d S )Nz	WARNING: r   r   r    s       r   warningzPlyLogger.warning   s*    [3:.566666r   c                 L    | j                             d||z  z   dz              d S )NzERROR: r   r   r    s       r   errorzPlyLogger.error   s*    Y#*-455555r   N)	__name__
__module____qualname__r   r$   infor&   r(   critical r   r   r   r   {   sV          * * *D7 7 76 6 6 HHHr   r   c                       e Zd Zd Zd ZdS )
NullLoggerc                     | S r	   r.   )r   names     r   __getattribute__zNullLogger.__getattribute__       r   c                     | S r	   r.   )r   r"   r#   s      r   __call__zNullLogger.__call__   r4   r   N)r)   r*   r+   r3   r6   r.   r   r   r0   r0      s2              r   r0   c                       e Zd ZdS )	YaccErrorNr)   r*   r+   r.   r   r   r8   r8                r   r8   c                     t          |           }d|v rt          |          }t          |          t          k    r|d t                   dz   }dt          |           j        t          |           |fz  }|S )Nr   z ...z<%s @ 0x%x> (%s))reprlenresultlimittyper)   id)rrepr_strresults      r   format_resultrD      sk    AwwHxDNN
8}}{""L[L)&0477#3BqEE("CCFMr   c                     t          |           }d|v rt          |          }t          |          dk     r|S dt          |           j        t	          |           fz  S )Nr      z<%s @ 0x%x>)r<   r=   r?   r)   r@   )rA   rB   s     r   format_stack_entryrG      sW    AwwHxDNN
8}}rQ 0A777r   a  PLY: 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()
c                  P    t          j        t                     t                      S r	   )warningswarn_warnmsg_errokr.   r   r   errokrM          M(88Or   c                  P    t          j        t                     t                      S r	   )rI   rJ   rK   _restartr.   r   r   restartrQ      s    M(::r   c                  P    t          j        t                     t                      S r	   )rI   rJ   rK   _tokenr.   r   r   tokenrT      rN   r   c                 L    |j         a|j        a|j        a | |          }bbbd S r	   )rM   rL   rT   rS   rQ   rP   )	errorfuncrT   parserrA   s       r   call_errorfuncrX      s1    \F\F~H	%Ar   c                       e Zd Zd Zd ZdS )
YaccSymbolc                     | j         S r	   r?   r   s    r   __str__zYaccSymbol.__str__   s	    *r   c                      t          |           S r	   strr]   s    r   __repr__zYaccSymbol.__repr__   s    T*r   N)r)   r*   r+   r^   rb   r.   r   r   rZ   rZ      s"        ********r   rZ   c                   X    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd ZdS )YaccProductionNc                 >    || _         || _        d | _        d | _        d S r	   )slicestacklexerrW   )r   srg   s      r   r   zYaccProduction.__init__   s"    


r   c                     t          |t                    rd | j        |         D             S |dk    r| j        |         j        S | j        |         j        S )Nc                     g | ]	}|j         
S r.   value.0ri   s     r   
<listcomp>z.YaccProduction.__getitem__.<locals>.<listcomp>   s    333AG333r   r   )
isinstancerf   rm   rg   r   ns     r   __getitem__zYaccProduction.__getitem__   sU    a 	'33TZ]3333!VV:a=&&:a=&&r   c                 *    || j         |         _        d S r	   )rf   rm   )r   rs   vs      r   __setitem__zYaccProduction.__setitem__   s    
1r   c                 4    d | j         ||         D             S )Nc                     g | ]	}|j         
S r.   rl   rn   s     r   rp   z/YaccProduction.__getslice__.<locals>.<listcomp>   s    111A111r   )rf   )r   ijs      r   __getslice__zYaccProduction.__getslice__   s     11AaC1111r   c                 *    t          | j                  S r	   )r=   rf   r]   s    r   __len__zYaccProduction.__len__   s    4:r   c                 :    t          | j        |         dd          S )Nlinenor   getattrrf   rr   s     r   r   zYaccProduction.lineno      tz!}Xa000r   c                 *    || j         |         _        d S r	   )rf   r   )r   rs   r   s      r   
set_linenozYaccProduction.set_lineno  s    %
1r   c                 z    t          | j        |         dd          }t          | j        |         d|          }||fS )Nr   r   	endlinenor   )r   rs   	startlineendlines       r   linespanzYaccProduction.linespan  s;    DJqM(155	$*Q-I>>  r   c                 :    t          | j        |         dd          S )Nlexposr   r   rr   s     r   r   zYaccProduction.lexpos  r   r   c                 z    t          | j        |         dd          }t          | j        |         d|          }||fS )Nr   r   	endlexposr   )r   rs   startposendposs       r   lexspanzYaccProduction.lexspan  s:    4:a=!44A{8<<r   c                 6    | j                             |          S r	   )rf   poprr   s     r   r   zYaccProduction.pop  s    z~~a   r   c                     t           r	   )SyntaxErrorr]   s    r   r(   zYaccProduction.error  s    r   r	   )r)   r*   r+   r   rt   rw   r|   r~   r   r   r   r   r   r   r(   r.   r   r   rd   rd      s           
' ' '     2 2 2  1 1 1& & &! ! !
1 1 1  
! ! !    r   rd   c                   @    e Zd Zd Zd Zd Zd
dZddZd
dZd
d	Z	dS )LRParserc                 \    |j         | _        |j        | _        |j        | _        || _        d S r	   )lr_productionsproductions	lr_actionactionlr_gotogotorV   )r   lrtaberrorfs      r   r   zLRParser.__init__#  s*     / ? =	!r   c                     d| _         d S Nr   )errorokr]   s    r   rM   zLRParser.errok)  s    r   c                     | j         d d = | j        d d = t                      }d|_        | j                            |           | j                             d           d S )N$endr   )
statestacksymstackrZ   r?   append)r   syms     r   rQ   zLRParser.restart,  s`    OAAAM!!!llS!!!q!!!!!r   Nr   c                 
   |st           rGt          |t                    rt          t          j                  }|                     |||||          S |r|                     |||||          S |                     |||||          S r	   )		yaccdevelrq   intr   r   stderr
parsedebugparseoptparseopt_notrack)r   inputrh   r$   tracking	tokenfuncs         r   parsezLRParser.parse4  s     	OI 	O%$$ .!#*--??5uXiHHH 	O==uU8IFFF((uU8INNNr   c                    d }g }| j         }| j        }	| j        }
t          d           }d}|                    d           |st                      }|j        }||_        | |_        ||                    |           ||j	        }n|}|| _	        g }|| _
        g }|| _        ||_        d }|                    d           t                      }d|_        |                    |           d}	 |                    d           |                    d|           |s8|s |            }n|                                }|st                      }d|_        |                    dd                    d	 |D             dd                    d
t'          |                                                     |j        }||                             |          }||dk    rM|                    |           |}|                    d|           |                    |           d }|r|dz  }=|dk     r#|
|          }|j        }|j        }t                      }||_        d |_        |rK|                    d|j        dd                    d || d          D                       z   dz   |            n|                    d|j        g |            |rr|| dz
  d          }||d<   |r^|d         }|j        |_        |j        |_        |d         }t7          |d|j                  |_        t7          |d|j                  |_        ||_        	 || d = || d = |                    |           |                    dtA          |d                              |                    |           |	|d                  |         }|                    |           nl# tB          $ r_ |                    |           |                                 |                                 |d         }d|_        |}tD          }d| _#        Y nw xY wW|r|j        |_        |j        |_        |g}||_        	 |                    |           |                    dtA          |d                              |                    |           |	|d                  |         }|                    |           nl# tB          $ r_ |                    |           |                                 |                                 |d         }d|_        |}tD          }d| _#        Y nw xY wg|dk    rS|d         }t7          |dd           }|                    dtA          |                     |                    d           |S |d k    r|$                    dd                    d |D             dd                    d
t'          |                                                     |dk    s| j#        rtD          }d| _#        |}|j        dk    rd }| j%        r=|rtM          |d          s||_        tO          | j%        ||           }| j#        r|}d }n|rntM          |d          r|j        }nd}|r*tP          j)        *                    d||j        fz             nPtP          j)        *                    d|j        z             n(tP          j)        *                    d           d S tD          }t/          |          dk    r|j        dk    rd }d }d}|d d = W|j        dk    rd S |j        dk    r|d         }|j        dk    r<|r6t7          |d|j                  |_        t7          |d |j                  |_        d }t                      }d|_        tM          |d          r|j        |_        tM          |d           r|j        |_        ||_        |                    |           |}nJ|                                }|r|j        |_        |j        |_        |                                 |d         }vtW          d!          )"Nr   zPLY: PARSE DEBUG STARTr   r    zState  : %szStack  : %s c                     g | ]	}|j         
S r.   r\   ro   xxs     r   rp   z'LRParser.parsedebug.<locals>.<listcomp>  s    /K/K/KB/K/K/Kr   z . z Action : Shift and goto state %sz3Action : Reduce rule [%s] with %s and goto state %d[,c                 6    g | ]}t          |j                  S r.   )rG   rm   )ro   _vs     r   rp   z'LRParser.parsedebug.<locals>.<listcomp>  sV      oh  oh  oh  QS  pB  CE  CK  pL  pL  oh  oh  ohr   ]r   r   zResult : %sr(   rm   zDone   : Returning %szPLY: PARSE DEBUG ENDzError  : %sc                     g | ]	}|j         
S r.   r\   r   s     r   rp   z'LRParser.parsedebug.<locals>.<listcomp>#  s    3O3O3OBG3O3O3Or   rh   r   (yacc: Syntax error at line %d, token=%s
yacc: Syntax error, token=%s yacc: Parse error in input. EOF
r   yacc: internal parser error!!!
),r   r   r   rd   r,   r   rh   rW   r   rT   r   r   rg   r   rZ   r?   r$   r   joinra   lstripgetr2   r=   rm   r   r   r   r   r   rf   callablerD   r   error_countr   r(   rV   hasattrrX   r   r   r   RuntimeError)r   r   rh   r$   r   r   	lookaheadlookaheadstackactionsr   prodpslice
errorcountr   	get_tokenr   r   errtokenr   stateltypetppnameplentargt1rs   rC   tokr   s                                  r   r   zLRParser.parsedebugM  s	   	+)" &&
 	

+,,,  	..CIE  KK{99 9 
 
$  	!llA	C KKOOOKKu---  ,% 5 )	II . 2 2 4 4I  , *I%+IN KK&)hh/K/K(/K/K/KABB/O&P&P&P&PRUV_R`R`R`aiikkm m m
 NE""5))A}q55%%a(((E KK BAFFF OOI... $I "1:>:q55aRAFEED %,,C$CH $CI  h

#XZ[Z_adehemem  oh  oh  W_  ae  `e  `f  `f  Wg  oh  oh  oh  fi  fi  bi  jm  bm  op  np  q  q  q  q

#XZ[Z_acefdfggg  R!'a1"%Q $ M $Q2(*	3:(*	3: $R2+22k")+L+L3=+22k")+L+L3= (,- ($ 0 *D566 2JJv...!JJ}mF1I6N6NOOO$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- ! $ 5(-3:(-3: "%w (,-JJv...!JJ}mF1I6N6NOOO$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- ! 66 A$Qwt44FJJ6f8M8MNNNJJ5666!MDyy M*-((3O3Oh3O3O3OPQPRPR3S*T*T*T*TVYZcVdVdVdemmooq q q ??dl?!,J#$DL(H}..#'~ ## 3GHW,E,E 3-2HN,T^XtLL< % ),I'+H$% $ 	#&x99 -IDT66+,&% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** $ T,3Ih
,S,SCM,3Ih
,S,SCM$(	 "A$AFy22 4#,#3y22 4#,#3'AG")))444 !II",,..C 6+.:	(+.:	(NN$$$&rNE ABBBs(   BO A&P=<P='A<S$ $A&UUc                    d }g }| j         }| j        }	| j        }
t          d           }d}|st	                      }|j        }||_        | |_        ||                    |           ||j        }n|}|| _        g }|| _	        g }|| _
        ||_        d }|                    d           t                      }d|_        |                    |           d}	 |s8|s |            }n|                                }|st                      }d|_        |j        }||                             |          }||dk    r6|                    |           |}|                    |           d }|r|dz  }|dk     rf|
|          }|j        }|j        }t                      }||_        d |_        |rI|| dz
  d          }||d<   |r^|d         }|j        |_        |j        |_        |d         }t-          |d|j                  |_        t-          |d|j                  |_        ||_        	 || d = || d = |                    |           |                    |           |	|d                  |         }|                    |           nl# t6          $ r_ |                    |           |                                 |                                 |d         }d|_        |}t8          }d| _        Y nw xY w"|r|j        |_        |j        |_        |g}||_        	 |                    |           |                    |           |	|d                  |         }|                    |           nl# t6          $ r_ |                    |           |                                 |                                 |d         }d|_        |}t8          }d| _        Y nw xY w	|dk    r|d         }t-          |dd           S |d k    rP|dk    s| j        rt8          }d| _        |}|j        dk    rd }| j        r=|rt?          |d	          s||_        tA          | j        ||           }| j        r|}d }n|rnt?          |d
          r|j        }nd}|r*tB          j"        #                    d||j        fz             nPtB          j"        #                    d|j        z             n(tB          j"        #                    d           d S t8          }t%          |          dk    r|j        dk    rd }d }d}|d d = `|j        dk    rd S |j        dk    r|d         }|j        dk    r<|r6t-          |d
|j                  |_        t-          |d|j                  |_        d }t                      }d|_        t?          |d
          r|j        |_        t?          |d          r|j        |_        ||_        |                    |           |}nJ|                                }|r|j        |_        |j        |_        |                                 |d         }tI          d          )Nr   r   r   r   r   r   r(   rm   rh   r   r   r   r   r   r   )%r   r   r   rd   r   rh   rW   r   rT   r   r   rg   r   rZ   r?   r   r   r2   r=   rm   r   r   r   r   r   rf   r   r   r   r   rV   r   rX   r   r   r   r   )r   r   rh   r$   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rs   r   r   s                                 r   r   zLRParser.parseopt  s(   	+)" &&
  	..CIE  KK{99 9 
 
$  	!ll\	C
  ,% 5 )	II . 2 2 4 4I  , *I%+IN NE""5))A}q55%%a(((EOOI... $I "1:>:q55aRAFEED %,,C$CH $CI L!'a1"%Q $ M $Q2(*	3:(*	3: $R2+22k")+L+L3=+22k")+L+L3= (,- ($ 0 *D566 2JJv...$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- ! $ 5(-3:(-3: "%w (,-JJv...$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- ! 66 A"1WT222Dyy ??dl?!,J#$DL(H}..#'~ ## 3GHW,E,E 3-2HN,T^XtLL< % ),I'+H$% $ 	#&x99 -IDT66+,&% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** $ T,3Ih
,S,SCM,3Ih
,S,SCM$(	 "A$AFy22 4#,#3y22 4#,#3'AG")))444 !II",,..C 6+.:	(+.:	(NN$$$&rNE ABBBs(   *AJ
 
A&K32K3AM1 1A&OOc                 .   d }g }| j         }| j        }	| j        }
t          d           }d}|st	                      }|j        }||_        | |_        ||                    |           ||j        }n|}|| _        g }|| _	        g }|| _
        ||_        d }|                    d           t                      }d|_        |                    |           d}	 |s8|s |            }n|                                }|st                      }d|_        |j        }||                             |          }|M|dk    r6|                    |           |}|                    |           d }|r|dz  }|dk     r|
|          }|j        }|j        }t                      }||_        d |_        |r|| dz
  d          }||d<   ||_        	 || d = || d = |                    |           |                    |           |	|d                  |         }|                    |           nl# t,          $ r_ |                    |           |                                 |                                 |d         }d|_        |}t.          }d| _        Y nw xY w|g}||_        	 |                    |           |                    |           |	|d                  |         }|                    |           nl# t,          $ r_ |                    |           |                                 |                                 |d         }d|_        |}t.          }d| _        Y nw xY w|dk    r|d         }t3          |dd           S |d k    r|dk    s| j        rt.          }d| _        |}|j        dk    rd }| j        r=|rt7          |d          s||_        t9          | j        ||           }| j        r|}d }!n|rnt7          |d          r|j        }nd}|r*t<          j                             d	||j        fz             nPt<          j                             d
|j        z             n(t<          j                             d           d S t.          }t%          |          dk    r|j        dk    rd }d }d}|d d = |j        dk    rd S |j        dk    r|d         }|j        dk    rd }t                      }d|_        t7          |d          r|j        |_        t7          |d          r|j!        |_!        ||_        |                    |           |}n0|                                 |                                 |d         }tE          d          )Nr   r   r   r   r(   rm   rh   r   r   r   r   r   r   )#r   r   r   rd   r   rh   rW   r   rT   r   r   rg   r   rZ   r?   r   r   r2   r=   rm   rf   r   r   r   r   r   rV   r   rX   r   r   r   r   r   r   )r   r   rh   r$   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rs   r   r   s                                r   r   zLRParser.parseopt_notrack  sc   	+)" &&
  	..CIE  KK{99 9 
 
$  	!llE	C
  ,% 5 )	II . 2 2 4 4I  , *I%+IN NE""5))A}q55%%a(((EOOI... $I "1:>:q55aRAFEED %,,C$CH $CI ;!'a1"%Q (,- ($ 0 *D566 2JJv...$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- !
 "%w (,-JJv...$OOC000$(B$8$?E&--e4444* 	- 	- 	-*11)<<<$LLNNN&NN,,,$.rNE'.CH(+I)4J+,DLLL	- ! 66 A"1WT222Dyy ??dl?!,J#$DL(H}..#'~ ## 3GHW,E,E 3-2HN,T^XtLL< % ),I'+H$% $ 	#&x99 -IDT66+,&% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** %)	 "A$AFy22 4#,#3y22 4#,#3'AG")))444 !IILLNNNNN$$$&rNE ABBBs(   	AH) )A&JJ"AK6 6A&MM)NNr   r   N)NNNr   N)
r)   r*   r+   r   rM   rQ   r   r   r   r   r.   r   r   r   r   "  s        " " "  " " "O O O O2uC uC uC uC@
LC LC LC LCluC uC uC uC uC uCr   r   z^[a-zA-Z0-9_-]+$c                   D    e Zd ZdZddZd Zd Zd Zd	 Zd
 Z	d Z
d ZdS )
Productionr   rightr   Nr   c                    || _         t          |          | _        || _        || _        d | _        || _        || _        || _        t          | j                  | _	        g | _
        | j        D ]%}|| j
        vr| j
                            |           &g | _        d | _        | j        r+| j         dd                    | j                  | _        d S d| j         z  | _        d S N -> r   z%s -> <empty>)r2   tupler   numberfuncr   filelineprecr=   usymsr   lr_itemslr_nextr   ra   )	r   r   r2   r   
precedencer   r   r   ri   s	            r   r   zProduction.__init__  s    	d				"	 	NN 
 	% 	%A
""
!!!$$$  9 	3%)YYYsxx	/B/B/BCDHHH&2DHHHr   c                     | j         S r	   r`   r]   s    r   r^   zProduction.__str__  	    xr   c                 ,    dt          |           z   dz   S )NzProduction()r`   r]   s    r   rb   zProduction.__repr__  s    SYY&s**r   c                 *    t          | j                  S r	   )r=   r   r]   s    r   r~   zProduction.__len__  s    49~~r   c                     dS r   r.   r]   s    r   __nonzero__zProduction.__nonzero__  s    qr   c                     | j         |         S r	   )r   r   indexs     r   rt   zProduction.__getitem__  s    yr   c                 6   |t          | j                  k    rd S t          | |          }	 t          |j        |dz                     |_        n# t
          t          f$ r
 g |_        Y nw xY w	 |j        |dz
           |_        n# t
          $ r
 d |_        Y nw xY w|S r   )r=   r   LRItem	Prodnameslr_after
IndexErrorKeyError	lr_before)r   rs   r   s      r   lr_itemzProduction.lr_item  s    s49~~dd4NN	"16!A#;/AJJ8$ 	 	 	AJJJ		&1+AKK 	 	 	AKKK	 s#    A A('A(,B BBc                 <    | j         r|| j                  | _        d S d S r	   r   r   r   pdicts     r   bindzProduction.bind  (    9 	-!$),DMMM	- 	-r   )r   Nr   r   )r)   r*   r+   reducedr   r^   rb   r~   r   rt   r  r  r.   r   r   r   r     s        G3 3 3 3<  + + +           "- - - - -r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )MiniProductionc                 h    || _         || _        || _        d | _        || _        || _        || _        d S r	   )r2   r=   r   r   r   r   ra   )r   ra   r2   r=   r   r   r   s          r   r   zMiniProduction.__init__  s7    				r   c                     | j         S r	   r`   r]   s    r   r^   zMiniProduction.__str__  r   r   c                     d| j         z  S )NzMiniProduction(%s)r`   r]   s    r   rb   zMiniProduction.__repr__  s    #dh..r   c                 <    | j         r|| j                  | _        d S d S r	   r  r  s     r   r  zMiniProduction.bind  r  r   N)r)   r*   r+   r   r^   rb   r  r.   r   r   r  r    sP            / / /- - - - -r   r  c                        e Zd Zd Zd Zd ZdS )r   c                 6   |j         | _         t          |j                  | _        |j        | _        || _        i | _        | j                            |d           t          | j                  | _        t          | j                  | _        |j	        | _	        d S )N.)
r2   listr   r   lr_index
lookaheadsinsertr   r=   r   )r   r   rs   s      r   r   zLRItem.__init__4  sv    &	qv,,	(	3	**	di..'


r   c                 r    | j         r%| j        dd                    | j                   }n
d| j        z  }|S r   )r   r2   r   )r   ri   s     r   r^   zLRItem.__str__?  s@    9 	,"iii(;(;(;<AA$)+Ar   c                 ,    dt          |           z   dz   S )NzLRItem(r   r`   r]   s    r   rb   zLRItem.__repr__F  s    T"3&&r   N)r)   r*   r+   r   r^   rb   r.   r   r   r   r   3  sA        	" 	" 	"  ' ' ' ' 'r   r   c                 p    t          |           dz
  }|dk    r| |         |v r| |         S |dz  }|dk    d S )Nr   r   )r=   )symbols	terminalsrz   s      r   rightmost_terminalr  N  sO    GqA
q&&1:""1:	Q q&& 4r   c                       e Zd ZdS )GrammarErrorNr9   r.   r   r   r  r  ^  r:   r   r  c                   t    e Zd Zd Zd Zd Zd ZddZdd	Zd
 Z	d Z
d Zd Zd Zd Zd Zd ZddZd ZdS )Grammarc                     d g| _         i | _        i | _        i | _        |D ]}g | j        |<   g | j        d<   i | _        i | _        i | _        i | _        i | _        d | _	        d S Nr(   )
Productionsr   Prodmap	TerminalsNonterminalsFirstFollow
PrecedenceUsedPrecedenceStart)r   r  terms      r   r   zGrammar.__init__a  s    !F        	& 	&D#%DN4  "$w  
 " 


r   c                 *    t          | j                  S r	   )r=   r#  r]   s    r   r~   zGrammar.__len__  s    4#$$$r   c                     | j         |         S r	   )r#  r   s     r   rt   zGrammar.__getitem__  s    &&r   c                     | j         d gk    s
J d            || j        v rt          d|z            |dvrt          d          ||f| j        |<   d S )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#  r)  r  )r   r,  assoclevels       r   set_precedencezGrammar.set_precedence  st    D6)))*^)))4?""MPTTUUU333[\\\!&ur   Nr   r   c           	      D   || j         v rt          d|||fz            |dk    rt          d|||fz            t                              |          st          d|||fz            t	          |          D ]\  }}|d         dv rb	 t          |          }t          |          dk    rt          d||||fz            || j         vr
g | j         |<   |||<   a# t          $ r Y nw xY wt                              |          s|d	k    rt          d
||||fz            d	|v r|d         d	k    rt          d||fz            |d         d	k    rt          d||fz            |d         }	| j        	                    |	          }
|
st          d|||	fz            d| j
        |	<   |dd = n0t          || j                   }	| j        	                    |	d          }
|d|}|| j        v r4| j        |         }t          d|||fz  d|j        |j        fz  z             t          | j                  }|| j        vr
g | j        |<   |D ]_}|| j         v r!| j         |                             |           ,|| j        vr
g | j        |<   | j        |                             |           `t%          ||||
|||          }| j                            |           || j        |<   	 | j        |                             |           n# t(          $ r |g| j        |<   Y nw xY wdS )Nz7%s:%d: Illegal rule name %r. Already defined as a tokenr(   z5%s:%d: Illegal rule name %r. error is a reserved wordz%s:%d: Illegal rule name %rr   z'"r   zA%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 %%preczH%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. zPrevious definition at %s:%d)r%  r  _is_identifiermatch	enumerateevalr=   r   r)  r   r*  r  r$  r   r   r#  r&  r   r   r   r   )r   prodnamesymsr   r   r   rs   ri   cprecnameprodprecmapmpnumberr   r   s                   r   add_productionzGrammar.add_production  s   t~%%X\`aefn[oopppwVZ^_cdlYmmnnn##H-- 	U<T(?SSTTT T?? 	b 	bCAatu}}	aQQ! ,-ptxy}~  BJ  tK  .K  !L  !L  L//.0$.+ T!W#   T!''** bqG||"#F$tTUW_I`#`aaa d??Bx7"""#PTXY]S^#^___Bx7"""#mquvzp{#{|||BxH**844H 2"#TX\]abjWk#klll01#H-RSS		 *$t~>>H**8K@@H %HHTT*$,S!A;tD!nL=@PP Q R R R t'((4,,,*-Dh'  	5 	5ADN""q!((1111D---+.D%a(!!$++G4444 wxXd4EE"""S	-N8$++A.... 	- 	- 	-)*uDN8$$$	-qs%   AC
C&%C&$ L LLc                     |s| j         d         j        }|| j        vrt          d|z            t	          dd|g          | j         d<   | j        |                             d           || _        d S )Nr   zstart symbol %s undefinedr   S')r#  r2   r&  r  r   r   r+  )r   starts     r   	set_startzGrammar.set_start  s~     	-$Q',E))):UBCCC(488% ''***


r   c                       fdi t           j                  t           j                  z   D ]}d|<     j        d         j        d                    fdt           j                  D             S )Nc                     |          rd S d| <   j                             | g           D ]}|j        D ]} |           d S r   )r   r   r   )ri   r   rA   mark_reachable_from	reachabler   s      r   rJ  z5Grammar.find_unreachable.<locals>.mark_reachable_from  sr    | IaL^''"-- + + + +A''****++ +r   r   c                 $    g | ]}|         
|S r.   r.   )ro   ri   rK  s     r   rp   z,Grammar.find_unreachable.<locals>.<listcomp>!  s1     - - -a(|- - - -r   )r  r%  r&  r#  r   )r   ri   rJ  rK  s   ` @@r   find_unreachablezGrammar.find_unreachable  s    	+ 	+ 	+ 	+ 	+ 	+ 	+ 	dn%%T->(?(?? 	 	AIaLLT-a05a8:::- - - -4 122 - - - 	-r   c                    i }| j         D ]}d||<   d|d<   | j        D ]}d||<   	 d}| j                                        D ]5\  }}|D ]-}|j        D ]}||         sd} nd}|r||         sd||<   d} n.6|snUg }	|                                D ]5\  }}
|
s.|| j        vr|| j         vr|dk    r |	                    |           6|	S )Nr   r   r   r(   )r%  r&  r   itemsr   r   )r   
terminatesr   rs   some_changeplr   ri   p_terminatesinfiniter,  s              r   infinite_cycleszGrammar.infinite_cycles,  si   
  	 	AJqMM
6
 " 	 	AJqMM	K...00  2  AV 
) 
))!} " ,-L!E	" ()# )!} ,,-JqM*+K  7	: "((** 	' 	'HQt 'DN**13F3F1PW<< OOA&&&r   c                     g }| j         D ]>}|s|j        D ]1}|| j        vr&|| j        vr|dk    r|                    ||f           2?|S r"  )r#  r   r   r%  r   )r   rC   r   ri   s       r   undefined_symbolszGrammar.undefined_symbolsm  sw    ! 	) 	)AhV ) )DN**13F3F1PW<<MM1Q%((() r   c                     g }| j                                         D ]"\  }}|dk    r|s|                    |           #|S r"  )r%  rO  r   )r   
unused_tokri   rv   s       r   unused_terminalszGrammar.unused_terminals}  sP    
>'')) 	% 	%CAaG||A|!!!$$$r   c                     g }| j                                         D ]/\  }}|s(| j        |         d         }|                    |           0|S Nr   )r&  rO  r   r   )r   unused_prodri   rv   r   s        r   unused_ruleszGrammar.unused_rules  s]    $**,, 	& 	&CAa &N1%a(""1%%%r   c                     g }| j         D ]<}|| j        v s1|| j        v s(|                    || j         |         d         f           =|S r\  )r)  r%  r*  r   )r   unusedtermnames      r   unused_precedencezGrammar.unused_precedence  s]     	G 	GH..(d>Q2Q2Qx(A!(DEFFFr   c                     g }|D ]:}d}| j         |         D ]$}|dk    rd}||vr|                    |           %|r9 n|                    d           |S )Nr   <empty>r   )r'  r   )r   betarC   xx_produces_emptyr   s         r   _firstzGrammar._first  s      	% 	%A  Z] 9 9	>>'($$a(8(8(8   
 MM)$$$r   c                 r   | j         r| j         S | j        D ]}|g| j         |<   dg| j         d<   | j        D ]}g | j         |<   	 d}| j        D ]`}| j        |         D ]P}|                     |j                  D ]3}|| j         |         vr"| j         |                             |           d}4Qa|snn| j         S )Nr   r   r   )r'  r%  r&  r   rh  r   r   )r   r   rs   rQ  r   r   s         r   compute_firstzGrammar.compute_first  s   : 	:  	  	 ACDJqMM$X
6
 " 	 	ADJqMM		K& , ,* , ,A![[00 , ,DJqM11 JqM00!555*+K,,
  		 zr   c                    | j         r| j         S | j        s|                                  | j        D ]}g | j         |<   |s| j        d         j        }dg| j         |<   	 d}| j        dd          D ]}t          t          |j                            D ]}|j        |         }|| j        v r| 	                    |j        |dz   d                    }d}|D ]A}	|	dk    r1|	| j         |         vr"| j         |         
                    |	           d}|	dk    rd}B|s|t          |j                  dz
  k    rF| j         |j                 D ]3}	|	| j         |         vr"| j         |         
                    |	           d}4|sn#| j         S )Nr   r   r   rd  )r(  r'  rj  r&  r#  r2   ranger=   r   rh  r   )
r   rF  kdidaddr   rz   Bfsthasemptyr   s
             r   compute_followzGrammar.compute_follow  s   ; 	; z 	!    " 	! 	!A DKNN 	-$Q',E%ZE	!F%abb) / /s16{{++ / /Aq	AD---"kk!&1,77#$!$ - -A I~~!4;q>2I2I $A 5 5a 8 8 8)* I~~+,# /qS[[]';';%)[%8 / /#$DKN#:#:$(KN$9$9!$<$<$<-.F#/$  5-	!. {r   c                    | j         D ]}|}d}g }	 |t          |          k    rd }n~t          ||          }	 | j        |j        |dz                     |_        n# t          t          f$ r
 g |_        Y nw xY w	 |j        |dz
           |_        n# t          $ r
 d |_        Y nw xY w||_	        |sn|
                    |           |}|dz  }||_        d S Nr   r   )r#  r=   r   r   r   r   r   r   r  r   r   r   )r   r   lastlrirz   r   lris         r   build_lritemszGrammar.build_lritems/  s   ! 	" 	"AGAHs1vv::CC 1++C*'+~chqsm'D&x0 * * *')*-(+1% - - -(,- #&!E$$$Q'( "AJJ1	" 	"s#    AA43A48BB"!B")Nr   r   r	   )r)   r*   r+   r   r~   rt   r4  rC  rG  rM  rU  rW  rZ  r^  rb  rh  rj  rr  rw  r.   r   r   r   r   `  s       ! ! !H% % %' ' '. . .2J J J Jf    - - -:7 7 7B       "     D  J) ) ) )v" " " " "r   r   c                       e Zd ZdS )VersionErrorNr9   r.   r   r   ry  ry  R  r:   r   ry  c                   &    e Zd Zd Zd Zd Zd ZdS )LRTablec                 >    d | _         d | _        d | _        d | _        d S r	   )r   r   r   	lr_methodr]   s    r   r   zLRTable.__init__U  s#    "r   c                    t          |t          j                  r|}nGt          j        d         dk     rt          d|z             ni }t          d|z  ||           |d         }|j        t          k    rt          d          |j	        | _
        |j        | _        g | _        |j        D ]#}| j                            t!          |            $|j        | _        |j        S )Nr   r   zimport %s as parsetabr   &yacc table file version is out of date)rq   types
ModuleTyper   r   exec_tabversion__tabversion__ry  
_lr_actionr   _lr_gotor   r   _lr_productionsr   r  
_lr_methodr}  _lr_signature)r   moduler   envr   s        r   
read_tablezLRTable.read_table[  s    fU-.. 	+HH"Q&&,v56666,v5sC@@@z?>11GHHH!,( ) 	; 	;A&&~q'9::::!,%%r   c                 *   	 dd l }n# t          $ r dd l}Y nw xY wt          |d          }|                    |          }|t
          k    rt          d          |                    |          | _        |                    |          }|                    |          | _        |                    |          | _	        |                    |          }g | _
        |D ]#}| j
                            t          |            $|                                 |S )Nr   rbr  )cPickleImportErrorpickleopenloadr  ry  r}  r   r   r   r   r  close)r   filenamer  in_f
tabversion	signaturer   r   s           r   read_picklezLRTable.read_pickles  s   	$$$$$ 	 	 	MMMMM	 HT""[[&&
''GHHHT**T**	T**T**T**  	; 	;A&&~q'9::::

    c                 D    | j         D ]}|                    |           d S r	   )r   r  )r   r  r   s      r   bind_callableszLRTable.bind_callables  s/    $ 	 	AFF5MMMM	 	r   N)r)   r*   r+   r   r  r  r  r.   r   r   r{  r{  T  sP          & & &0  2    r   r{  c           
      r    i }| D ]}d||<   g }i }| D ]#}||         dk    rt          ||||| ||           $|S r\  )traverse)XRFPNrf  rg   Fs          r   digraphr    sf    A  qttEA 3 3Q4199hq51Qr222Hr   c           
         |                     |            t          |          }||| <    ||           || <    ||           }|D ]}	||	         dk    rt          |	||||||           t          ||          ||	                   || <   |                    |	g           D ]'}
|
||          vr||                               |
           (||          |k    rxt
          ||d         <   ||          ||d         <   |                                }|| k    r?t
          ||d         <   ||          ||d         <   |                                }|| k    ;d S d S d S )Nr   r   )r   r=   r  minr   MAXINTr   )rf  r  rg   r  r  r  r  drelyaelements               r   r  r    s[   	LLOOOE

AAaD2a55AaD
!A$$C - -Q4199a%!Ab)))1Q4!~~!q 	- 	-A!}}adkk!nnn	-tqyyqr|dqr|w\\ 1U2Y<A$1U2Y<YY[[7 \\\\	 y \r   c                       e Zd ZdS )	LALRErrorNr9   r.   r   r   r  r    r:   r   r  c                   t    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd ZddZddZdS )LRGeneratedTabler   Nc                    |dvrt          d|z            || _        || _        |st                      }|| _        i | _        i | _        |j        | _        i | _	        i | _
        d| _        d| _        d| _        g | _        g | _        g | _        | j                                         | j                                         | j                                         |                                  d S )N)SLRr   zUnsupported method %sr   )r  grammarr}  r0   logr   r   r#  r   lr_goto_cachelr0_cidhash
_add_countsr_conflictrr_conflict	conflictssr_conflictsrr_conflictsrw  rj  rr  lr_parse_table)r   r  methodr  s       r   r   zLRGeneratedTable.__init__  s    ''3f<===  	,,C  &2  	""$$$""$$$##%%%r   c                     | xj         dz  c_         |d d          }d}|rVd}|D ]O}|j        D ]E}t          |dd          | j         k    r|                    |j                   | j         |_        d}FP|V|S )Nr   r   	lr0_added)r  r   r   r   r   r  )r   IJrn  r{   rf  s         r   lr0_closurezLRGeneratedTable.lr0_closure  s    1 aaaD 	F    AqQ//4?BBHHHQY'''"&/AKFF  	 r   c                 (   | j                             t          |          |f          }|r|S | j                             |          }|si }|| j         |<   g }|D ]e}|j        }|rZ|j        |k    rO|                    t          |                    }|si }||t          |          <   |                    |           |}f|                    d          }|s"|r|                     |          }||d<   n||d<   || j         t          |          |f<   |S )Nr   )r  r   r@   r   r  r   r  )	r   r  rf  gri   gsr   rs   s1s	            r   lr0_gotozLRGeneratedTable.lr0_goto  s4   ""BqEE!9--Qh
 ""1%% 	&A$%Dq! 	 	A	A Q[A%%UU2a55\\ "B!AbeeH		!EE&MM 	 $$R((&		&	()BqEE!9%r   c                    |                      | j        j        d         j        g          g}d}|D ]}|| j        t          |          <   |dz  }d}|t          |          k     r||         }|dz  }i }|D ]}|j        D ]}d ||<   |D ]k}|                     ||          }|st          |          | j        v r2t          |          | j        t          |          <   |	                    |           l|t          |          k     |S rt  )
r  r  r#  r   r  r@   r=   r   r  r   )	r   Crz   r  asymsiiri   rf  r  s	            r   	lr0_itemszLRGeneratedTable.lr0_items2  s=    8 ; CDEEG 	 	A&'DRUU#FAA #a&&jj!AFA E $ $ $ $A#E!HH$   MM!A&&#8a55D,,,h*-a&& A' #a&&jj" r   c                     i }d}	 | j         j        dd          D ]2}|j        dk    rd||j        <   |j        D ]}||vr n	d||j        <   3t          |          |k    rnt          |          }k|S rt  )r  r#  r=   r2   r   )r   nullablenum_nullabler   r   s        r   compute_nullable_nonterminalsz.LRGeneratedTable.compute_nullable_nonterminalsk  s    
	(L,QRR0 ) )q%1**'(HQV$ ) )1==%%='(HQV$(mm|++Uh--<
	( r   c                    g }t          t          |                    D ]i}||         D ]Y}|j        |j        dz
  k     rD||j        |j        dz            f}|d         | j        j        v r||vr|                    |           Z|dz   }j|S r   )rl  r=   r  r   r  r&  r   )r   r  transr   r   r   s         r   find_nonterminal_transitionsz-LRGeneratedTable.find_nonterminal_transitions  s    CFFmm 
 
Uh ? ?J** 
1!56a1!::: ~~u||AQYUUr   c                 p   i }|\  }}g }|                      ||         |          }|D ]Q}	|	j        |	j        dz
  k     r<|	j        |	j        dz            }
|
| j        j        v r|
|vr|                    |
           R|dk    r6|| j        j        d         j        d         k    r|                    d           |S )Nr   r   r   )r  r  r=   r   r  r%  r   r#  )r   r  r  r  dr_setr   r  termsr  r   r  s              r   dr_relationzLRGeneratedTable.dr_relation  s    aMM!E(1%% 	6 	6Aj1519$$6!*Q,'qt|---unnell1ooo A::!t|7:?BBB<<r   c                 ,   g }|\  }}|                      ||         |          }| j                            t          |          d          }|D ]E}	|	j        |	j        dz
  k     r0|	j        |	j        dz            }
|
|v r|                    ||
f           F|S )Nr   r   )r  r  r   r@   r  r=   r   r   )r   r  r  emptyr  r   r  r  r{   r   r  s              r   reads_relationzLRGeneratedTable.reads_relation  s    qMM!E(1%%  Ar** 	( 	(AzAEAI%%VAJN+JJjj!A'''
r   c                    i }i }i }|D ]}d||<   |D ]\  }}	g }
g }||         D ]r}|j         |	k    r|j        }|}||j        dz
  k     r|dz   }|j        |         }||f|v ra|dz   }||j        k     r:|j        |         | j        j        v rn7|j        |         |vrn'|dz   }||j        k     :|                    ||f           |                     ||         |          }| j        	                    t          |          d          }||j        dz
  k     ||         D ]x}|j         |j         k    r|j        |j        k    r$d}||j        k     r0|j        |         |j        |dz            k    rn'|dz   }||j        k     0|
                    ||f           yt|D ](}||vrg ||<   ||                             ||	f           )|
|||	f<   ||fS )Nr   r   r   )r2   r  r=   r   r  r%  r   r  r  r   r@   )r   r  r  r  lookdictincludedictdtransr   r   r  lookbincludesr   r  r{   lir  rA   rz   s                      r   compute_lookback_includesz*LRGeneratedTable.compute_lookback_includes  s[     	 	AF1II  /	( /	(GE!EHuX (. (.6Q;;
 :** (1X)Q 1
 !)12!#ae#$6":1G#G#G'(vbzX'='=u%'!V "$ae !)1 6 6 6qtA..Q)--beeB77Q) **. 1 	. 	.A!&((((Qqz>>VAY!&1+55u!e! qz>>  ,,!u---	.  2 2[((2+a.Q&&ay1111"'HeAY##r   c                 J      fd} fd}t          |||          }|S )Nc                 2                         |           S r	   )r  rf  r  r  r   s    r   <lambda>z4LRGeneratedTable.compute_read_sets.<locals>.<lambda>(	  s    t''!H55 r   c                 2                         |           S r	   )r  r  s    r   r  z4LRGeneratedTable.compute_read_sets.<locals>.<lambda>)	  s    t**1Qx88 r   r  )r   r  ntransr  r  r  r  s   `` `   r   compute_read_setsz"LRGeneratedTable.compute_read_sets'	  sC    555555888888F1R  r   c                 @    fd}fd}t          |||          }|S )Nc                     |          S r	   r.   )rf  readsetss    r   r  z6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>>	  s     r   c                 0                         | g           S r	   )r   )rf  inclsetss    r   r  z6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>?	  s    Qr** r   r  )r   r  r  r  r  r  r  s     ``   r   compute_follow_setsz$LRGeneratedTable.compute_follow_sets=	  s6    ####****VAb!!r   c                    |                                 D ]j\  }}|D ]b\  }}||j        vr
g |j        |<   |                    |g           }|D ]1}||j        |         vr |j        |                             |           2ckd S r	   )rO  r  r   r   )	r   	lookbacks	followsetr  lbr   r   r   r  s	            r   add_lookaheadszLRGeneratedTable.add_lookaheadsO	  s    !)) 	U 	UHE" U Ua--,.al5)]]5,, U UQ!,u"555q|E7J7Q7QRS7T7T7TU	U	U 	Ur   c                    |                                  }|                     |          }|                     |||          }|                     |||          \  }}|                     |||          }|                     ||           d S r	   )r  r  r  r  r  r  )r   r  r  r  r  lookdincluded
followsetss           r   add_lalr_lookaheadsz$LRGeneratedTable.add_lalr_lookaheads`	  s    5577 11!44 ))!E(;; 885JJx --eHXFF
 	E*-----r   c           
         | j         j        }| j         j        }| j        }| j        }| j        }i }|                    d| j                   |                                 }| j        dk    r| 	                    |           d}|D ]=}	g }
i }i }i }|                    d           |                    d|           |                    d           |	D ]+}|                    d|j
        t          |                     ,|                    d           |	D ]l}|j        |j        dz   k    r|j        dk    rd|d	<   ||d	<   -| j        dk    r|j        |         }n| j         j        |j                 }|D ]5}|
                    ||d
|j
        |fz  f           |                    |          }||dk    r|||         j
                 j        \  }}|                    |d          \  }}||k     s||k    ri|dk    rc|j
         ||<   |||<   |s5|s3|                    d|           | j                            ||df           ||j
                 xj        dz  c_        ||k    r|dk    rd ||<   |s3|                    d|           | j                            ||df           5|dk     r||          }||j
                 }|j        |j        k    rK|j
         ||<   |||<   ||}}||j
                 xj        dz  c_        ||j
                 xj        dz  c_        n||}}| j                            |||f           |                    d|||         j
        ||                    t1          d|z            |j
         ||<   |||<   ||j
                 xj        dz  c_        7|j        }|j        |dz            }|| j         j        v r|                     |	|          }| j                            t;          |          d          }|dk    ri|
                    ||d|z  f           |                    |          }|,|dk    r||k    rt1          d|z            V|dk     r|||         j
                 j        \  }}|                    |d          \  }}||k    s||k    rh|dk    rb|||         j
                 xj        dz  c_        |||<   |||<   |s3|                    d|           | j                            ||df           ||k    r|dk    rd ||<   |s5|s3|                    d|           | j                            ||df           Pt1          d|z            |||<   |||<   ni }|
D ]2\  }}}||v r(|||         u r|                    d||           d|||f<   3|                    d           d}|
D ]:\  }}}||v r0|||         ur&||f|vr |                    d||           d}d|||f<   ;|r|                    d           i } |	D ]}!|!j        D ]}"|"| j         j         v rd | |"<    | D ]b}#|                     |	|#          }| j                            t;          |          d          }|dk    r|||#<   |                    d|#|           c|||<   |||<   |||<   |dz  }?d S )NzParsing method: %sr   r   r   zstate %dz    (%d) %sr   rE  r   zreduce using rule %d (%s)r   r0  z3  ! shift/reduce conflict for %s resolved as reducereducer1  z2  ! shift/reduce conflict for %s resolved as shiftshiftz=  ! reduce/reduce conflict for %s resolved using rule %d (%s)zUnknown conflict in state %dr   zshift and go to state %dz Shift/shift conflict in state %dr   z    %-15s %sz  ! %-15s [ %s ]z"    %-30s shift and go to state %d)!r  r#  r)  r   r   r  r,   r}  r  r  r   ra   r=   r  r2   r  r(  r   r   r   r  r	  r   r  r  r   r%  r  r  r@   r$   r   r&  )$r   r#  r)  r   r   r  actionpr  str  actlist	st_action
st_actionpst_gotor   laheadsr  rA   sprecslevelrprecrleveloldpppchosenprejectprz   r  r{   	_actprintrA  not_usednkeysr  ri   rs   s$                                       r   r  zLRGeneratedTable.lr_parse_tablex	  sP   l.l-
%t~666
 NN>V##$$Q'''  Y	 Y	AGIJGHHRLLLHHZ$$$HHRLLL : :#a&&9999HHRLLL e6 e6u
Q..6T>>01If-12Jv..  $~77*+,r*:*.,*=af*E%, .G .G '!4OSTS[\]R^4^/_ ` ` `$-MM!$4$4#$='(1uu 8C:a=CW7X7]f7A~~a7T7Tf,2VOO&FBRBRY^bhYhYh<=H9IaL<=JqM39 -Z& -Z039nop0q0q0q040A0H0H"Qx0Y0Y0Y,7,A,I,IQ,N,I,I,I.4.>.>UjEXEX;?IaLL 4: -Y039mno0p0p0p040A0H0H"Qw0X0X0X)*Q 0;A2-8-B+/9rw+>+><=H9IaL<=JqM>@GG,7,A,I,IQ,N,I,I,7,D,L,LPQ,Q,L,L,L>B2GG(,(9(@(@"WWAU(V(V(V(+1prst~  @A  uB  uI  KU  VW  KX  )Y  )Y  )Y  )Y.78VY[8[.\.\(\45H9IaL45JqM$/$9$A$AQ$F$A$A$A].G` JF1Q3K 666 $a 2 2A $ 0 4 4RUU2 > >A Avv '!4NQR4R/S T T T$-MM!$4$4#$='(1uu+,662;<^ac<c2d2d,d ,2)*Q
 8C:a=CW7X7]f7A~~a7T7Tf,2VOO&FBRBRY^biYiYi,7
18L,M,U,UYZ,Z,U,U;<IaL<=JqM39 -Y039mno0p0p0p040A0H0H"Qw0X0X0X.4.>.>UjEXEX;?IaLL 4: -Z& -Z039nop0q0q0q040A0H0H"Qx0Y0Y0Y /88VY[8[.\.\(\34IaL45JqM I  - -!A	>>JqM))!444+,	1Q%(HHRLLLH  1 1!A	>>
1-- !!u	11II&81==='(H/0Iqe, 		" E ( ( ( (ADL555#'a(  G GMM!A&&$((Ar2266!"GAJHHA!AFFF"F2J$GBKDH!GBBsY	 Y	r   r   c                    |                     d          d         }t          j                            ||          dz   }	 t	          |d          }|                    d|dt          d| j        d|d		           d
}|rsi }| j        	                                D ]u\  }	}
|
	                                D ][\  }}|
                    |          }|s	g g f}|||<   |d                             |	           |d
                             |           \v|                    d           |	                                D ]\  }}|                    d|z             |d         D ]}|                    d|z             |                    d           |d
         D ]}|                    d|z             |                    d           |                    d           |                    d           nt|                    d           | j        	                                D ]0\  }}|                    d|d         d|d
         d|d           1|                    d           |rsi }| j        	                                D ]u\  }	}
|
	                                D ][\  }}|
                    |          }|s	g g f}|||<   |d                             |	           |d
                             |           \v|                    d           |	                                D ]\  }}|                    d|z             |d         D ]}|                    d|z             |                    d           |d
         D ]}|                    d|z             |                    d           |                    d           |                    d           nt|                    d           | j        	                                D ]0\  }}|                    d|d         d|d
         d|d           1|                    d           |                    d           | j        D ]x}|j        r=|                    d|j        |j        |j        |j        |j        |j        fz             F|                    dt          |          |j        |j        fz             y|                    d           |                                 d S # t*          $ rn t-          j                    d
         }t,          j                            d|z             t,          j                            t          |          dz              Y d S w xY w) Nr  r   z.pywz
# zD
# This file is automatically generated. Do not edit.
_tabversion = z

_lr_method = z

_lr_signature = z
    r   r   z
_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 = { (r   z):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]
zUnable to create %r
r   )splitospathr   r  r   r  r}  r   rO  r   r   r   r   r   ra   r2   r=   r   r   r  IOErrorr   exc_infor   )r   
modulename	outputdirr  basemodulenamer  r   smallerrO  ri   ndr2   rv   rz   rm  r   es                    r   write_tablezLRGeneratedTable.write_table/
  s   #))#..r27<<	.99EAm	Xc""AGGG 88^^^T^^^YYY@ A A A G  %  N0022 % %DAb!# % %vtA))D//a ) W'(tdkk!nnndkk!nnnn% 0111 ;;== # #CAaGGGaK(((qT + +	****GGENNNqT + +	****GGENNNN      +,,,>//11 ; ;CAaGGGQqTTT!A$$$qqq9:::: %  L..00 % %DAb!# % %vtA))D//a ) W'(tdkk!nnndkk!nnnn% ./// ;;== # #CAaGGGaK(((qT + +	****GGENNNqT + +	****GGENNNN      )***<--// ; ;CAaGGGQqTTT!A$$$qqq9:::: GG+,,,( W W6 WGG6!%qvVWV\]^]c9ddeeeeGG<Aqvqu?UUVVVVGGENNNGGIIIII 	 	 	q!AJ4x?@@@JSVVD[)))FF		s    ST A4V
	V
c           	         	 dd l }n# t          $ r dd l}Y nw xY wt          |d          }|                    t
          |t                     |                    | j        |t                     |                    ||t                     |                    | j        |t                     |                    | j	        |t                     g }| j
        D ]u}|j        r:|                    |j        |j        |j        |j        |j        |j        f           C|                    t          |          |j        |j        d d d f           v|                    ||t                     |                                 d S )Nr   wb)r  r  r  r  dumpr  pickle_protocolr}  r   r   r   r   r   ra   r2   r=   r   r   r  )r   r  r  r  outfoutpr   s          r   pickle_tablezLRGeneratedTable.pickle_table
  sf   	$$$$$ 	 	 	MMMMM	HT""N4888DN4888Id?333DN4888DLo666$ 	B 	BAv BQU1615!&GHHHHSVVAF15d4@AAAADo...

r  )r   N)r   r   r   )r)   r*   r+   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r.   r   r   r  r    s$       ! ! ! !J  2  D  r  6	 	 	(  0  V<$ <$ <$T  ,  $U U U". . .0n n nnp p p pr     r   r  c                 (   	 t           # t           $ r~ t          j                    \  }}}|j        }| dk    r|j        }| dz  } | dk    |j                                        }|j        |j        k    r|                    |j                   |cY S w xY wrt  )	r   r   r  tb_framef_back	f_globalscopyf_localsupdate)levelsr  br   r   ldicts         r   get_caller_module_dictr2  
  s     
 
 
!AJqjjAaKF qjj   "";!*$$LL$$$
s   	 BBBc           	         g }|                                  }d }|}|D ]}|dz  }|                                }|s	 |d         dk    r#|st          d||fz            |}	|dd          }
n<|d         }	|	}|dd          }
|d         }|dk    r|dk    rt          d||fz            |                    |||	|
f           # t          $ r  t          $ r( t          d	|||                                fz            w xY w|S )
Nr   r   |z%s:%d: Misplaced '|'   :z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)
splitlinesr  r   r   	Exceptionstrip)docr   r   r  pstringslastpdlinepsr   r;  r<  assigns               r   parse_grammarr@  
  sa   G~~HEE Z Z
HHJJ(	Zts{{ M%&<U|&KLLL uQ4 1221S==Vu__%&ITRWL&XYYYNNDx56666 	 	 	 	Z 	Z 	Z>$uRXXZZAXXYYY	Z Ns   BC<C=c                   j    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd ZdS )ParserReflectNc                     || _         d | _        d | _        d | _        i | _        g | _        d| _        | t          t          j	                  | _
        d S || _
        d S r\  )r  rF  
error_functokensmodulesr  r(   r   r   r   r  )r   r  r  s      r   r   zParserReflect.__init__	  sX    


; ,,DHHHDHHHr   c                     |                                   |                                  |                                  |                                  |                                  d S r	   )	get_startget_error_func
get_tokensget_precedenceget_pfunctionsr]   s    r   get_allzParserReflect.get_all  s^    r   c                     |                                   |                                  |                                  |                                  |                                  |                                  | j        S r	   )validate_startvalidate_error_funcvalidate_tokensvalidate_precedencevalidate_pfunctionsvalidate_modulesr(   r]   s    r   validate_allzParserReflect.validate_all   sv      """  """  """zr   c                    	 ddl m} n# t          $ r	 ddlm} Y nw xY w	  |            }| j        r-|                    | j                            d                     | j        rJ|                    d                    d | j        D                                           d                     | j        r@|                    d                    | j                                      d                     | j	        D ]8}|d         r.|                    |d                             d                     9n# t          t          f$ r Y nw xY w|                                S )Nr   )md5zlatin-1r   c                 8    g | ]}d                      |          S r'  )r   )ro   r   s     r   rp   z+ParserReflect.signature.<locals>.<listcomp>4  s"    #B#B#B1BGGAJJ#B#B#Br   r   r   )hashlibrW  r  rF  r.  encoder   r   rE  pfuncs	TypeError
ValueErrordigest)r   rW  sigr   s       r   r  zParserReflect.signature*  s   	 ####### 	  	  	 	 	#%%Cz 9

4:,,Y77888y W

277#B#B	#B#B#BCCJJ9UUVVV{ D

388DK0077	BBCCC[ 7 7Q4 7JJqt{{9556667 *% 	 	 	D	zz||s   	 DD7 7E
Ec           	         t          j        d          }| j                                        D ]}t	          j        |          \  }}i }t          |          D ]\  }}|dz  }|                    |          }|rd|                    d          }|	                    |          }	|	s|||<   St	          j
        |          }
| j                            d|
|||	           d S )Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(r   z;%s:%d: Function %s redefined. Previously defined on line %d)recompilerF  keysinspectgetsourcelinesr9  r8  groupr   getsourcefiler  r&   )r   frer  lineslinen	counthashlrA  r2   prevr  s              r   rT  zParserReflect.validate_modulesI  s   j899l'')) 	B 	BF"1&99LE5I$U++ 
B 
Ba
IIaLL B771::D$==..D B*/	$#*#8#@#@(()fhpqvw{  }A  B  B  B
B		B 	Br   c                 D    | j                             d          | _        d S )NrF  )r  r   rF  r]   s    r   rH  zParserReflect.get_start^  s    Z^^G,,


r   c                     | j         6t          | j         t                    s| j                            d           d S d S d S )Nz'start' must be a string)rF  rq   string_typesr  r(   r]   s    r   rO  zParserReflect.validate_startb  sK    :!dj,77 ;9::::: "!; ;r   c                 D    | j                             d          | _        d S )Np_error)r  r   rD  r]   s    r   rI  zParserReflect.get_error_funch  s    *..33r   c                     | j         rt          | j         t          j                  rd}nEt          | j         t          j                  rd}n#| j                            d           d| _        d S t          | j                   j        }t          | j                   j	        }t          j        | j                   }d| j        |<   t          | j                   j        |z
  }|dk    r'| j                            d||           d| _        d S d S d S )Nr   r   z2'p_error' defined, but is not a function or methodz$%s:%d: p_error() requires 1 argument)rD  rq   r  FunctionType
MethodTyper  r(   r
   co_firstlinenoco_filenamerd  	getmodulerF  co_argcount)r   ismethodelineefiler  argcounts         r   rP  z!ParserReflect.validate_error_funcl  s    ? 	$/%*<== DOU-=>> STTT
do..=Edo..:E&t77F#$DL  11=HH1}}EeERRR


%	 	  }r   c                 Z   | j                             d          }|s#| j                            d           d| _        d S t	          |t
          t          f          s#| j                            d           d| _        d S |s#| j                            d           d| _        d S || _        d S )NrE  zNo token list is definedr   ztokens must be a list or tupleztokens is empty)r  r   r  r(   rq   r  r   rE  )r   rE  s     r   rJ  zParserReflect.get_tokens  s    )) 	HNN5666DJF&$// 	HNN;<<<DJF 	HNN,---DJFr   c                     d| j         v r#| j                            d           d| _        d S i }| j         D ]&}||v r| j                            d|           d||<   'd S )Nr(   z.Illegal token name 'error'. Is a reserved wordr   zToken %r multiply defined)rE  r  r(   r&   )r   r  rs   s      r   rQ  zParserReflect.validate_tokens  s}    dk!!HNNKLLLDJF	 	 	AI~~  !<a@@@IaLL	 	r   c                 D    | j                             d          | _        d S )Nr   )r  r   r   r]   s    r   rK  zParserReflect.get_precedence  s    JNN<00			r   c                    g }| j         r{t          | j         t          t          f          s#| j                            d           d| _        d S t          | j                   D ]!\  }}t          |t          t          f          s$| j                            d           d| _         d S t          |          dk     r%| j                            d|           d| _         d S |d         }t          |t                    s$| j                            d           d| _         d S |dd          D ]W}t          |t                    s%| j                            d           d| _          d S |	                    |||dz   f           X#|| _
        d S )	Nz"precedence must be a list or tupler   zBad precedence tabler5  z?Malformed precedence entry %s. Must be (assoc, term, ..., term)r   z)precedence associativity must be a stringz precedence items must be strings)r   rq   r  r   r  r(   r9  r=   rp  r   preclist)r   r  r3  r   r2  r,  s         r   rR  z!ParserReflect.validate_precedence  s   9 	<die55 CDDD
$TY// < <a!!T%L11 HNN#9:::!"DJFFq66A::HNN#defggg!"DJFF!!%66 HNN#NOOO!"DJFFabbE < <D%dL99 'IJJJ%&
OOT5%'$:;;;;< !r   c                    g }| j                                         D ]\  }}|                    d          s|dk    r"t          |t          j        t          j        f          rFt          |          j        }t          j
        |          }|                    ||||j        f           |                                 || _        d S )Np_rr  )r  rO  
startswithrq   r  rt  ru  r
   rv  rd  rx  r   __doc__sortr[  )r   p_functionsr2   itemr   r  s         r   rL  zParserReflect.get_pfunctions  s    ***,, 	D 	DJD$??4((2(y  ($ 253CDEE D 5 *400""DT\#BCCC 	!r   c                    g }t          | j                  dk    r#| j                            d           d| _        d S | j        D ]\  }}}}t	          j        |          }| j        |         }t          |t          j	                  rd}nd}t          |          j        |k    r*| j                            d|||j                   d| _        t          |          j        |k     r*| j                            d|||j                   d| _        |j        s#| j                            d|||j                   	 t          |||          }	|	D ]}
|                    ||
f           nW# t"          $ rJ t%          j                    d         }| j                            t)          |                     d| _        Y nw xY wd| j        |<   | j                                        D ]m\  }}|                    d          r't          |t          j        t          j	        f          rB|                    d	          rX|                    d          r!|d
k    r| j                            d|           t          |t          j                  rt          |          j        dk    s2t          |t          j	                  rt          |          j        dk    r{	 |j                            d          }|d         dk    rA| j                            dt          |          j        t          |          j        |           \# t8          $ r Y iw xY wo|| _        d S )Nr   z+no rules of the form p_rulename are definedr   r5  z%%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  t_rr  z%r not defined as a functionr   r6  z9%s:%d: Possible grammar rule %r defined without p_ prefix)r=   r[  r  r(   rd  rg  r  rq   r  ru  r
   ry  r)   r  r&   r@  r   r   r   r  ra   rF  rO  r  rt  r  rw  rv  r8  r  )r   r  r   r  r2   r:  r   r   reqargsparsed_gr  r  rs   rv   s                 r   rS  z!ParserReflect.validate_pfunctions  s\   t{q  HNNHIIIDJF'+{ 	) 	)#D&$(00D:d#D$ 011 *W44FtDQUQ^___

4,w66DT$t}]]]

\ )  !deijnoso|}}}}#,Sd;;H% 2 2ay11112" # # #q)AHNN3q66***!"DJJJ# ()V$$
 :##%% 	 	CAa||D!!ejU5GIY4Z&[&[e]e||D!!+8||D!! Da9nn  !?CCCAe011 ill6NRS6S6SAe.// 7T4=aLL4LPQ4Q4Q)//#..C1v}}(()d)21)A9Q<<C^_`b b b    D s&   <-E**AF>=F>A'M
MMr	   )r)   r*   r+   r   rM  rU  r  rT  rH  rO  rI  rP  rJ  rQ  rK  rR  rL  rS  r.   r   r   rB  rB    s                 >B B B*- - -; ; ;4 4 4  ,  (  1 1 1! ! !>" " " 7 7 7 7 7r   rB  r   c           
         |rd}|t          t          j                  }r+fdt                    D             }t	          |          }nt          d          }t          ||          }|                                 |j        rt          d          |
                                }	 t                      }|r|                    |          }n|                    |          }|s||k    r	 |                    |j                   t!          ||j                  }|j        a|S # t&          $ r? t          j                    d         }|                    dt-          |                     Y nw xY wnP# t.          $ r8 t          j                    }|                    t1          |                     Y nt&          $ r Y nw xY w|
.|rt          t3          |d                    }
nt5                      }
|
                    d	t8                     d}|                                rt          d          |j        s|                    d
           t=          |j                  }|j         D ]j\  }}}	 |!                    |||           # tD          $ r? t          j                    d         }|                    dt1          |                     Y gw xY w|j#        D ]t\  }}|\  }}}}	 |$                    |||||           '# tD          $ rA t          j                    d         }|                    dt1          |                     d}Y qw xY w	 ||%                    |j&                   n|%                    |           nM# tD          $ r@ t          j                    d         }|                    t1          |                     d}Y nw xY w|rt          d          |'                                } | D ])\  }!}"|                    d|"j(        |"j)        |!           d}*|*                                }#|#rp|
                    d           |
                    d           |
                    d           |#D ].}|                    d|           |
                    d|           /|rp|
                    d           |
                    d           |
                    d           tW          |j,                  D ]\  }$}%|
                    d|$|%           |-                                }&|&D ])}"|                    d|"j(        |"j)        |"j.                   *t_          |#          dk    r|                    d           t_          |#          dk    r#|                    dt_          |#                     t_          |&          dk    r|                    d           t_          |&          dk    r#|                    dt_          |&                     |rk|
                    d           |
                    d           |
                    d           ta          |j1                  }'|'2                                 |'D ]A}|
                    d|d3                    d |j1        |         D                                  B|
                    d           |
                    d           |
                    d           ta          |j4                  }(|(2                                 |(D ]A})|
                    d|)d3                    d |j4        |)         D                                  B|
                    d           |r`|5                                }*|*D ]}+|                    d|+           |6                                },|,D ]}-|                    d|-           d}|7                                }.|.D ]\  }}|                    d ||           d}|rt          d          |r|8                    d!|            ts          || |
          }|rt_          |j:                  }/|/dk    r|                    d"           n|/dk    r|                    d#|/           t_          |j;                  }0|0dk    r|                    d$           n|0dk    r|                    d%|0           |r|j:        s|j;        rq|
                    d           |
                    d&           |
                    d           |j:        D ]\  }1}2}3|
                    d'|2|1|3           i }4|j;        D ]\  }1}5}6|1ty          |5          ty          |6          f|4v r(|
                    d(|1|5           |
                    d)|6|1           |                    d(|1|5           |                    d)|6|1           d|4|1ty          |5          ty          |6          f<   g }7|j;        D ]R\  }1}5}6|6j=        sE|6|7vrA|
                    d*|6           |                    d*|6           |7>                    |6           S|r|?                    ||	|           |r|@                    ||           |                    |j                   t!          ||j                  }|j        a|S )+Nr   c                 4    g | ]}|t          |          fS r.   )r   )ro   rm  r  s     r   rp   zyacc.<locals>.<listcomp>&  s(    ===A1WVA&&'===r   r5  )r  zUnable to build parserr   z.There was a problem loading the table file: %sr  z5Created by PLY version %s (http://www.dabeaz.com/ply)z no p_error() function is definedz%sz;%s:%d: Symbol %r used, but not defined as a token or a ruler   zUnused terminals:zToken %r defined, but not usedz    %sr   zRule %-5d %sz$%s:%d: Rule %r defined, but not usedzThere is 1 unused tokenzThere are %d unused tokenszThere is 1 unused rulezThere are %d unused rulesz'Terminals, with rules where they appearz
%-20s : %sr   c                 ,    g | ]}t          |          S r.   r`   rn   s     r   rp   zyacc.<locals>.<listcomp>  s    7`7`7`1A7`7`7`r   z*Nonterminals, with rules where they appearc                 ,    g | ]}t          |          S r.   r`   rn   s     r   rp   zyacc.<locals>.<listcomp>  s    :i:i:ia3q66:i:i:ir   zSymbol %r is unreachablez)Infinite recursion detected for symbol %rz0Precedence rule %r defined for unknown symbol %rzGenerating %s tablesz1 shift/reduce conflictz%d shift/reduce conflictsz1 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)zrejected rule (%s) in state %dzRule (%s) is never reduced)Ar   r   r   dirdictr2  rB  rM  r(   r8   r  r{  r  r  r  r  r   rD  r   r8  r  r&   r<   ry  ra   r  r0   r,   __version__rU  r   rE  r  r4  r  r  rC  rG  rF  rW  r   r   rZ  r9  r#  r^  r2   r=   r  r%  r  r   r&  rM  rU  rb  r$   r  r  r  r@   r	  r   r  r&  )8r  r$   r  	tabmodulerF  check_recursionoptimizewrite_tables	debugfiler  debuglogerrorlog
picklefile_itemsr  pinfor  lrread_signaturerW   r  errorsr  r,  r2  r3  funcnamegramr   r   r;  r<  rW  r   r   rZ  rs   r   r^  r  nontermsnontermunreachableurT  infunused_precnum_srnum_rrr   r   
resolutionalready_reportedrulerejectedwarned_nevers8     `                                                     r   yaccr    s     SZ((  *====V===V&q)) %H---E	MMOOO{ 20111 !!IYY 	6^^J77NN]]955N 	\)33\!!%+...!"U%566 \ \ \LNN1%  !QSWXYSZSZ[[[[[\  ! ! !LNNQ          	$ i!4!455HH!||HMMI;WWW F  20111 =;<<< el##G $n * *eU	*""4e4444 	* 	* 	*q!AT#a&&)))))	*
  -  $%)"dHd	""8D$tDDDD 	 	 	q!ANN4A'''FFF	=ek****e$$$   LNN1s1vv
  20111  1133&  	TTUYU^_c_hilmmm//11 *b)***b$ 	* 	*D=tDDDMM(D))))  0bi   bW011 	0 	0CAaMM.!Q//// ''))L b b?DIW[W`aaaa
!!2333
q  5s;K7L7LMMM
<A1222
<14c,6G6GHHH b?@@@bW&''

 	c 	cDMM,chh7`7`HYZ^H_7`7`7`.a.abbbbbBCCCb,-- 	l 	lGMM,:i:i7K_`gKh:i:i:i1j1jkkkkb ..00 	; 	;A7::::**,, 	 	CNNFLLLFF++--K"  eI5RVWWW 20111  7-v666	'&	2	2B CR_%% Q;;67777aZZ8&AAAR_%%Q;;78888aZZ96BBB  ."/ .R_ .&&&&(o 	q 	q"E3
VY\^ceopppp%'_ 	> 	>!E4bhhr(||,0@@@Z\acghhh=xNNNZ\acghhh=xOOO<=U2d88BxLL899%'_ 	. 	.!E4# .)E)E  !=xHHH  !=xHHH##H---  6
y9555  .

9--- ek"""b)**FLEMsq   -AE6 17D) )AE2/E6 1E22E6 6?G7	GG4JAKK,LAMM2N AOO)?r  r  	yaccdebug
debug_file
tab_module
default_lrr   r   r>   r#  ra  r  r   os.pathr  rd  r   r
   
basestringrp  ra   maxintr  AttributeErrormaxsizer   objectr   r0   r8  r8   rD   rG   rL   rS   rP   rK   rI   rM   rQ   rT   rX   rZ   rd   r   rb  r7  r   r  r   r  r  r   ry  r{  r  r  r  r  r2  r@  rB  r  r.   r   r   <module>r     s  |  	 


	  ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' A      ALLLZFF   [FFF                  # " " " "	 " " "  8 8 8 
		       
! ! !2+ + + + + + + +. . . . . . . .nvC vC vC vC vC vC vC vC~ 
			 /004C- C- C- C- C- C- C- C-R- - - - -V - - -X' ' ' ' 'V ' ' '6    $ # # # #9 # # #h" h" h" h" h"f h" h" h"d $ # # # #9 # # #: : : : :f : : :h  ! ! !, !        	      j j j j jw j j jv  (  PF F F F FF F F F\ i
RVQQ*WY4Dp p p p p ps   A   A/.A/