
    #	hk                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrSrSr	Sr
SrSrSrSrSrS	rS r\R$                  S    S:  a  \rO\r\R,                  r " S
 S\5      r " S S\5      r " S S\5      rS rS rSqSq Sq!Sr"S r#S r$S r%S r& " S S5      r' " S S5      r( " S S5      r)\ RT                  " S5      r+ " S S\5      r, " S  S!\5      r- " S" S#\5      r.S$ r/ " S% S&\5      r0 " S' S(\5      r1 " S) S*\5      r2 " S+ S,\5      r3S- r4S. r5 " S/ S0\5      r6 " S1 S2\35      r7S3 r8S4 r9 " S5 S6\5      r:S\
S\SSSS\SSSS4S7 jr;g)8    Nz3.10Tz
parser.outparsetabLALR   F(   c                   4    \ rS rSrS rS r\rS rS r\r	Sr
g)	PlyLoggerm   c                     Xl         g Nf)selfr   s     D/var/www/html/env/lib/python3.13/site-packages/pycparser/ply/yacc.py__init__PlyLogger.__init__n   s        c                 D    U R                   R                  X-  S-   5        g )N
r   writer   msgargskwargss       r   debugPlyLogger.debugq   s    cjD()r   c                 J    U R                   R                  SX-  -   S-   5        g )Nz	WARNING: r   r   r   s       r   warningPlyLogger.warningv   s    [CJ/$67r   c                 J    U R                   R                  SX-  -   S-   5        g )NzERROR: r   r   r   s       r   errorPlyLogger.errory   s    Y#*-45r   r   N)__name__
__module____qualname____firstlineno__r   r   infor   r!   critical__static_attributes__ r   r   r   r   m   s$    * D86 Hr   r   c                        \ rS rSrS rS rSrg)
NullLogger   c                     U $ r   r*   )r   names     r   __getattribute__NullLogger.__getattribute__       r   c                     U $ r   r*   )r   r   r   s      r   __call__NullLogger.__call__   r2   r   r*   N)r#   r$   r%   r&   r0   r4   r)   r*   r   r   r,   r,      s    r   r,   c                       \ rS rSrSrg)	YaccError   r*   Nr#   r$   r%   r&   r)   r*   r   r   r7   r7          r   r7   c                     [        U 5      nSU;   a  [        U5      n[        U5      [        :  a  US [         S-   nS[        U 5      R                  [        U 5      U4-  nU$ )Nr   z ...z<%s @ 0x%x> (%s))reprlenresultlimittyper#   id)rrepr_strresults      r   format_resultrD      s]    AwHx>
8}{"L[)F247#3#3RUH"EEFMr   c                     [        U 5      nSU;   a  [        U5      n[        U5      S:  a  U$ S[        U 5      R                  [	        U 5      4-  $ )Nr      z<%s @ 0x%x>)r<   r=   r?   r#   r@   )rA   rB   s     r   format_stack_entryrG      sK    AwHx>
8}rQ 0 0"Q%888r   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                  J    [         R                  " [        5        [        5       $ r   )warningswarn_warnmsg_errokr*   r   r   errokrM          MM(8Or   c                  J    [         R                  " [        5        [        5       $ r   )rI   rJ   rK   _restartr*   r   r   restartrQ      s    MM(:r   c                  J    [         R                  " [        5        [        5       $ r   )rI   rJ   rK   _tokenr*   r   r   tokenrT      rN   r   c                     UR                   qUR                  qUR                  qU " U5      n BBBU$ ! [         a     U$ f = fr   )rM   rL   rT   rS   rQ   rP   	NameError)	errorfuncrT   parserrA   s       r   call_errorfuncrY      sS    \\F\\F~~H%AFH H  Hs   3 
A Ac                        \ rS rSrS rS rSrg)
YaccSymbol   c                     U R                   $ r   )r?   r   s    r   __str__YaccSymbol.__str__   s    yyr   c                     [        U 5      $ r   strr^   s    r   __repr__YaccSymbol.__repr__   s    4yr   r*   N)r#   r$   r%   r&   r_   rd   r)   r*   r   r   r[   r[      s    r   r[   c                   Z    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rSrg)YaccProduction   Nc                 8    Xl         X l        S U l        S U l        g r   )slicestacklexerrX   )r   srk   s      r   r   YaccProduction.__init__   s    


r   c                     [        U[        5      (       a)  U R                  U    Vs/ s H  o"R                  PM     sn$ US:  a  U R                  U   R                  $ U R                  U   R                  $ s  snf Nr   )
isinstancerj   valuerk   )r   nrm   s      r   __getitem__YaccProduction.__getitem__   sb    a%)ZZ]3]GG]33!V::a=&&&::a=&&&	 4s   A7c                 *    X R                   U   l        g r   rj   rr   )r   rs   vs      r   __setitem__YaccProduction.__setitem__   s    

1r   c                 \    U R                   X  Vs/ s H  o3R                  PM     sn$ s  snf r   rw   )r   ijrm   s       r   __getslice__YaccProduction.__getslice__   s$    !%A1A111s   )c                 ,    [        U R                  5      $ r   )r=   rj   r^   s    r   __len__YaccProduction.__len__   s    4::r   c                 6    [        U R                  U   SS5      $ )Nlinenor   getattrrj   r   rs   s     r   r   YaccProduction.lineno      tzz!}h22r   c                 *    X R                   U   l        g r   )rj   r   )r   rs   r   s      r   
set_linenoYaccProduction.set_lineno  s    %

1r   c                 p    [        U R                  U   SS5      n[        U R                  U   SU5      nX#4$ )Nr   r   	endlinenor   )r   rs   	startlineendlines       r   linespanYaccProduction.linespan  s7    DJJqM8Q7	$**Q-i@!!r   c                 6    [        U R                  U   SS5      $ )Nlexposr   r   r   s     r   r   YaccProduction.lexpos  r   r   c                 p    [        U R                  U   SS5      n[        U R                  U   SU5      nX#4$ )Nr   r   	endlexposr   )r   rs   startposendposs       r   lexspanYaccProduction.lexspan  s7    4::a=(A6AX>r   c                     [         er   )SyntaxErrorr^   s    r   r!   YaccProduction.error  s    r   )rl   rX   rj   rk   r   )r#   r$   r%   r&   r   rt   ry   r~   r   r   r   r   r   r   r!   r)   r*   r   r   rg   rg      s9    ' 23&"
3 
r   rg   c                   Z    \ rS rSrS rS rS rS rS rSS jr	SS	 jr
SS
 jrSS jrSrg)LRParseri  c                     UR                   U l        UR                  U l        UR                  U l        X l        U R                  5         SU l        g NT)	lr_productionsproductions	lr_actionactionlr_gotogotorW   set_defaulted_stateserrorok)r   lrtaberrorfs      r   r   LRParser.__init__  s>     //ooMM	!!#r   c                     SU l         g r   )r   r^   s    r   rM   LRParser.errok&  s	    r   c                     U R                   S S 2	 U R                  S S 2	 [        5       nSUl        U R                  R	                  U5        U R                   R	                  S5        g )N$endr   )
statestacksymstackr[   r?   append)r   syms     r   rQ   LRParser.restart)  sL    OOAMM!lS!q!r   c                     0 U l         U R                  R                  5        HL  u  p[        UR	                  5       5      n[        U5      S:X  d  M/  US   S:  d  M:  US   U R                   U'   MN     g N   r   )defaulted_statesr   itemslistvaluesr=   )r   stateactionsruless       r   r   LRParser.set_defaulted_states9  s]     ""kk//1NE)*E5zQ58a</4Qx%%e, 2r   c                     0 U l         g r   )r   r^   s    r   disable_defaulted_states!LRParser.disable_defaulted_states@  s
     "r   Nc                    U(       d  [         (       aA  [        U[        5      (       a  [        [        R
                  5      nU R                  XX4U5      $ U(       a  U R                  XX4U5      $ U R                  XX4U5      $ r   )		yaccdevelrq   intr   sysstderr
parsedebugparseoptparseopt_notrack)r   inputrl   r   tracking	tokenfuncs         r   parseLRParser.parseC  sb    II%%%!#**-??5)LL==u	JJ((u	RRr   c                    S n/ nU R                   nU R                  n	U R                  n
U R                  n[	        S 5      nSnUR                  S5        U(       d  SSKJn  UR                  nX,l        Xl	        Ub  UR                  U5        Uc  UR                  nOUnXl        / nUU l        / nUU l        UUl        S nUR                  S5        [!        5       nSUl        UR                  U5        Sn UR%                  S5        UR%                  SU5        UU;  a_  U(       d7  U(       d  U" 5       nOUR'                  5       nU(       d  [!        5       nSUl        UR"                  nUU   R)                  U5      nOUU   nUR%                  SUU* 5        UR%                  S	S
R+                  U Vs/ s H  nUR"                  PM     snSS  5      < S[-        U5      < 3R/                  5       5        UGb  US:  aG  UR                  U5        UnUR%                  SU5        UR                  U5        S nU(       a  US-  nGMP  US:  Ga`  U
U*    nUR0                  nUR2                  n[!        5       nUUl        S Ul        U(       ah  UR                  SUR,                  SSR+                  UU* S   Vs/ s H  n[7        UR4                  5      PM     sn5      -   S-   U	USU-
        U   5        O'UR                  SUR,                  / U	US      U   5        U(       a  UU* S-
  S  nUUS'   U(       ad  US   nUR8                  Ul        UR:                  Ul        US   n[=        USUR8                  5      Ul        [=        USUR:                  5      Ul         UUl!         UU* S 2	 UU l"        URG                  U5        UU* S 2	 UR                  S[I        US   5      5        UR                  U5        U	US      U   nUR                  U5        GM  U(       a"  UR8                  Ul        UR:                  Ul        U/nUUl!         UU l"        URG                  U5        UR                  S[I        US   5      5        UR                  U5        U	US      U   nUR                  U5        GM  US:X  a@  US   n[=        USS 5      nUR                  S[I        U5      5        UR                  S5        U$ UGc#  URS                  SS
R+                  U Vs/ s H  nUR"                  PM     snSS  5      < S[-        U5      < 3R/                  5       5        US:X  d  U RP                  (       Ga2  [N        nSU l(        UnUR"                  S:X  a  S nU RT                  (       aV  U(       a  [W        US5      (       d  UUl        UU l"        [Y        U RT                  UU 5      n U RP                  (       a  U nS nGM  OU(       a  [W        US5      (       a  UR8                  n!OSn!U!(       a/  [Z        R\                  R_                  SU!UR"                  4-  5        OS[Z        R\                  R_                  SUR"                  -  5        O&[Z        R\                  R_                  S5        g [N        n[3        U5      S::  a  UR"                  S:w  a  S nS nSnUS S 2	 GM  UR"                  S:X  a  g UR"                  S:w  a  US   nUR"                  S:X  aD  U(       a8  [=        USUR8                  5      Ul        [=        US UR:                  5      Ul         S nGMU  [!        5       nSUl        [W        US5      (       a  UR8                  =Ul        Ul        [W        US 5      (       a  UR:                  =Ul        Ul         UUl        UR                  U5        UnONUR'                  5       nU(       a"  UR8                  Ul        UR:                  Ul        UR'                  5         US   nGM$  [a        S!5      es  snf s  snf ! [J         a[    UR                  U5        URM                  USS 5        UR'                  5         US   nSUl        SUl        Un[N        nSU l(         GNf = f! [J         aG    UR                  U5        UR'                  5         US   nSUl        SUl        Un[N        nSU l(         GN=f = fs  snf )"Nr   zPLY: PARSE DEBUG STARTr   lexr    zState  : %sz#Defaulted state %s: Reduce using %dzStack  : %s z . z Action : Shift and goto state %sz3Action : Reduce rule [%s] with %s and goto state %d[,]r   r   zResult : %sr!   Frr   zDone   : Returning %szPLY: PARSE DEBUG ENDzError  : %srl   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!!!
)1r   r   r   r   rg   r'   r   r   rl   rX   r   rT   r   r   rk   r   r[   r?   r   popgetjoinrc   lstripr/   r=   rr   rG   r   r   r   r   r   rj   r   callablerD   r   extenderror_countr   r!   rW   hasattrrY   r   r   r   RuntimeError)"r   r   rl   r   r   r   	lookaheadlookaheadstackr   r   prodr   pslice
errorcountr   	get_tokenr   r   errtokenr   r   ltypetxxppnameplen_vtargt1rs   rC   tokr   s"                                     r   r   LRParser.parsedebug\  sE   	++))""00 &
 	

+, IIE  KKI!I 
 
$  	!l KKOKKu- ,, )$-K	$2$6$6$8	$$.L	)/	 "EN&&u-$U+A51"M KK&)hh(/K(B(/KAB/O&PRUV_R`aiikm }q5%%a(E KK BAF OOI. $I ""a
q5aRAFFEEED %,C$CH $CI 

#XZ[Z_Z_#&sxxX`bfafagXh0iXhRT1CBHH1MXh0i'j#jkn#n#'
2d7(;#<U#CE 

#XZ[Z_Z_ac#'
2#7#>@
 'a1"%Q $!%aB)+CJ)+CJ!%bB,3BRYY,OCM,3BRYY,OCM (,1 ($ 0).DJJJv. *D56 2!JJ}mF1I6NO$OOC0$(B$8$?E&--e4 ! $).CJ).CJ !$u (,1).DJJJv.!JJ}mF1I6NO$OOC0$(B$8$?E&--e4 ! 6 A$Q6FJJ6f8MNJJ56!My M*-((h3OhBGGh3OPQPR3S*TVYZcVdemmoq ?dlll!,J#(DL(H}}.#'~~#GHg,F,F-2HN%*
,T^^XtL<< ),I'+H$ ( $&x::)2)9)9)*% #

 0 01\`fhphuhu_v1v w #

 0 01ORZR_R_1_ `JJ,,-PQ" "-J z?a'INNf,D $I#HE&q) >>V+>>W,"2,Cxx7* $,3Ix,TCM,3Ix,TCM$(	  #A$AFy(331:1A1AA1;y(331:1A1AA1;'AG")))4 !I",,.C+.::	(+.::	(NN$&rNE ABBu 0LF 1jR  + 
1*11)<$OOD2J7&NN,$.rNE'.CH(/CI(+I)4J+0DL
1T  + 	1*11)<&NN,$.rNE'.CH(/CI(+I)4J+0DL	16 4Ps:   1`#3`(A/`- A#b c)-A!bbAc&%c&c                    S n/ nU R                   nU R                  n	U R                  n
U R                  n[	        S 5      nSnU(       d  SSKJn  UR                  nX,l        Xl        Ub  UR                  U5        Uc  UR                  nOUnXl
        / nUU l        / nUU l        UUl        S nUR                  S5        [        5       nSUl        UR                  U5        Sn UU;  a_  U(       d7  U(       d  U" 5       nOUR#                  5       nU(       d  [        5       nSUl        UR                   nUU   R%                  U5      nOUU   nUGb  US:  a4  UR                  U5        UnUR                  U5        S nU(       a  US-  nM  US:  Ga  U
U*    nUR&                  nUR(                  n[        5       nUUl        S Ul        U(       a  UU* S-
  S  nUUS'   U(       ad  US   nUR,                  Ul        UR.                  Ul        US   n[1        USUR,                  5      Ul        [1        USUR.                  5      Ul        UUl         UU* S 2	 UU l        UR;                  U5        UU* S 2	 UR                  U5        U	US      U   nUR                  U5        GM  U(       a"  UR,                  Ul        UR.                  Ul        U/nUUl         UU l        UR;                  U5        UR                  U5        U	US      U   nUR                  U5        GM>  US:X  a  US   n[1        US
S 5      nU$ UGc  US:X  d  U RB                  (       Ga2  [@        nS	U l!        UnUR                   S:X  a  S nU RD                  (       aV  U(       a  [G        US5      (       d  UUl        UU l        [I        U RD                  UU 5      nU RB                  (       a  UnS nGM  OU(       a  [G        US5      (       a  UR,                  nOSnU(       a/  [J        RL                  RO                  SUUR                   4-  5        OS[J        RL                  RO                  SUR                   -  5        O&[J        RL                  RO                  S5        g [@        n[)        U5      S::  a  UR                   S:w  a  S nS nSnUS S 2	 GM  UR                   S:X  a  g UR                   S:w  a  US   nUR                   S:X  aD  U(       a8  [1        USUR,                  5      Ul        [1        USUR.                  5      Ul        S nGMS  [        5       nSUl        [G        US5      (       a  UR,                  =Ul        Ul        [G        US5      (       a  UR.                  =Ul        Ul        UUl        UR                  U5        UnONUR#                  5       nU(       a"  UR,                  Ul        UR.                  Ul        UR#                  5         US   nGM"  [Q        S5      e! [<         a[    UR                  U5        UR?                  USS 5        UR#                  5         US   nSUl        SUl        Un[@        nS	U l!         GNf = f! [<         aG    UR                  U5        UR#                  5         US   nSUl        SUl        Un[@        nS	U l!         GNf = f)Nr   r   r   r   r   r   r   r!   Frr   rl   r   r   r   r   r   r   ))r   r   r   r   rg   r   r   rl   rX   r   rT   r   r   rk   r   r[   r?   r   r   r/   r=   rr   r   r   r   r   r   rj   r   r   r   r   r   r   rW   r   rY   r   r   r   r   ) r   r   rl   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   rs   rC   r   r   s                                    r   r   LRParser.parseopt  sX   	++))""00 &
 IIE  KKI!I 
 
$  	!l ,, )$-K	$2$6$6$8	$$.L	)/	 "EN&&u-$U+ }q5%%a(E OOI. $I ""a
q5aRAFFEEED %,C$CH $CI 'a1"%Q $!%aB)+CJ)+CJ!%bB,3BRYY,OCM,3BRYY,OCM (,1 ($ 0).DJJJv. *D56 2$OOC0$(B$8$?E&--e4 ! $).CJ).CJ !$u (,1).DJJJv.$OOC0$(B$8$?E&--e4 ! 6 A$Q6F!My ?dlll!,J#(DL(H}}.#'~~#GHg,F,F-2HN%*
,T^^XtL<< ),I'+H$ ( $&x::)2)9)9)*% #

 0 01\`fhphuhu_v1v w #

 0 01ORZR_R_1_ `JJ,,-PQ" "-J z?a'INNf,D $I#HE&q) >>V+>>W,"2,Cxx7* $,3Ix,TCM,3Ix,TCM$(	  #A$AFy(331:1A1AA1;y(331:1A1AA1;'AG")))4 !I",,.C+.::	(+.::	(NN$&rNE ABBG  + 
1*11)<$OOD2J7&NN,$.rNE'.CH(/CI(+I)4J+0DL
1N  + 	1*11)<&NN,$.rNE'.CH(/CI(+I)4J+0DL	1s(   AX AY8 A!Y54Y58A[	[	c                    S n/ nU R                   nU R                  n	U R                  n
U R                  n[	        S 5      nSnU(       d  SSKJn  UR                  nX,l        Xl        Ub  UR                  U5        Uc  UR                  nOUnXl
        / nUU l        / nUU l        UUl        S nUR                  S5        [        5       nSUl        UR                  U5        Sn UU;  a_  U(       d7  U(       d  U" 5       nOUR#                  5       nU(       d  [        5       nSUl        UR                   nUU   R%                  U5      nOUU   nUGbT  US:  a4  UR                  U5        UnUR                  U5        S nU(       a  US-  nM  US:  a  U
U*    nUR&                  nUR(                  n[        5       nUUl        S Ul        U(       aj  UU* S-
  S  nUUS'   UUl         UU* S 2	 UU l        UR1                  U5        UU* S 2	 UR                  U5        U	US      U   nUR                  U5        GMV  U/nUUl         UU l        UR1                  U5        UR                  U5        U	US      U   nUR                  U5        GM  US:X  a  US   n[;        USS 5      nU$ UGc^  US:X  d  U R8                  (       Ga2  [6        nSU l        UnUR                   S:X  a  S nU R<                  (       aV  U(       a  [?        US	5      (       d  UUl        UU l        [A        U R<                  UU 5      nU R8                  (       a  UnS nGMf  OU(       a  [?        US
5      (       a  URB                  nOSnU(       a/  [D        RF                  RI                  SUUR                   4-  5        OS[D        RF                  RI                  SUR                   -  5        O&[D        RF                  RI                  S5        g [6        n[)        U5      S::  a  UR                   S:w  a  S nS nSnUS S 2	 GMD  UR                   S:X  a  g UR                   S:w  a  US   nUR                   S:X  a  S nGM  [        5       nSUl        [?        US
5      (       a  URB                  =Ul!        Ul%        [?        US5      (       a  URL                  =Ul&        Ul'        UUl        UR                  U5        UnO%UR#                  5       nUR#                  5         US   nGM%  [Q        S5      e! [2         a[    UR                  U5        UR5                  USS 5        UR#                  5         US   nSUl        SUl        Un[6        nSU l         GNAf = f! [2         aG    UR                  U5        UR#                  5         US   nSUl        SUl        Un[6        nSU l         GNBf = f)Nr   r   r   r   r   r!   Frr   rl   r   r   r   r   r   r   ))r   r   r   r   rg   r   r   rl   rX   r   rT   r   r   rk   r   r[   r?   r   r   r/   r=   rr   rj   r   r   r   r   r   r   r   rW   r   rY   r   r   r   r   r   r   r   r   )r   r   rl   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   rC   r   r   s                                  r   r   LRParser.parseopt_notrack  s   	++))""00 &
 IIE  KKI!I 
 
$  	!l ,, )$-K	$2$6$6$8	$$.L	)/	 "EN&&u-$U+ }q5%%a(E OOI. $I ""a
q5aRAFFEEED %,C$CH $CI 'a1"%Q (,1 ($ 0).DJJJv. *D56 2$OOC0$(B$8$?E&--e4 ! !$u (,1).DJJJv.$OOC0$(B$8$?E&--e4 ! 6 A$Q6F!My ?dlll!,J#(DL(H}}.#'~~#GHg,F,F-2HN%*
,T^^XtL<< ),I'+H$ ( $&x::)2)9)9)*% #

 0 01\`fhphuhu_v1v w #

 0 01ORZR_R_1_ `JJ,,-PQ" "-J z?a'INNf,D $I#HE&q) >>V+>>W,"2,Cxx7* %)	  #A$AFy(331:1A1AA1;y(331:1A1AA1;'AG")))4 !I",,.CNN$&rNE ABBi  + 
1*11)<$OOD2J7&NN,$.rNE'.CH(/CI(+I)4J+0DL
1D  + 	1*11)<&NN,$.rNE'.CH(/CI(+I)4J+0DL	1s(   %AT AU; A!U87U8;AWW)
r   r   rW   r   r   r   r   r   r   rT   )NNFFN)r#   r$   r%   r&   r   rM   rQ   r   r   r   r   r   r   r)   r*   r   r   r   r     s8    " 8#S2OCv
fCd	NCr   r   z^[a-zA-Z0-9_-]+$c                   L    \ rS rSrSrSS jrS rS rS rS r	S	 r
S
 rS rSrg)
Productioni  r   Nc                    X l         [        U5      U l        Xl        XPl        S U l        X`l        Xpl        X@l        [        U R                  5      U l	        / U l
        U R                   H/  nXR                  ;  d  M  U R                  R                  U5        M1     / U l        S U l        U R                  (       a2  U R                   < SSR                  U R                  5      < 3U l        g SU R                   -  U l        g N -> r   z%s -> <empty>)r/   tupler   numberfuncr   filelineprecr=   usymsr   lr_itemslr_nextr   rc   )	r   r  r/   r   
precedencer  r  r  rm   s	            r   r   Production.__init__  s    	d				"	 		N 
A

"

!!!$ 
  99%)YY0CDDH&2DHr   c                     U R                   $ r   rb   r^   s    r   r_   Production.__str__=      xxr   c                 $    S[        U 5      -   S-   $ )NzProduction()rb   r^   s    r   rd   Production.__repr__@  s    s4y(3..r   c                 ,    [        U R                  5      $ r   )r=   r   r^   s    r   r   Production.__len__C  s    499~r   c                     gNr   r*   r^   s    r   __nonzero__Production.__nonzero__F  s    r   c                      U R                   U   $ r   )r   r   indexs     r   rt   Production.__getitem__I  s    yyr   c                 (   U[        U R                  5      :  a  g [        X5      n [        UR                  US-         Ul         UR                  US-
     Ul        U$ ! [
        [        4 a
    / Ul         N3f = f! [
         a    S Ul         U$ f = fr  )r=   r   LRItem	Prodnameslr_after
IndexErrorKeyError	lr_before)r   rs   r   s      r   lr_itemProduction.lr_itemM  s    s499~4O	"166!A#;/AJ	&&1+AK  H% 	AJ	  	AK	s#   A A< A98A9<BBc                 N    U R                   (       a  XR                      U l        g g r   r  r   r   pdicts     r   bindProduction.bind]      99!)),DM r   )r   r  r  r=   r  r
  r  r/   r  r  r   rc   r	  )rightr   Nr   r   )r#   r$   r%   r&   reducedr   r_   rd   r   r  rt   r%  r+  r)   r*   r   r   r   r     s/    G3</  -r   r   c                   ,    \ rS rSrS rS rS rS rSrg)MiniProductionie  c                 Z    X l         X0l        X@l        S U l        XPl        X`l        Xl        g r   )r/   r=   r  r   r  r  rc   )r   rc   r/   r=   r  r  r  s          r   r   MiniProduction.__init__f  s'    				r   c                     U R                   $ r   rb   r^   s    r   r_   MiniProduction.__str__o  r  r   c                      SU R                   -  $ )NzMiniProduction(%s)rb   r^   s    r   rd   MiniProduction.__repr__r  s    #dhh..r   c                 N    U R                   (       a  XR                      U l        g g r   r(  r)  s     r   r+  MiniProduction.bindv  r-  r   )r   r  r  r=   r  r/   rc   N)	r#   r$   r%   r&   r   r_   rd   r+  r)   r*   r   r   r2  r2  e  s    /-r   r2  c                   &    \ rS rSrS rS rS rSrg)r  i  c                 X   UR                   U l         [        UR                  5      U l        UR                  U l        X l        0 U l        U R                  R                  US5        [        U R                  5      U l        [        U R                  5      U l        UR                  U l	        g )N.)
r/   r   r   r  lr_index
lookaheadsinsertr  r=   r	  )r   r   rs   s      r   r   LRItem.__init__  sq    &&	qvv,	((		C 		*	dii.''
r   c                     U R                   (       a.  U R                  < SSR                  U R                   5      < 3nU$ SU R                  -  nU$ r  )r   r/   r   )r   rm   s     r   r_   LRItem.__str__  s@    99"ii$)))<=A   $))+Ar   c                 $    S[        U 5      -   S-   $ )NzLRItem(r  rb   r^   s    r   rd   LRItem.__repr__  s    3t9$s**r   )r=   r?  r>  r/   r  r   r	  N)r#   r$   r%   r&   r   r_   rd   r)   r*   r   r   r  r    s    	"+r   r  c                 ^    [        U 5      S-
  nUS:  a  X   U;   a  X   $ US-  nUS:  a  M  g r   )r=   )symbols	terminalsr|   s      r   rightmost_terminalrI    s@    GqA
q&:":	Q q& r   c                       \ rS rSrSrg)GrammarErrori  r*   Nr9   r*   r   r   rK  rK    r:   r   rK  c                       \ rS rSrS rS rS rS rSS jrSS jr	S	 r
S
 rS rS rS rS rS rS rSS jrS rSrg)Grammari  c                     S /U l         0 U l        0 U l        0 U l        U H  n/ U R                  U'   M     / U R                  S'   0 U l        0 U l        0 U l        0 U l        [        5       U l	        S U l
        g Nr!   )Productionsr   Prodmap	TerminalsNonterminalsFirstFollow
PrecedencesetUsedPrecedenceStart)r   rH  terms      r   r   Grammar.__init__  s    !F    D#%DNN4   #%w 
 "e 
r   c                 ,    [        U R                  5      $ r   )r=   rP  r^   s    r   r   Grammar.__len__  s    4##$$r   c                      U R                   U   $ r   )rP  r  s     r   rt   Grammar.__getitem__  s    &&r   c                     U R                   S /:X  d   S5       eXR                  ;   a  [        SU-  5      eUS;  a  [        S5      eX#4U R                  U'   g )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')rP  rV  rK  )r   rZ  assoclevels       r   set_precedenceGrammar.set_precedence  s_    D6)_+__)??"MPTTUU55[\\!&r   Nc           	      ~   XR                   ;   a  [        SXEU4-  5      eUS:X  a  [        SXEU4-  5      e[        R                  U5      (       d  [        SXEU4-  5      e[	        U5       H  u  pgUS   S;   aO   [        U5      n[        U5      S:  a  [        SXEXq4-  5      eXR                   ;  a  / U R                   U'   XU'   M]  [        R                  U5      (       a  My  US	:w  d  M  [        S
XEXq4-  5      e   S	U;   a  US   S	:X  a  [        SXE4-  5      eUS   S	:w  a  [        SXE4-  5      eUS   n	U R                  R                  U	5      n
U
(       d  [        SXEU	4-  5      eU R                  R                  U	5        USS 2	 O1[        X R                   5      n	U R                  R                  U	S5      n
U< SU< 3nXR                  ;   a;  U R                  U   n[        SXEU4-  SUR                  UR                  4-  -   5      e[        U R                   5      nXR"                  ;  a  / U R"                  U'   U Hn  nXR                   ;   a   U R                   U   R%                  U5        M2  XR"                  ;  a  / U R"                  U'   U R"                  U   R%                  U5        Mp     ['        XX*X4U5      nU R                   R%                  U5        XR                  U'    U R(                  U   R%                  U5        g ! [         a     GNSf = f! [*         a    U/U R(                  U'    g f = f)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)rR  rK  _is_identifiermatch	enumerateevalr=   r   rV  r   rX  addrI  rQ  r  r  rP  rS  r   r   r   r#  )r   prodnamesymsr  r  r  rs   rm   cprecnameprodprecmapmpnumberr   r   s                   r   add_productionGrammar.add_production  sL   ~~%X\`hp[qqrrwVZ^fnYoopp##H--<H?UUVV dODAtu}
QAA
*+n,0+D,E F F.,.q)G "''**qG|"#F$VWIb#bcc $" d?Bx7""#PTXS_#_``Bx7""#m$(<$0 1 1BxH**84H"#TX\dlWm#mnn##''1RS	 *$?H**8\BH %d+,,S!A;t1oM=@PP Q R R t''(,,,*,Dh' ANN"q!((1---+-D%%a(!!!$++G4  w$$dK"S	+NN8$++A.i # j  	+()sDNN8$	+s%   :AL/L 
LLL<;L<c                     U(       d  U R                   S   R                  nXR                  ;  a  [        SU-  5      e[	        SSU/5      U R                   S'   U R                  U   R                  S5        Xl        g )Nr   zstart symbol %s undefinedr   S')rP  r/   rS  rK  r   r   rY  )r   starts     r   	set_startGrammar.set_starta  sq    $$Q',,E))):UBCC(D5':% ''*
r   c                    ^ ^^ UUU 4S jm[        5       mT" T R                  S   R                  S   5        T R                   Vs/ s H  oT;  d  M
  UPM     sn$ s  snf )Nc                    > U T;   a  g TR                  U 5        TR                  R                  U / 5       H  nUR                   H  nT" U5        M     M      g r   )rm  r   r   r   )rm   r   rA   mark_reachable_from	reachabler   s      r   r  5Grammar.find_unreachable.<locals>.mark_reachable_fromt  sJ    I~MM!^^''2.A'*   /r   r   )rW  rP  r   rS  )r   rm   r  r  s   ` @@r   find_unreachableGrammar.find_unreachableq  sT    	+ E	D,,Q/44Q78,,C,a0B,CCCs   	AAc                    0 nU R                    H  nSX'   M	     SUS'   U R                   H  nSX'   M	      SnU R                  R                  5        HI  u  p5U H>  nUR                   H  nX   (       a  M  Sn  O   SnU(       d  M.  X   (       d  SX'   Sn  MG     MK     U(       d  OMs  / n	UR                  5        HE  u  pzU
(       a  M  XpR                  ;  a  XpR                   ;  a  US:w  a  M4  U	R                  U5        MG     U	$ )NTr   Fr!   )rR  rS  r   r   r   r   )r   
terminatesr   rs   some_changeplr   rm   p_terminatesinfiniterZ  s              r   infinite_cyclesGrammar.infinite_cycles  s   
 A JM   "
6
 ""A!JM # K>>//1AVV)}} ,1L! $ (,#|)},0JM*.K)  20 7 : #))+IQ4NN*q/F1PW< OOA& , r   c                     / nU R                    H[  nU(       d  M  UR                   H?  nX0R                  ;  d  M  X0R                  ;  d  M%  US:w  d  M-  UR	                  X245        MA     M]     U$ rO  )rP  r   r   rR  r   )r   rC   r   rm   s       r   undefined_symbolsGrammar.undefined_symbols  sZ    !!AVVNN*q/F1PW<MM1&) 	 " r   c                     / nU R                   R                  5        H'  u  p#US:w  d  M  U(       a  M  UR                  U5        M)     U$ rO  )rR  r   r   )r   
unused_tokrm   rx   s       r   unused_terminalsGrammar.unused_terminals  sA    
NN((*DAG|AA!!!$ + r   c                     / nU R                   R                  5        H1  u  p#U(       a  M  U R                  U   S   nUR                  U5        M3     U$ rp   )rS  r   r   r   )r   unused_prodrm   rx   r   s        r   unused_rulesGrammar.unused_rules  sP    %%++-DA1NN1%a(""1% . r   c                     / nU R                    HG  nX R                  ;   a  M  X R                  ;   a  M%  UR                  X R                   U   S   45        MI     U$ rp   )rV  rR  rX  r   )r   unusedtermnames      r   unused_precedenceGrammar.unused_precedence  sN    H.(>Q>Q2Qx)B1)EFG ( r   c                     / nU HG  nSnU R                   U    H%  nUS:X  a  SnM  XR;  d  M  UR                  U5        M'     U(       a  MF    U$    UR                  S5        U$ )NF<empty>T)rT  r   )r   betarC   xx_produces_emptyr   s         r   _firstGrammar._first	  st     A$ ZZ]	>'+$a( #     1 , MM)$r   c                    U R                   (       a  U R                   $ U R                   H  nU/U R                   U'   M     S/U R                   S'   U R                   H  n/ U R                   U'   M      SnU R                   Ho  nU R                  U    HY  nU R	                  UR
                  5       H7  nXPR                   U   ;  d  M  U R                   U   R                  U5        SnM9     M[     Mq     U(       d   U R                   $ M  )Nr   TF)rT  rR  rS  r   r  r   r   )r   r   rs   r  r   r   s         r   compute_firstGrammar.compute_first,  s    :::: ACDJJqM   %X

6
 ""ADJJqM # K&&*A![[0JJqM1 JJqM003*.K 1 + ' zz r   c                    U R                   (       a  U R                   $ U R                  (       d  U R                  5         U R                   H  n/ U R                   U'   M     U(       d  U R                  S   R
                  nS/U R                   U'    SnU R                  SS   GH  n[        UR                  5       H  u  pVX`R                  ;   d  M  U R                  UR                  US-   S  5      nSnU HE  n	U	S:w  a2  XR                   U   ;  a   U R                   U   R                  U	5        SnU	S:X  d  MC  SnMG     U(       d  U[        UR                  5      S-
  :X  d  M  U R                   UR
                      H7  n	XR                   U   ;  d  M  U R                   U   R                  U	5        SnM9     M     GM     U(       d   U R                   $ GMG  )Nr   r   TFr  )rU  rT  r  rS  rP  r/   rk  r   r  r   r=   )
r   rz  kdidaddr   r|   Bfsthasemptyr   s
             r   compute_followGrammar.compute_followQ  s   ;;;; zz  ""ADKKN # $$Q',,E$XEF%%ab)%aff-DA---"kk!&&1,7#(!$A I~!;;q>2I $A 5 5a 8)- I~+/ "% $qS[]';%)[[%8#$KKN#:$(KKN$9$9!$<-1F &9 . *& {{/ r   c                    U R                    H  nUnSn/ n U[        U5      :  a  S nOH[        X5      n U R                  UR                  US-         Ul         UR                  US-
     Ul        XRl	        U(       d  OUR                  U5        UnUS-  nM  XAl        M     g ! [        [        4 a
    / Ul         Ndf = f! [         a
    S Ul         Ncf = fNr   r   )rP  r=   r  r   r   r!  r"  r#  r$  r  r   r
  )r   r   lastlrir|   r
  lris         r   build_lritemsGrammar.build_lritems  s    !!AGAHs1v:C ,C*'+~~chhqsm'D-(+1 #&$Q) * "J3 " '1 *')* & -(,-s#   $B$C$B>=B>CC)
rT  rU  rS  rV  rQ  r   rP  rY  rR  rX  )Nr   r   r   )r#   r$   r%   r&   r   r   rt   re  rv  r{  r  r  r  r  r  r  r  r  r  r  r)   r*   r   r   rM  rM    sZ    !H%'/2K+h D.7@	"" FJ)v"r   rM  c                       \ rS rSrSrg)VersionErrori  r*   Nr9   r*   r   r   r  r    r:   r   r  c                   ,    \ rS rSrS rS rS rS rSrg)LRTablei  c                 <    S U l         S U l        S U l        S U l        g r   )r   r   r   	lr_methodr^   s    r   r   LRTable.__init__  s    "r   c                    [        U[        R                  5      (       a  UnO![        SU-  5        [        R
                  U   nUR                  [        :w  a  [        S5      eUR                  U l
        UR                  U l        / U l        UR                   H$  nU R                  R                  [!        U6 5        M&     UR"                  U l        UR&                  $ )N	import %s&yacc table file version is out of date)rq   types
ModuleTypeexecr   modules_tabversion__tabversion__r  
_lr_actionr   _lr_gotor   r   _lr_productionsr   r2  
_lr_methodr  _lr_signature)r   moduler   r   s       r   
read_tableLRTable.read_table  s    fe..//Hv%&{{6*H>1GHH!,,(( ))A&&~q'9: * ",,%%%r   c                 <    SS K n[        R                  R                  U5      (       d  [        e[        US5      nUR                  U5      nU[        :w  a  [        S5      eUR                  U5      U l
        UR                  U5      nUR                  U5      U l        UR                  U5      U l        UR                  U5      n/ U l        U H$  nU R                  R                  [        U6 5        M&     UR!                  5         U$ ! [         a    SS Kn GNf = f)Nr   rbr  )cPickleImportErrorpickleospathexistsopenloadr  r  r  r   r   r   r   r2  close)r   filenamer  in_f
tabversion	signaturer   r   s           r   read_pickleLRTable.read_pickle  s    	$ ww~~h''
Hd#[[&
'GHHT*T*	T*T*T* A&&~q'9:  	

-  		s   D	 	DDc                 L    U R                    H  nUR                  U5        M     g r   )r   r+  )r   r*  r   s      r   bind_callablesLRTable.bind_callables  s    $$AFF5M %r   )r   r   r  r   N)	r#   r$   r%   r&   r   r  r  r  r)   r*   r   r   r  r    s    &(8r   r  c           
      n    0 nU  H  nSX4'   M	     / n0 nU  H  nX4   S:X  d  M  [        XCXVXU5        M     U$ rp   )traverse)XRFPNr  rk   Fs          r   digraphr    sJ    
A E
A419Q5Q2.  Hr   c           
         UR                  U 5        [        U5      nXqU '   U" U 5      X0'   U" U 5      nU Ha  n	X   S:X  a  [        XX#XEU5        [        X   X   5      X'   UR	                  U	/ 5       H   n
XU    ;  d  M  X0   R                  U
5        M"     Mc     X   U:X  aV  [
        XS   '   X0   X2S   '   UR                  5       nX:w  a,  [
        XS   '   X0   X2S   '   UR                  5       nX:w  a  M+  g g g )Nr   r   )r   r=   r  minr   MAXINTr   )r  r  rk   r  r  r  r  drelyaelements               r   r  r    s    	LLOE
AaDa5AD
A$C419Q5Q2.14q"A!}A 	  	tqy)t)))+l!ABiL4ABiLiikG l	 r   c                       \ rS rSrSrg)	LALRErrori)  r*   Nr9   r*   r   r   r  r  )  r:   r   r  c                       \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rSS jrSS jrSrg)LRGeneratedTablei3  Nc                    US;  a  [        SU-  5      eXl        X l        U(       d
  [        5       nX0l        0 U l        0 U l        UR                  U l        0 U l	        0 U l
        SU l        SU l        SU l        / U l        / U l        / U l        U R                  R#                  5         U R                  R%                  5         U R                  R'                  5         U R)                  5         g )N)SLRr   zUnsupported method %sr   )r  grammarr  r,   logr   r   rP  r   lr_goto_cachelr0_cidhash
_add_countsr_conflictrr_conflict	conflictssr_conflictsrr_conflictsr  r  r  lr_parse_table)r   r  methodr  s       r   r   LRGeneratedTable.__init__4  s    (3f<== ,C  &22  	""$""$##%r   c                 0   U =R                   S-  sl         US S  nSnU(       ar  SnU Ha  nUR                   HN  n[        USS5      U R                   :X  a  M   UR                  UR                  5        U R                   Ul        SnMP     Mc     U(       a  Mr  U$ )Nr   TF	lr0_addedr   )r  r!  r   r   r  r  )r   IJr  r}   r  s         r   lr0_closureLRGeneratedTable.lr0_closureY  s    1 aDFAq+q1T__D HHQYY'"&//AK!F $  f r   c                 V   U R                   R                  [        U5      U45      nU(       a  U$ U R                   R                  U5      nU(       d  0 nX@R                   U'   / nU Hm  nUR                  nU(       d  M  UR                  U:X  d  M*  UR                  [        U5      5      nU(       d  0 nX[        U5      '   UR                  U5        UnMo     UR                  S5      nU(       d!  U(       a  U R                  U5      nX4S'   OXTS'   X0R                   [        U5      U4'   U$ )Nr   )r  r   r@   r  r$  r   r  )	r   r  r  grm   gsr   rs   s1s	            r   lr0_gotoLRGeneratedTable.lr0_gotos  s    ""BqE1:.H
 ""1%A$%q!A		AqQ[[A%UU2a5\B!beH		!  EE&M$$R(&	&	)*BqE1:&r   c                 2   U R                  U R                  R                  S   R                  /5      /nSnU H  nX R                  [        U5      '   US-  nM!     SnU[        U5      :  a  X   nUS-  n0 nU H  nUR                   H  nS XF'   M	     M     U Hh  nU R                  X75      nU(       a  [        U5      U R                  ;   a  M6  [        U5      U R                  [        U5      '   UR                  U5        Mj     U[        U5      :  a  M  U$ r  )
r  r  rP  r  r  r@   r=   r	  r  r   )	r   Cr|   r  asymsiirm   r  r
  s	            r   	lr0_itemsLRGeneratedTable.lr0_items  s   t||77:BBCDEA&'RU#FA 
 #a&jAFA EA#EH "  MM!'BqET%5%55*-a&  A'  #a&j" r   c                 `   [        5       nSn U R                  R                  SS   Hf  nUR                  S:X  a  UR	                  UR
                  5        M0  UR                   H  nXA;  d  M
    MI     UR	                  UR
                  5        Mh     [        U5      U:X  a   U$ [        U5      nM  r  )rW  r  rP  r=   rm  r/   r   )r   nullablenum_nullabler   r   s        r   compute_nullable_nonterminals.LRGeneratedTable.compute_nullable_nonterminals  s    5\\--ab155A:LL(A(   LL( 2 8}, x=L r   c                 *   / n[        U5       H  u  p4U Hv  nUR                  UR                  S-
  :  d  M"  X5R                  UR                  S-      4nUS   U R                  R
                  ;   d  M^  Xb;  d  Me  UR                  U5        Mx     M     U$ r  )rk  r>  r=   r   r  rS  r   )r   r  transstatenor   r   r   s          r   find_nonterminal_transitions-LRGeneratedTable.find_nonterminal_transitions  s{    'lNG::	) &&A"67Att||888>!LLO  + r   c                    0 nUu  pV/ nU R                  X   U5      nU Hq  n	U	R                  U	R                  S-
  :  d  M"  U	R                  U	R                  S-      n
XR                  R
                  ;   d  MY  X;  d  M`  UR                  U
5        Ms     US:X  a:  X`R                  R                  S   R                  S   :X  a  UR                  S5        U$ )Nr   r   r   )r  r>  r=   r   r  rR  r   rP  )r   r  r  r  dr_setr   r  termsr
  r   r  s              r   dr_relationLRGeneratedTable.dr_relation  s    MM!(A&AzzAEEAI%FF1::a<(...~Q  A:!||77:??BBLL r   c                 >   / nUu  pVU R                  X   U5      nU R                  R                  [        U5      S5      nU HW  n	U	R                  U	R
                  S-
  :  d  M"  U	R                  U	R                  S-      n
X;   d  ME  UR                  X45        MY     U$ )Nr   r   )r  r  r   r@   r>  r=   r   r   )r   r  r  emptyr  r   r  r
  r}   r   r  s              r   reads_relationLRGeneratedTable.reads_relation	  s    MM!(A&  A+AzzAEEAI%FF1::>*:JJv&	  
r   c                 2   0 n0 n0 nU H  nSXg'   M	     U GH  u  p/ n
/ nX    GH  nUR                   U	:w  a  M  UR                  nUnXR                  S-
  :  a  US-   nUR                  U   nX4U;   ax  US-   nXR                  :  aR  UR                  U   U R                  R
                  ;   a  O<UR                  U   U;  a  O(US-   nXR                  :  a  MR  UR                  X45        U R                  X   U5      nU R                  R                  [        U5      S5      nXR                  S-
  :  a  M  X    H  nUR                   UR                   :w  a  M  UR                  UR                  :w  a  M;  SnUUR                  :  a<  UR                  U   UR                  US-      :w  a  Mr  US-   nUUR                  :  a  M<  U
R                  UU45        M     GM     U H#  nUU;  a  / UU'   UU   R                  X45        M%     XX4'   GM     XE4$ )Nr   r   r   )r/   r>  r=   r   r  rR  r   r  r  r   r@   )r   r  r  r  lookdictincludedictdtransr   r   r  lookbincludesr   r>  r}   lir
  rA   r|   s                      r   compute_lookback_includes*LRGeneratedTable.compute_lookback_includesC	  s    AFI  HEEHX66Q;
 ::*'!|Hx(A v'
 &\ 55j vvbzT\\-C-CC % vvbz9 %!#aB !55j %OOQF3adA.A((,,RUB7A- *2 Avv' uu~ Aajj.66!9qs3!E ajj.
 aV, E ^ K'%'KNA%%uj1  $)eZ m p $$r   c                 D   ^ ^^ UUU 4S jnUUU 4S jn[        X%U5      nU$ )Nc                 *   > TR                  TU T5      $ r   )r"  r  r  r  r   s    r   <lambda>4LRGeneratedTable.compute_read_sets.<locals>.<lambda>	  s    t''1h7r   c                 *   > TR                  TU T5      $ r   )r&  r3  s    r   r4  r5  	  s    t**1a:r   r  )r   r  ntransr  r  r  r  s   `` `   r   compute_read_sets"LRGeneratedTable.compute_read_sets	  s    7:Fr"r   c                 :   ^^ U4S jnU4S jn[        XU5      nU$ )Nc                    > TU    $ r   r*   )r  readsetss    r   r4  6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>	  s	    x{r   c                 (   > TR                  U / 5      $ r   )r   )r  inclsetss    r   r4  r>  	  s    x||Ar*r   r7  )r   r8  r=  r@  r  r  r  s     ``   r   compute_follow_sets$LRGeneratedTable.compute_follow_sets	  s    "*Fr"r   c                 "   UR                  5        H{  u  p4U Hp  u  pVXVR                  ;  a  / UR                  U'   UR                  U/ 5      nU H5  nXR                  U   ;  d  M  UR                  U   R                  U5        M7     Mr     M}     g r   )r   r?  r   r   )	r   	lookbacks	followsetr  lbr   r   r   r  s	            r   add_lookaheadsLRGeneratedTable.add_lookaheads	  sy    "*IE,*,ALL'MM%,AU 33U+2215 	  +r   c                     U R                  5       nU R                  U5      nU R                  XU5      nU R                  XU5      u  pVU R	                  X4U5      nU R                  XW5        g r   )r  r  r9  r/  rA  rG  )r   r  r  r  r=  lookdincluded
followsetss           r   add_lalr_lookaheads$LRGeneratedTable.add_lalr_lookaheads	  sp    557 11!4 ))!H= 888L --exH
 	E.r   c           
         U R                   R                  nU R                   R                  nU R                  nU R                  nU R
                  n0 nUR                  SU R                  5        U R                  5       nU R                  S:X  a  U R                  U5        SnU GH  n	/ n
0 n0 n0 nUR                  S5        UR                  SU5        UR                  S5        U	 H   nUR                  SUR                  U5        M"     UR                  S5        U	 GH  nUR                  UR                  S-   :X  Ga  UR                  S:X  a  SUS	'   XS	'   M=  U R                  S:X  a  UR                  U   nO#U R                   R                  UR                     nU GHg  nU
R!                  UUS
UR                  U4-  45        UR#                  U5      nUGb  US:  Ga  UR#                  US5      u  nnXR                     R$                  u  nnUU:  d  UU:X  a{  US:X  au  UR                  * UU'   XU'   U(       d7  U(       d0  UR                  SU5        U R&                  R!                  UUS45        XR                     =R(                  S-  sl        M  UU:X  a  US:X  a  S UU'   GM  U(       d3  UR                  SU5        U R&                  R!                  UUS45        GMH  GMK  US:  a  UU*    nXR                     nUR*                  UR*                  :  a\  UR                  * UU'   XU'   UUnnXR                     =R(                  S-  sl        UUR                     =R(                  S-  sl        OUUnnU R,                  R!                  UUU45        UR                  SUUU   R                  UU   5        GM$  [/        SU-  5      eUR                  * UU'   XU'   XR                     =R(                  S-  sl        GMj     GM  UR                  nUR0                  US-      nUU R                   R2                  ;   d  GM,  U R5                  U	U5      nU R6                  R#                  [9        U5      S5      nUS:  d  GMl  U
R!                  UUSU-  45        UR#                  U5      nUGb<  US:  a  UU:w  a  [/        SU-  5      eGM  US:  Ga
  UR#                  US5      u  nnXU   R                     R$                  u  nnUU:  d  UU:X  ap  US:X  aj  XU   R                     =R(                  S-  sl        UUU'   XU'   U(       d3  UR                  SU5        U R&                  R!                  UUS45        GMh  GMk  UU:X  a  US:X  a  S UU'   GM  U(       d=  U(       d3  UR                  SU5        U R&                  R!                  UUS45        GM  GM  GM  [/        SU-  5      eUUU'   XU'   GM     0 nU
 H2  u  nnnUU;   d  M  XU   L d  M  UR                  SUU5        SUUU4'   M4     UR                  S5        SnU
 H>  u  nnnUU;   d  M  XU   Ld  M  UU4U;  d  M"  UR;                  SUU5        SnSUUU4'   M@     U(       a  UR;                  S5        0 n U	 H7  n!U!R<                   H$  n"U"U R                   R>                  ;   d  M  S U U"'   M&     M9     U  HZ  n#U R5                  U	U#5      nU R6                  R#                  [9        U5      S5      nUS:  d  MB  UUU#'   UR                  SU#U5        M\     XU'   XU'   XU'   US-  nGM     g )NzParsing method: %sr   r   r   zstate %dz    (%d) %sr   ry  r   zreduce using rule %d (%s)r.  ra  z3  ! shift/reduce conflict for %s resolved as reducereducerb  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  rP  rV  r   r   r  r'   r  r  rM  r  r=   r>  r/   r?  rU  r   r   r  r  r0  r  r  r  r   rR  r  r  r@   r   r	  rS  )$r   rP  rV  r   r   r  actionpr  str  actlist	st_action
st_actionpst_gotor   laheadsr  rA   sprecslevelrprecrleveloldpppchosenprejectpr|   r
  r}   	_actprintrt  not_usednkeysr  rm   rs   s$                                       r   r   LRGeneratedTable.lr_parse_table	  s   ll..ll--
%t~~6
 NN>>V#$$Q' AGIJGHHRLHHZ$HHRL!4 HHRLuu

Q.66T>01If-12v.  $~~7*+,,r*:*.,,*=*=aff*E%, '16QUVU]U]_`Ta6a/b c$-MM!$4#$='(1u 9Cq,8Wv 9DHH8M8R8Rv,2VO&FBRY^bhYh<=HH9IaL<=qM39&039npq0r040A0A0H0H"aQYIZ0[,7,A,I,IQ,N,I.4.>UjEX;?IaL 4:039mop0q040A0A0H0H"aQXIY0Z 4: *+Q 0;A2-8-B+/99rww+><=HH9IaL<=qM?A4WG,7,A,I,IQ,N,I,7,D,L,LPQ,Q,L?CRWG(,(9(9(@(@"gwAW(X(+1p12JqM4H4H*UV-)Y /88VY[8[.\(\45HH9IaL45qM$/$9$A$AQ$F$A$Ai &-l JJFF1Q3K 6 66 $a 3A $ 0 0 4 4RUB ?A Av '16PST6T/U V$-MM!$4#$='(1u+,62;<^ac<c2d,d ,2)*Q 9Cq,8Wv 9DqMDXDX8Y8^8^v,2VO&FBRY^biYi,718L8L,M,U,UYZ,Z,U;<IaL<=qM39039mop0q040A0A0H0H"aQXIY0Z 4: /5.>UjEX;?IaL 4:&039npq0r040A0A0H0H"aQYIZ0[ CI6
 /88VY[8[.\(\34IaL45qMa f I"1a	>qM)A6,-	1a&)	 #
 HHRLH"1a	>1- !1v2II&8!Q?'(H01Iq!f- # 		" EADLL555#'a "  MM!Q'$$((A36!"GAJHHA1aH  #2J$BKH!GBI r   c                 
   [        U[        R                  5      (       a  [        S5      eUR	                  S5      S   n[
        R                  R                  X$5      S-   n [        US5      nUR                  S[
        R                  R                  U5      < S[        < SU R                  < S	U< S
3	5        SnU(       GaI  0 nU R                  R                  5        Hf  u  pU
R                  5        HM  u  pUR                  U5      nU(       d  / / 4nXU'   US   R!                  U	5        US   R!                  U5        MO     Mh     UR                  S5        UR                  5        H{  u  pUR                  SU-  5        US    H  nUR                  SU-  5        M     UR                  S5        US    H  nUR                  SU-  5        M     UR                  S5        M}     UR                  S5        UR                  S5        OiUR                  S5        U R                  R                  5        H)  u  pUR                  SUS   < SUS   < SU< S35        M+     UR                  S5        U(       GaI  0 nU R"                  R                  5        Hf  u  pU
R                  5        HM  u  pUR                  U5      nU(       d  / / 4nXU'   US   R!                  U	5        US   R!                  U5        MO     Mh     UR                  S5        UR                  5        H{  u  pUR                  SU-  5        US    H  nUR                  SU-  5        M     UR                  S5        US    H  nUR                  SU-  5        M     UR                  S5        M}     UR                  S5        UR                  S5        OiUR                  S5        U R"                  R                  5        H)  u  pUR                  SUS   < SUS   < SU< S35        M+     UR                  S5        UR                  S5        U R$                   H  nUR&                  (       au  UR                  SUR(                  UR*                  UR,                  UR&                  [
        R                  R                  UR.                  5      UR0                  4-  5        M  UR                  S[)        U5      UR*                  UR,                  4-  5        M     UR                  S5        UR3                  5         g ! [         a  ne S nAff = f)Nz"Won't overwrite existing tabmoduler=  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]
)rq   r  r  IOErrorsplitr  r  r   r  r   basenamer  r  r   r   r   r   r   r   r  rc   r/   r=   r  r  r  )r   	tabmodule	outputdirr  basemodulenamer  r   smallerr   rm   ndr/   rx   r|   r  r   es                    r   write_tableLRGeneratedTable.write_table
  s*   i!1!122>??"-b177<<	:UBk	Xs#AGG 77H%~t~~yR S G !^^113EA#%88:!IIdO !#RA*+$K!A!A $. 4 01!KKMDAGGGaK(qT	* "GGENqT	* " GGEN *    +, NN002DAGGQqT1Q4;< 3!\\//1EA#%88:!IIdO !#RA*+$K!A!A $. 2 ./!KKMDAGGGaK(qT	* "GGENqT	* " GGEN *    )* LL..0DAGGQqT1Q4;< 1 GG+,((66GG6!%%:;&&"''BRBRSTSYSYBZ\]\b\b:d d e GG<APQPUPU?VVW ) GGENGGI 		s   "ST1 1
U;T<<Uc                 p    SS K n[        US5       nUR	                  [
        U[        5        UR	                  U R                  U[        5        UR	                  X$[        5        UR	                  U R                  U[        5        UR	                  U R                  U[        5        / nU R                   H  nUR                  (       ar  UR                  UR                  UR                  UR                  UR                  [         R"                  R%                  UR&                  5      UR(                  45        M  UR                  [        U5      UR                  UR                  S S S 45        M     UR	                  XT[        5        S S S 5        g ! [         a    SS Kn GNf = f! , (       d  f       g = f)Nr   wb)r  r  r  r  dumpr  pickle_protocolr  r   r   r   r  r   rc   r/   r=   r  r  rj  r  r  )r   r  r  r  outfoutpr   s          r   pickle_tableLRGeneratedTable.pickle_table   s,   	$ (D!TKKo>KKo>KK	9KKo>KKdO<D((66KKqvvrww?O?OPQPVPV?WYZY_Y_ `aKKQdD IJ	 )
 KKO4 "!  		!!s   F E7F'F$#F$'
F5)r  r  r  r  r  r   r   r  r  r   r  r  r  r  )r   N)r   r   )r   )r#   r$   r%   r&   r   r  r  r  r  r  r"  r&  r/  r9  rA  rG  rM  r   rq  ry  r)   r*   r   r   r  r  3  s\    !J4 Fp:	(2VB%`,$	6$/0yBqt5r   r  c                     [         R                  " U 5      nUR                  R                  5       nUR                  UR                  :w  a  UR                  UR                  5        U$ r   )r   	_getframe	f_globalscopyf_localsupdate)levelsr   ldicts      r   get_caller_module_dictr  C  sG    fAKKE{{ajj QZZ Lr   c           	         / nU R                  5       nS nUnU H  nUS-  nUR                  5       nU(       d  M!   US   S:X  a  U(       d  [        SX4-  5      eUn	USS  n
O,US   n	U	nUSS  n
US   nUS:w  a  US:w  a  [        SX4-  5      eUR                  XX45        M     U$ ! [         a    e [         a    [        S	XUR                  5       4-  5      ef = f)
Nr   r   |z%s:%d: Misplaced '|'   :z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)
splitlinesri  r   r   	Exceptionstrip)docr  r  r  pstringslastpdlinepsr   rn  ro  assigns               r   parse_grammarr  O  s   G~~HEE
HHJ	\ts{%&<}&LMM uQ4 121S=Vu_%&ITM&YZZNND89) 4 N  	 	\>$rxxzAZZ[[	\s   A&B''3Cc                   r    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rSrg)ParserReflectix  Nc                     Xl         S U l        S U l        S U l        [	        5       U l        / U l        SU l        Uc  [        [        R                  5      U l        g X l        g )NF)r*  rz  
error_functokensrW  r  r  r!   r   r   r   r  )r   r*  r  s      r   r   ParserReflect.__init__y  sM    

%
; ,DHHr   c                     U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         g r   )	get_startget_error_func
get_tokensget_precedenceget_pfunctionsr^   s    r   get_allParserReflect.get_all  s:    r   c                     U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  $ r   )validate_startvalidate_error_funcvalidate_tokensvalidate_precedencevalidate_pfunctionsvalidate_modulesr!   r^   s    r   validate_allParserReflect.validate_all  sT      "  "  "zzr   c           
      J   / n U R                   (       a  UR                  U R                   5        U R                  (       aJ  UR                  SR                  U R                   Vs/ s H  nSR                  U5      PM     sn5      5        U R                  (       a*  UR                  SR                  U R                  5      5        U R
                   H#  nUS   (       d  M  UR                  US   5        M%     SR                  U5      $ s  snf ! [        [        4 a     N(f = f)Nr   r   r   )rz  r   r  r   r  pfuncs	TypeError
ValueError)r   partsr   r   s       r   r  ParserReflect.signature  s    	zzTZZ(yyRWW$))%D)Qbggaj)%DEF{{SXXdkk23[[Q44LL1& !
 wwu~ &E :& 		s+   A!D %D
 AD !D 
D D"!D"c           	         [         R                  " S5      nU R                   H  n [        R                  " U5      u  p40 n[        U5       H  u  pFUS-  nUR                  U5      nU(       d  M$  UR                  S5      nUR                  U5      n	U	(       d  XEU'   MS  [        R                  " U5      n
U R                  R                  SXX5        M     M     g ! [
         a     M  f = f)Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(r   z;%s:%d: Function %s redefined. Previously defined on line %d)recompiler  inspectgetsourcelinesrh  rk  rj  groupr   getsourcefiler  r   )r   frer  lineslinen	counthashr  rt  r/   prevr  s              r   r  ParserReflect.validate_modules  s    jj89llF&55f= I(/
IIdO1771:D$==.D*/$#*#8#8#@(()f)1$F  0 #  s   C
C)(C)c                 D    U R                   R                  S5      U l        g )Nrz  )r*  r   rz  r^   s    r   r  ParserReflect.get_start  s    ZZ^^G,
r   c                     U R                   b<  [        U R                   [        5      (       d  U R                  R	                  S5        g g g )Nz'start' must be a string)rz  rq   string_typesr  r!   r^   s    r   r  ParserReflect.validate_start  s8    ::!djj,779: 8 "r   c                 D    U R                   R                  S5      U l        g )Np_error)r*  r   r  r^   s    r   r  ParserReflect.get_error_func  s    **..3r   c                    U R                   (       GaD  [        U R                   [        R                  5      (       a  SnOO[        U R                   [        R                  5      (       a  SnO#U R
                  R                  S5        SU l        g U R                   R                  R                  nU R                   R                  R                  n[        R                  " U R                   5      nU R                  R                  U5        U R                   R                  R                  U-
  nUS:w  a$  U R
                  R                  SX25        SU l        g g g )Nr   r   z2'p_error' defined, but is not a function or methodTz$%s:%d: p_error() requires 1 argument)r  rq   r  FunctionType
MethodTyper  r!   __code__co_firstlinenoco_filenamer  	getmoduler  rm  co_argcount)r   ismethodelineefiler  argcounts         r   r  !ParserReflect.validate_error_func  s    ???$//5+=+=>>DOOU-=-=>>ST!
OO,,;;EOO,,88E&&t7FLLV$//;;hFH1}EuT!
 ! r   c                 j   U R                   R                  S5      nU(       d#  U R                  R                  S5        SU l        g [	        U[
        [        45      (       d#  U R                  R                  S5        SU l        g U(       d#  U R                  R                  S5        SU l        g Xl        g )Nr  zNo token list is definedTztokens must be a list or tupleztokens is empty)r*  r   r  r!   rq   r   r  r  )r   r  s     r   r  ParserReflect.get_tokens  s    )HHNN56DJ&4-00HHNN;<DJHHNN,-DJr   c                    SU R                   ;   a#  U R                  R                  S5        SU l        g [        5       nU R                    H5  nX!;   a  U R                  R	                  SU5        UR                  U5        M7     g )Nr!   z.Illegal token name 'error'. Is a reserved wordTzToken %r multiply defined)r  r  r!   rW  r   rm  )r   rH  rs   s      r   r  ParserReflect.validate_tokens  sd    dkk!HHNNKLDJE	A~  !<a@MM! r   c                 D    U R                   R                  S5      U l        g )Nr  )r*  r   r  r^   s    r   r  ParserReflect.get_precedence  s    JJNN<0	r   c                 "   / nU R                   (       Gau  [        U R                   [        [        45      (       d#  U R                  R                  S5        SU l        g [        U R                   5       GH  u  p#[        U[        [        45      (       d$  U R                  R                  S5        SU l          g [        U5      S:  a%  U R                  R                  SU5        SU l          g US   n[        U[        5      (       d$  U R                  R                  S5        SU l          g USS   HS  n[        U[        5      (       d%  U R                  R                  S	5        SU l            g UR                  XTUS-   45        MU     GM     Xl
        g )
Nz"precedence must be a list or tupleTzBad precedence tabler  z?Malformed precedence entry %s. Must be (assoc, term, ..., term)r   z)precedence associativity must be a stringr   z precedence items must be strings)r  rq   r   r  r  r!   rk  r=   r  r   preclist)r   r  rd  r   rc  rZ  s         r   r  !ParserReflect.validate_precedence  s/   999dii$77CD!
%dii0!!dE]33HHNN#9:!%DJq6A:HHNN#dfgh!%DJ!!%66HHNN#NO!%DJabED%dL99'IJ%)
OOT%'$:; " 1* !r   c                    / nU R                   R                  5        H  u  p#UR                  S5      (       a  US:X  a  M#  [        U[        R
                  [        R                  45      (       d  MT  [        USUR                  R                  5      n[        R                  " U5      nUR                  XEX#R                  45        M     UR                  S S9  Xl        g )Np_r  r  c                 8    U S   [        U S   5      U S   U S   4$ )Nr   r   r  r   rb   )
p_functions    r   r4  .ParserReflect.get_pfunctions.<locals>.<lambda>D  s(    qM
1qMqM	1r   )key)r*  r   
startswithrq   r  r  r  r   r  r  r  r  r   __doc__sortr  )r   p_functionsr/   itemr  r  s         r   r  ParserReflect.get_pfunctions7  s    ****,JD??4((DI,=$!3!3U5E5E FGGt%5t}}7S7ST **40""D$#EF - 	  	
 "r   c                    / n[        U R                  5      S:X  a#  U R                  R                  S5        SU l        g U R                   GHb  u  p#pE[        R
                  " U5      nU R                  U   n[        U[        R                  5      (       a  SnOSnUR                  R                  U:  a0  U R                  R                  SXbUR                  5        SU l        M  UR                  R                  U:  a0  U R                  R                  SXbUR                  5        SU l        M  UR                  (       d*  U R                  R                  SXbUR                  5        GM   [        XVU5      n	U	 H  n
UR!                  XJ45        M     U R&                  R)                  U5        GMe     U R                  R+                  5        GH  u  pUR-                  S	5      (       a1  [        U[        R.                  [        R                  45      (       a  MM  UR-                  S
5      (       a  Me  UR-                  S	5      (       a"  US:w  a  U R                  R                  SU5        [        U[        R.                  5      (       a  UR                  R                  S:X  dH  [        U[        R                  5      (       d  M  UR0                  R                  R                  S:X  d  GM  UR                  (       d  GM2   UR                  R3                  S5      nUS   S:X  aI  U R                  R                  SUR                  R4                  UR                  R6                  U5        GM  GM     Xl        g ! ["         a6  nU R                  R                  [%        U5      5        SU l         S nAGN!S nAff = f! [8         a     GM  f = f)Nr   z+no rules of the form p_rulename are definedTr  r   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_r  z%r not defined as a functionr   r  z9%s:%d: Possible grammar rule %r defined without p_ prefix)r=   r  r  r!   r  r  r*  rq   r  r  r  r  r#   r  r   r  r   r   rc   r  rm  r   r  r  __func__ri  r  r  r"  r  )r   r  r  r  r/   r  r  r  reqargsparsed_gr
  rp  rs   rx   s                 r   r  !ParserReflect.validate_pfunctionsL  s   t{{q HHNNHIDJ'+{{#D$((0D::d#D$ 0 011}}((72FTXTaTab!
**W4DdRVR_R_`!
\\  !d!%T]]<&,S=H%y1 &   (7 (3@ JJ$$&DA||D!!jU5G5GIYIY4Z&[&[||D!!||D!!a9n  !?CAu1122qzz7M7MQR7Rq%"2"233

8K8K8W8W[\8\999iiooc2q6S= HH,,-h-.ZZ-C-CQZZE^E^`ac ) '$ ; # &HHNN3q6*!%DJJ&4 & s+   +'M8?A*N;8
N8+N33N8;
O
	O
)r!   r  r  r  r  r*  r  r  r  rz  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  x  sN    6F2-;4",(1!>"*:r   r  c                 V   Uc  [         nU(       a  SnUc  [        [        R                  5      nU(       aZ  [	        U5       Vs/ s H  o[        X-5      4PM     nn[        U5      nSU;  a#  [        R                  US      R                  US'   O[        S5      nU	c  [        U[        R                  5      (       a  UR                  nO]SU;  a  US   nOQUR                  S5      nSR                  US S 5      n[        SU-  5        [        [        R                  U   SS5      n[         R"                  R%                  U5      n	UR'                  S	5      nU(       a#  [        U[(        5      (       a  SU;  a  US-   U-   nUb  XOS
'   [+        XS9nUR-                  5         UR.                  (       a  [1        S5      eUR3                  5       n [5        5       nU(       a  UR7                  U5      nOUR9                  U5      nU(       d  UU:X  a@   UR;                  UR<                  5        [?        UUR@                  5      nURB                  q!U$  U
cE  U(       a4   [        [M        [         R"                  R                  X5      S5      5      n
O
[Q        5       n
U
RS                  S[T        5        SnURW                  5       (       a  [1        S5      eUR@                  (       d  URG                  S5        [Y        URZ                  5      nUR\                   H  u  nnn UR_                  UUU5        M     URb                   H#  u  nn U u  n!n"n#n$ URe                  U#U$UU!U"5        M%      Uc  URg                  URh                  5        OURg                  U5         U(       a  [1        S5      eURk                  5       n%U% H0  u  n&n'UR/                  SU'Rl                  U'Rn                  U&5        SnM2     URq                  5       n(U((       a`  U
RS                  S5        U
RS                  S5        U
RS                  S5        U( H'  nURG                  SU5        U
RS                  SU5        M)     U(       ae  U
RS                  S5        U
RS                  S5        U
RS                  S5        [s        URt                  5       H  u  n)n*U
RS                  SU)U*5        M     URw                  5       n+U+ H5  n'URG                  SU'Rl                  U'Rn                  U'Rx                  5        M7     [{        U(5      S:X  a  URG                  S5        [{        U(5      S:  a  URG                  S[{        U(5      5        [{        U+5      S:X  a  URG                  S 5        [{        U+5      S:  a  URG                  S![{        U+5      5        U(       Gae  U
RS                  S5        U
RS                  S"5        U
RS                  S5        [}        UR~                  5      n,U,R                  5         U, HL  nU
RS                  S#US$R                  UR~                  U    V-s/ s H  n-[)        U-5      PM     sn-5      5        MN     U
RS                  S5        U
RS                  S%5        U
RS                  S5        [}        UR                  5      n.U.R                  5         U. HL  n/U
RS                  S#U/S$R                  UR                  U/    V-s/ s H  n-[)        U-5      PM     sn-5      5        MN     U
RS                  S5        U(       aX  UR                  5       n0U0 H  n1URG                  S&U15        M     UR                  5       n2U2 H  n3UR/                  S'U35        SnM     UR                  5       n4U4 H  u  nnUR/                  S(UU5        SnM     U(       a  [1        S5      eU(       a  UR                  S)U 5        [        UX
5      nU(       a  [{        UR                  5      n5U5S:X  a  URG                  S*5        OU5S:  a  URG                  S+U55        [{        UR                  5      n6U6S:X  a  URG                  S,5        OU6S:  a  URG                  S-U65        U(       Ga  UR                  (       d  UR                  (       Gaw  U
RG                  S5        U
RG                  S.5        U
RG                  S5        UR                   H  u  n7n8n9U
RG                  S/U8U7U95        M     [        5       n:UR                   H  u  n7n;n<U7[        U;5      [        U<5      4U:;   a  M$  U
RG                  S0U7U;5        U
RG                  S1U<U75        URG                  S0U7U;5        URG                  S1U<U75        U:R                  U7[        U;5      [        U<5      45        M     / n=UR                   HW  u  n7n;n<U<R                  (       a  M  U<U=;  d  M"  U
RG                  S2U<5        URG                  S2U<5        U=R                  U<5        MY     U(       a   UR                  X9U5        U(       a   UR                  UU5        UR;                  UR<                  5        [?        UUR@                  5      nURB                  q!U$ s  snf ! [D         a  nURG                  SU5         S nAGNbS nAff = f! [H         a%  nURG                  [)        U5      5         S nAGNS nAf[J         a     GNf = f! [N         a.  nURG                  SU< SU< 35        [Q        5       n
 S nAGNS nAff = f! [`         a  nURG                  SU5         S nAGMC  S nAff = f! [`         a   nUR/                  SU5        Sn S nAGME  S nAff = f! [`         a'  nUR/                  [)        U5      5        Sn S nAGN S nAff = fs  sn-f s  sn-f ! [N         a$  nURG                  S3U< SU< 35         S nAGNS nAff = f! [N         a$  nURG                  S3U< SU< 35         S nAGNS nAff = f)4Nr   __file__r$   r  r=  r   r  r   __package__rz  )r  zUnable to build parserz.There was a problem loading the table file: %rrf  zCouldn't open z. z5Created by PLY version %s (http://www.dabeaz.com/ply)Fz no p_error() function is definedz%sTz;%s:%d: Symbol %r used, but not defined as a token or a rulezUnused terminals:zToken %r defined, but not usedz    %srM  zRule %-5d %sz$%s:%d: Rule %r defined, but not usedr   z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   z*Nonterminals, with rules where they appearz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 reducedzCouldn't create )P
tab_moduler   r   r   dirr   dictr  r  r  rq   r  r  ri  r   r  r  r  dirnamer   rc   r  r  r!   r7   r  r  r  r  r  r*  r   r  r   r  r   r  r  r  rh  r,   r'   __version__r  rM  r  r  re  rK  r  rv  r{  rz  r  r  r  r  rk  rP  r  r/   r=   r   rR  r  rS  r  r  r  r   r  r  r  rW  r@   rm  r0  r   rq  ry  )>r  r   r  rk  rz  check_recursionoptimizewrite_tables	debugfilerl  debuglogerrorlog
picklefiler  _itemsr*  srcfiler  pkgnamepkgpinfor  lrread_signaturerX   rp  errorsr  rZ  rc  rd  funcnamegramr  r  rn  ro  r  r   r   r  rs   r   r  r!  rm   nontermsnontermunreachableur  infunused_precnum_srnum_rrr   r   
resolutionalready_reportedrulerejectedwarned_nevers>                                                                 r   yaccr    sz
    	 SZZ( 36v;?;agf();?VU" #E,,? @ I IE*&q)
 i!1!122((G)#
+!,((5":.[7*+!#++g"6
BGGGOOG,	 ))M
"C
z)S))ic	I-I
 g %.E	MMO{{011 !IY^^J7N]]95N)3V!!%++.!"e&6&67 4 ($T"'',,y*Lc%RS
 "|HMMI;WF 011;< ell#G $nneU	&""46 -  --$%)"dHd	""8T8T4H (=ekk*e$
 011  113&	TTVZV_V_aeajajlop ' //1b)*b$D=tDMM(D) %
 bi bg112DAqMM.!Q/ 3 '')L?DIIW[W`W`a  !23
q 5s;K7LM
<A12
<14c,6GHb?@bW&&'

DMM,chhHYHYZ^H_7`H_1AH_7`.ab  	bBCb,,-GMM,7K_K_`gKh:iKha3q6Kh:i1jk  b..0A7;  **,CNNFLF  ++-K"eI5RVW # 011 -v6	'6	4BR__% Q;67aZ8&AR__%Q;78aZ96B "//R___&&(oo"E3
VY\^ceop '6 5%'__!E4r$xH.2BBZ\acgh=xOZ\acgh=xO  %D2h<!@A &5 %'__!E4###)E  !=xH  !=xH##H-	 &5 	HNN9;
 	IOOJ	2
 ekk"b%**+FLLEMK @z  V  !QSTUUV !Q     (  9a!HI%<(0  	&T1%%	&  	NN4#F	  s1vh 8a ;jP  	HAFGG	H  	IQGHH	Is   jAj: >j 2k8 l3m&n n ?n?)o o	 :o: 
j7j2,j: 2j77j: :
k5k$$k54k58
l0#l++l03
m=mm
n(nn
n<n77n<	
o7o22o7:
p(p##p()<r  r  r   os.pathr  r  base64rI   r  r  	yaccdebug
debug_filer  
default_lrr   r   r>   rv  version_info
basestringr  rc   maxsizer  objectr   r,   r  r7   rD   rG   rL   rS   rP   rK   rM   rQ   rT   rY   r[   rg   r   r  ri  r   r2  r  rI  rK  rM  r  r  r  r  r  r  r  r  r  r  r*   r   r   <module>r     s  | 
  
     	 


	  ALL	 $ 		 	9 
		

:  , ,hZC ZCL /04B- B-P-V -\+V +6 	9 	e"f e"^	9 	9f 9h	".		 	5w 5` RNF Nl i
RVDJ$$Xr   