
    8fTx                    P   	 d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZ ddlmZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZmZ ddl m!Z! erddl"m#Z#  ede      Z$ G d de
ee$f         Z% G d de
e         Z& G d de
e         Z' G d de%eejP                  f         Z) G d de%eejP                  f         Z* G d de%eejV                  f         Z, G d de%eejZ                  f         Z. G d  d!e%eej^                  f         Z0 G d" d#e%eejb                  f         Z2 G d$ d%e%eejf                  f         Z4 G d& d'e%eejj                  f         Z6 G d( d)e%eejn                  f         Z8 G d* d+e%eejr                  f   e&e   e'e         Z: G d, d-e%eejv                  f   e&e   e'e         Z< G d. d/e%eejz                  f         Z> G d0 d1e%eej~                  f         Z@	 	 	 	 	 	 	 	 d?d2ZA ed3ej                  ej                        ZD G d4 d5e%eeDf         ZE G d6 d7eEeej                  f         ZF G d8 d9eEeej                  f         ZG G d: d;e%eeDf   e&e         ZH G d< d=e%eej                  ej                  z  f         ZKy>)@    )annotations)abstractmethod)Sequence)TYPE_CHECKINGAnyCallableGenericSelfTypeVar)ParserRuleContext   )wizardParser)WizardErrorWizardNameErrorWizardParseErrorWizardTypeError)SelectOption)Issue)ContextState)
SubPackageSubPackagesValue   )wrap_exceptions)WizardInterpreterContextFactoryRuleContext)boundc                      e Zd ZU 	 ded<   ded<   ded<   ded<   	 d	 	 	 	 	 	 	 dd
ZddZedd       Zedd       Zedd       Z	edd       Z
edd       ZddZy	)WizardInterpreterContext-WizardInterpreterContextFactory[ContextState]_factoryr   _context+WizardInterpreterContext[ContextState, Any]_parentr   _stateNc                    	 || _         || _        || _        | |j                  j	                         | _        y || _        y N)r!   r"   r$   statecopyr%   )selffactorycontextparentr(   s        C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\MO2\plugins\installer_wizard\lib\wizard\contexts\contexts.py__init__z!WizardInterpreterContext.__init__0   s>    	  = ,,++-DKDK    c                     	 | | j                   u S r'   )r-   r*   s    r.   is_top_levelz%WizardInterpreterContext.is_top_levelH   s    	 t{{""r0   c                    	 | j                   S r'   )r!   r2   s    r.   r+   z WizardInterpreterContext.factoryO       	 }}r0   c                    	 | j                   S r'   )r$   r2   s    r.   r-   zWizardInterpreterContext.parentW   s    	 ||r0   c                    	 | j                   S r'   )r"   r2   s    r.   r,   z WizardInterpreterContext.context_   r5   r0   c                    	 | j                   S r'   )r%   r2   s    r.   r(   zWizardInterpreterContext.stateg   s    	 {{r0   c                     	 y r'    r2   s    r.   exec_zWizardInterpreterContext.exec_o       	 	r0   c                    	 | j                   j                  r*t        | j                   | j                   j                        t        | j                  | j                         S r'   )r,   	exceptionr   r   r;   r2   s    r.   execzWizardInterpreterContext.execz   sF    	 <<!!"4<<1G1GHHtzz4<<88r0   r'   )r+   r    r,   r   r-   r#   r(   ContextState | Nonereturnbool)rB   r    rB   r#   )rB   r   )rB   r   )__name__
__module____qualname____annotations__r/   r3   propertyr+   r-   r,   r(   r   r;   r?   r:   r0   r.   r   r      s     <;  98  &* >    <	 
 # 0#          9r0   r   c                       e Zd Z	 edd       Zy)WizardBreakableContextc                     	 y r'   r:   r2   s    r.   break_zWizardBreakableContext.break_   r<   r0   NrD   )rE   rF   rG   r   rM   r:   r0   r.   rK   rK            r0   rK   c                       e Zd Z	 edd       Zy)WizardContinuableContextc                     	 y r'   r:   r2   s    r.   	continue_z"WizardContinuableContext.continue_   r<   r0   NrD   )rE   rF   rG   r   rR   r:   r0   r.   rP   rP      rN   r0   rP   c                  6    e Zd Z	 ddZddZd	dZddZddZy)
WizardTerminationContextc                    t        d      )Nz3exec() should not be called on termination context.)NotImplementedErrorr2   s    r.   r;   zWizardTerminationContext.exec_   s    !"WXXr0   c                8    	 t        | j                  t              S r'   )
isinstancer-   WizardCancelContextr2   s    r.   	is_cancelz"WizardTerminationContext.is_cancel       	 $++':;;r0   c                n    	 t        | j                  t              sy | j                  j                         S r'   )rX   r-   rY   messager2   s    r.   r]   z WizardTerminationContext.message   s.    	 $++':;{{""$$r0   c                8    	 t        | j                  t              S r'   )rX   r-   WizardReturnContextr2   s    r.   	is_returnz"WizardTerminationContext.is_return   r[   r0   c                F    	 t        | j                  t        t        f       S r'   )rX   r-   rY   r_   r2   s    r.   is_completez$WizardTerminationContext.is_complete   s$    	 dkk,?AT+UVVVr0   NrD   rA   rB   
str | None)rE   rF   rG   r;   rZ   r]   r`   rb   r:   r0   r.   rT   rT      s"    Y<%<Wr0   rT   c                  <     e Zd Z	 	 d	 	 	 	 	 	 	 d fdZddZ xZS )WizardTopLevelContextc                @    	 t         |   |||| |       y ||       y r'   )superr/   r*   r+   r,   r-   r(   	__class__s        r.   r/   zWizardTopLevelContext.__init__   s(    	 	'6>4uUvuUr0   c                ~    | j                   j                  | j                  j                         | j                        S r'   r!   make_body_contextr,   bodyr-   r2   s    r.   r;   zWizardTopLevelContext.exec_   s,     }}..t||/@/@/BDKKPPr0   r'   )r+   r    r,   zwizardParser.ParseWizardContextr-   z2WizardInterpreterContext[ContextState, Any] | Noner(   r@   rB   WizardBodyContext[ContextState])rE   rF   rG   r/   r;   __classcell__rj   s   @r.   rf   rf      sD     &*V>V 1V C	V
 #V"Qr0   rf   c                  P     e Zd ZU 	 ded<   	 d	 	 	 	 	 	 	 d fdZddZd	dZ xZS )
rY   rd   _messagec                &   t         |   ||||       d | _        | j                  j	                         r]| j
                  j                  j                  | j                  j	                         | j                  t              j                  | _        y y r'   )rh   r/   rt   r,   exprr!   evisitor	visitExprr(   strvalueri   s        r.   r/   zWizardCancelContext.__init__   sp     	'659<< MM22<<!!#TZZe M r0   c                    	 | j                   S r'   )rt   r2   s    r.   r]   zWizardCancelContext.message  s    	 }}r0   c                8    | j                   j                  |       S r'   r!   make_termination_contextr2   s    r.   r;   zWizardCancelContext.exec_      }}55d;;r0   r'   )r+   r    r,   zwizardParser.CancelStmtContextr-   r#   r(   r@   rc   rB   z&WizardTerminationContext[ContextState])rE   rF   rG   rH   r/   r]   r;   rq   rr   s   @r.   rY   rY      sJ    
  &*> 0 <	
 #<r0   rY   c                      e Zd Z	 ddZy)r_   c                8    | j                   j                  |       S r'   r}   r2   s    r.   r;   zWizardReturnContext.exec_  r   r0   Nr   rE   rF   rG   r;   r:   r0   r.   r_   r_     s    <r0   r_   c                  \     e Zd ZU 	 ded<   	 d	 	 	 	 	 	 	 d fdZddZ	 	 	 	 	 	 d	dZ xZS )
WizardBodyContextint_ichildc                8    t         |   ||||       d| _        y Nr   )rh   r/   r   ri   s        r.   r/   zWizardBodyContext.__init__(  s     	'659r0   c                "   | j                   j                  r,| j                  t        | j                   j                        k(  rPt	        | j
                  t              r| j                  j                  |       S | j                  j                  |       S | j                   j                  | j                     }| j                  j                  |       }|xj                  dz  c_        t	        |t        j                        rt	        |t        j                        r=|j                         j                         dk(  r| j                  j!                  ||      S | j                  j"                  j%                  ||j&                         |S t	        |t        j(                        r|j+                         r*| j                  j-                  |j+                         |      S |j/                         r*| j                  j1                  |j/                         |      S |j3                         r | j5                  |j3                         |      S |j7                         r*| j                  j9                  |j7                         |      S t;        |d| d      )Nr   ExeczUnknown context in body: .)r"   childrenr   lenrX   r$   rf   r!   r~   copy_parentcopy_contextr   ExprContextFunctionCallContext
IdentifiergetTextmake_exec_contextrw   rx   r(   StmtContext
assignmentmake_assignment_contextcompoundAssignment make_compound_assignment_contextcontrolFlowStmt_make_control_flow_contextkeywordStmtmake_keyword_contextr   )r*   childrn   s      r.   r;   zWizardBodyContext.exec_3  s   }}%%T]]=S=S9T)T$,,(=>}}==dCC==,,T22&&t||4 }}))$/ e\556 5,"B"BC$$&..0F:}}66udCCMM"",,UDJJ?Ke\556!}}<<U=M=M=OQUVV))+}}EE,,.  &&(66u7L7L7NPTUU""$}}99%:K:K:MtTTu(A%&JKKr0   c                   t        |t        j                        r*| j                  j	                  |j                         |      S t        |t        j                        r*| j                  j                  |j                         |      S t        |t        j                        r*| j                  j                  |j                         |      S t        |t        j                        r*| j                  j                  |j                         |      S t        |t        j                        r| j                  j!                  ||      S t        |t        j"                        r| j                  j%                  ||      S t        |t        j&                        r*| j                  j)                  |j+                         |      S t        |t        j,                        r| j                  j/                  ||      S t1        |d| d      )Nz Unknown control flow statement: r   )rX   r   
ForContextr!   make_for_loop_contextforStmtWhileContextmake_while_loop_context	whileStmt	IfContextmake_if_contextifStmtSelectContextmake_select_context
selectStmtBreakContextmake_break_contextContinueContextmake_continue_contextCancelContextmake_cancel_context
cancelStmtReturnContextmake_return_contextr   )r*   ctxr-   s      r.   r   z,WizardBodyContext._make_control_flow_contextZ  ss   
 c<223==66s{{}fMM\667==88&QQ\334==00vFF\778==44S^^5EvNN\667==33C@@\99:==66sFCC\778==44S^^5EvNN\778==44S&AAs&Fse1$MNNr0   r'   )r+   r    r,   zwizardParser.BodyContextr-   r#   r(   r@   rD   )r   z#wizardParser.ControlFlowStmtContextr-   rp   rB   r#   )rE   rF   rG   rH   r/   r;   r   rq   rr   s   @r.   r   r     sk    
 L &*	>	 *	 <		
 #	%LNO0O 0O 
5	Or0   r   c                      e Zd ZddZy)WizardBreakContextc                X   | }|j                         s=t        |t              s-|j                  }|j                         st        |t              s-t        |t              st	        | j
                  d      |j                         }| j                  j                  || j                        S )Nz&Invalid 'Break' statement encountered.)
r3   rX   rK   r-   r   r,   rM   r!   r   r(   )r*   loop_or_caser,   s      r.   r;   zWizardBreakContext.exec_v  s    DH++-j07
 (..L ++-j07

 ,(>?"F  @L?R?R?T}}))'4::>>r0   NrD   r   r:   r0   r.   r   r   s  s    ?r0   r   c                      e Zd ZddZy)WizardContinueContextc                X   | }|j                         r=t        |t              s-|j                  }|j                         rt        |t              s-t        |t              st	        | j
                  d      |j                         }| j                  j                  || j                        S )Nz)Invalid 'Continue' statement encountered.)
r3   rX   rP   r-   r   r,   rR   r!   r   r(   )r*   loopr,   s      r.   r;   zWizardContinueContext.exec_  s    <@!*T;S*T;;D !*T;S*T $ 89"I  @D~~?O}}))'4::>>r0   NrD   r   r:   r0   r.   r   r     s    ?r0   r   c                      e Zd ZddZy)WizardExecContextc                   ddl m} | j                  j                         }t	        | j
                  j                         j                               }t        |      dk7  r#t        | j
                  dt        |       d      | j                  j                  j                  |d   |t              j                  }	  ||      }t#        | j                  || j$                  |      S # t        $ r}| j
                  |_        |d }~ww xY w)Nr   )make_parse_wizard_contextr   z*Exec() expect exactly one argument, found r   r   )utilsr   r(   r)   listr,   argListrv   r   r   r!   rw   rx   ry   rz   r   _ctxrf   r-   )r*   r   r(   argsscriptr,   wes          r.   r;   zWizardExecContext.exec_  s    5

! DLL((*//12t9>! J3t9+UVW  ''11$q'5#FLL	/7G %T]]GT[[%PP  	llBGH	s   <C& &	D/DDNrD   r   r:   r0   r.   r   r     s    Qr0   r   c                      e Zd ZddZy)WizardIfContextc                   | j                   j                  |       }| j                   j                  j                  | j                  j                         |j                        r4| j                   j                  | j                  j                         |      S | j                  j                         D ]l  }| j                   j                  j                  |j                         |j                        sB| j                   j                  |j                         |      c S  | j                  j                         rB| j                   j                  | j                  j                         j                         |      S |S r'   )r!   r   rw   rx   r,   rv   r(   rm   rn   elifStmtelseStmt)r*   r-   eifcs      r.   r;   zWizardIfContext.exec_  s   **40==!!++DLL,=,=,?N==224<<3D3D3FOO--/ P==))33DIIKN==::499;OOP ||$$&}}66LL))+002 
 r0   NrD   r   r:   r0   r.   r   r     s    r0   r   c                       e Zd ZU 	 ded<   ded<   ded<   	 d	 	 	 	 	 	 	 d fdZddZdd	Z	 	 	 	 dd
Z	 	 	 	 ddZddZ	 xZ
S )WizardForLoopContextry   _nameSequence[Value[Any]]_valuesr   _indexc                   t         |   ||||       | j                  j                         r/| j	                  | j                  j                               | _        n.| j                  | j                  j                               | _        | j                  j                         j                         | _
        d| _        y r   )rh   r/   r,   forInHeader_for_in_headerr   _for_range_headerforRangeHeaderr   r   r   r   ri   s        r.   r/   zWizardForLoopContext.__init__  s     	'659<<##%..t||/G/G/IJDL11$,,2M2M2OPDL\\,,.668
r0   c                8    | j                   j                  |       S r'   r!   r   r2   s    r.   rM   zWizardForLoopContext.break_      }}((..r0   c                    | S r'   r:   r2   s    r.   rR   zWizardForLoopContext.continue_      r0   c                N   | j                   j                  j                  |j                  d      | j                  t
              }| j                   j                  j                  |j                  d      | j                  t
              }|j                  d      x}r6| j                   j                  j                  || j                  t
              }nt        d      }t        |j                  |j                  dz   |j                        D cg c]  }t        |       c}S c c}w )Nr   r   r   )	r!   rw   rx   rv   r(   r   r   rangerz   )r*   r   staende2byis          r.   r   z&WizardForLoopContext._for_range_header  s     --00::388A;

TWX--00::388A;

TWX!2''11"djj#FBqB"'		399q="(("KLQaLLLs   D"c                R   | j                   j                  j                  |j                         | j                        }t        |j                  t              r-|j                  j                  D cg c]  }t        |       c}S t        |j                  t              r#|j                  D cg c]  }t        |       c}S t        |j                  t              r#|j                  D cg c]  }t        |       c}S t        |d|j                   d      c c}w c c}w c c}w )Nz#Cannot iterable over value of type r   )r!   rw   rx   rv   r(   rX   rz   r   filesr   r   ry   r   type)r*   r   rz   fspss         r.   r   z#WizardForLoopContext._for_in_header  s     &&00TZZHekk:.&+kk&7&78E!H88[1(-4"E"I44S)&+kk2E!H22!:5::,aH  94 3s   1D.D+D$c                   | j                   t        | j                        k(  r| j                  j	                  |       S | j                  | j                      }| j                  j                  |       }|xj                   dz  c_         |j                  j                  | j                  |       | j                  j                  | j                  j                         |      S )Nr   )r   r   r   r!   r   r   r(   setr   rm   r,   rn   )r*   rz   r   s      r.   r;   zWizardForLoopContext.exec_  s    ;;#dll++==,,T22 T[[) }}))$/q

tzz5) }}..t||/@/@/BDIIr0   r'   )r+   r    r,   zwizardParser.ForStmtContextr-   r#   r(   r@   rD   )r   z"wizardParser.ForRangeHeaderContextrB   r   )r   zwizardParser.ForInHeaderContextrB   r   )rE   rF   rG   rH   r/   rM   rR   r   r   r;   rq   rr   s   @r.   r   r     s    

 J!!K &*> - <	
 #"/M5M	M2	"Jr0   r   c                  $    e Zd ZddZddZddZy)WizardWhileLoopContextc                8    | j                   j                  |       S r'   r   r2   s    r.   rM   zWizardWhileLoopContext.break_&  r   r0   c                    | S r'   r:   r2   s    r.   rR   z WizardWhileLoopContext.continue_)  r   r0   c                f   | j                   j                  |       }| j                   j                  j                  | j                  j                         |j                        r4| j                   j                  | j                  j                         |      S | j                   j                  |      S r'   )
r!   r   rw   rx   r,   rv   r(   rm   rn   r   )r*   r   s     r.   r;   zWizardWhileLoopContext.exec_,  s~    }}))$/ ==!!++DLL,=,=,?L==224<<3D3D3FMM }}((..r0   NrD   )rE   rF   rG   rM   rR   r;   r:   r0   r.   r   r   !  s    
//r0   r   c                      e Zd ZddZy)WizardAssignmentContextc                T   | j                   j                  |       }| j                  j                         j	                         }| j                   j
                  j                  | j                  j                         |j                        }|j                  j                  ||       |S r'   )
r!   r   r,   r   r   rw   rx   rv   r(   r   )r*   r-   namerz   s       r.   r;   zWizardAssignmentContext.exec_=  s    **40 LL++-557 !MM22<<LL
 	u%r0   NrD   r   r:   r0   r.   r   r   7  s    r0   r   c                      e Zd ZddZy)WizardCompoundAssignmentContextc                   | j                   j                  |       }| j                  j                         j	                         }| j                   j
                  j                  | j                  j                         |j                        }||j                  j                  vrt        | j                  |      | j                  j                         rt        j                  }n| j                  j                         rt        j                  }n| j                  j!                         rt        j"                  }n| j                  j%                         rt        j&                  }nz| j                  j)                         rt        j*                  }nO| j                  j-                         rt        j.                  }n$t1        | j                  d| j                   d      	  ||j                  j                  |   |      }|j                  j9                  ||       |S # t2        $ r%}t5        | j                  t7        |            |d }~ww xY w)NzUnknown compound operation: r   )r!   r   r,   r   r   rw   rx   rv   r(   	variablesr   CompoundExpr   __pow__CompoundMul__mul__CompoundDiv__div__CompoundMod__mod__CompoundAdd__add__CompoundSub__sub__r   	TypeErrorr   ry   r   )r*   r-   r   rz   optes         r.   r;   z%WizardCompoundAssignmentContext.exec_S  s   **40 LL++-557 !MM22<<LL
 v||---!$,,55 <<##%B\\%%'B\\%%'B\\%%'B\\%%'B\\%%'B" <T\\N!L 	Av||--d3U;E 	u%  	A!$,,B8b@	As   ! H 	I( IINrD   r   r:   r0   r.   r   r   M  s    'r0   r   c           	     H   | j                   j                  |j                         |t              j                  }g }g }|j                         D ]  }| j                   j                  |j                  d      |t              | j                   j                  |j                  d      |t              | j                   j                  |j                  d      |t              }	}}|j                  }
d}|
j                  d      r|
dd  }
d}|j                  t        |
|j                  |	j                  j                         r|	j                  nd              |s
|j                  |d            t        |t        j                        s|s|j                  |d          |||fS )Nr   r   r   F|T)rw   rx   rv   ry   rz   optionTuple
startswithappendr   striprX   r   SelectManyContext)r+   r,   r(   descriptionoptionsdefaultsoptabcr   isdefs               r.   parse_select_optionsr  }  sU    "",,W\\^UCHNNK"$G#%H""$ )&&sxx{E3?&&sxx{E3?&&sxx{E3? 1 ww??38DEqww177==?M	

 OOGBK('), g|==>x
#))r0   _SelectOneOrManyRuleContextc                       e Zd ZU ded<   ded<   ded<   ded<   	 	 	 	 	 	 d fdZedd       Zedd	       Zdd
Z	 	 ddZ	 xZ
S )WizardSelectContextry   _descriptionlist[SelectOption]_options_default	_selectedc                |    t         |   |||       t        ||| j                        \  | _        | _        | _        y r'   )rh   r/   r  r(   r  r!  	_defaultsr*   r+   r,   r-   rj   s       r.   r/   zWizardSelectContext.__init__  s9     	'62;OWdjj<
84=$.r0   c                    	 | j                   S r'   )r  r2   s    r.   r  zWizardSelectContext.description  s    	    r0   c                    	 | j                   S r'   )r!  r2   s    r.   r  zWizardSelectContext.options  r5   r0   c                ^    	 | j                   j                  |       }t        |      |_        |S r'   )r!   r   r   r#  )r*   r  r)   s      r.   _selectzWizardSelectContext._select  s-    	 }}))$/gr0   c                x    | j                   j                  | j                  | j                  | j                        S r'   )r!   make_select_cases_contextr#  r,   r-   r2   s    r.   r;   zWizardSelectContext.exec_  s.     }}66NNDLL$++
 	
r0   )r+   r    r,   r  r-   r#   )rB   ry   rB   Sequence[SelectOption])r  r.  rB   r
   )rB   zCWizardSelectCasesContext[ContextState, _SelectOneOrManyRuleContext])rE   rF   rG   rH   r/   rI   r  r  r*  r;   rq   rr   s   @r.   r  r    s~      !  !  "!

>

 -

 <	

 ! !  
	L
r0   r  c                  F     e Zd Z	 	 	 	 	 	 d fdZedd       ZddZ xZS )WizardSelectOneContextc                "   t         |   |||       t        | j                        dk7  rT| j                  j
                  j                  t        j                  t        |d      d       | j                  d   g| _        | j                  | _
        y )Nr   z7SelectOne statement should have a single default value.zFSelectOne statement should have a single default, using the first one.r   )rh   r/   r   r%  r!   severityraise_or_warnr   MULTIPLE_DEFAULTS_IN_SELECT_ONr   r#  r&  s       r.   r/   zWizardSelectOneContext.__init__  s     	'62 t~~!#MM""0044M #nnQ/0DN r0   c                "    	 | j                   d   S r   r%  r2   s    r.   defaultzWizardSelectOneContext.default	  s    	 ~~a  r0   c                (    	 | j                  |g      S r'   r*  )r*   options     r.   selectzWizardSelectOneContext.select  s    	 ||VH%%r0   )r+   r    r,   zwizardParser.SelectOneContextr-   r#   )rB   r   )r:  r   rB   z$WizardSelectOneContext[ContextState])rE   rF   rG   r/   rI   r7  r;  rq   rr   s   @r.   r0  r0    s=    (>( /( <	(0 ! !
&r0   r0  c                  N     e Zd Z	 	 	 	 	 	 d fdZedd       Z	 	 	 	 ddZ xZS )WizardSelectManyContextc                J    t         |   |||       | j                  | _        y r'   )rh   r/   r%  r#  r&  s       r.   r/   z WizardSelectManyContext.__init__!  s#     	'62 r0   c                    	 | j                   S r'   r6  r2   s    r.   r  z WizardSelectManyContext.defaults,  s    	 ~~r0   c                &    	 | j                  |      S r'   r9  )r*   r  s     r.   r;  zWizardSelectManyContext.select4  s    	 ||G$$r0   )r+   r    r,   zwizardParser.SelectManyContextr-   r#   r-  )r  r.  rB   z%WizardSelectManyContext[ContextState])rE   rF   rG   r/   rI   r  r;  rq   rr   s   @r.   r=  r=    sM    	(>	( 0	( <		(  %-%	.%r0   r=  c                       e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   	 	 	 	 	 	 	 	 d fdZddZddZ xZS )WizardSelectCasesContextr   r!  rC   _ismanyz"list[wizardParser.CaseStmtContext]_casesz&wizardParser.DefaultStmtContext | Noner"  r   r   _found_fallthroughc                x   	 t         |   |||       t        |      | _        t	        | j
                  t        j                        rd| _        nd| _        t        |j                         j                               | _        |j                         j                         | _        d| _        d| _        d| _        y )NFTr   )rh   r/   r   r!  rX   r,   r   SelectOneContextrC  selectCaseListcaseStmtrD  defaultStmtr"  r   rE  rF  )r*   r+   r  r,   r-   rj   s        r.   r/   z!WizardSelectCasesContext.__init__S  s    	 	'62WdllL$A$AB DLDL7113<<>?..0<<>!r0   c                J    | j                   j                  |       }d|_        |S )NF)r!   r   rF  )r*   r)   s     r.   rM   zWizardSelectCasesContext.break_q  s%    }}))$/! r0   c                b   | j                   r3| j                  s'| j                  s| j                  j	                  |       S | j                  j                  |       }| j                  t        | j                        k  r| j                  | j                     }|xj                  dz  c_        | j                  j                  j                  |j                         |j                  t              | j                  st        fd| j                  D              r*d|_         d|_        | j                  j!                  ||      S |S | j"                  rE| j                  s| j                   s-d|_         | j                  j!                  | j"                  |      S | j                  j	                  |       S )Nr   c              3  P   K   | ]  }|j                   j                  k(    y wr'   )r   rz   ).0sopttargets     r.   	<genexpr>z1WizardSelectCasesContext.exec_.<locals>.<genexpr>  s#      (.2		V\\)(s   #&T)rE  rC  rF  r!   r   r   r   r   rD  rw   rx   rv   r(   ry   anyr!  make_case_contextr"  )r*   snextcaserQ  s      @r.   r;   zWizardSelectCasesContext.exec_y  sI   ;;t||D4E4E==,,T22 **40 ;;T[[));;t{{+DLLAL!%!7!7!A!A		U[[#"F
   C (6:mm( %  $ &*"}}66tUCC L ]] 1 1EL==224==%HH }}((..r0   )r+   r    r  r.  r,   r  r-   r#   rD   )rE   rF   rG   rH   r/   rM   r;   rq   rr   s   @r.   rB  rB  C  sc    
 !  M..44KL">" (" -	"
 <"<)/r0   rB  c                      e Zd ZddZy)WizardCaseContextc                ~    | j                   j                  | j                  j                         | j                        S r'   rl   r2   s    r.   r;   zWizardCaseContext.exec_  s*    }}..t||/@/@/BDKKPPr0   Nro   r   r:   r0   r.   rX  rX    s    
Qr0   rX  N)r+   r    r,   z>wizardParser.SelectOneContext | wizardParser.SelectManyContextr(   r   rB   z2tuple[str, list[SelectOption], list[SelectOption]])L
__future__r   abcr   collections.abcr   typingr   r   r   r	   r
   r   antlr4r   antlr4.wizardParserr   errorsr   r   r   r   managerr   r2  r   r(   r   rz   r   r   r   r   r   r+   r   r   r   rK   rP   ParseWizardContextrT   rf   CancelStmtContextrY   r   r_   BodyContextr   r   r   r   r   r   r   IfStmtContextr   ForStmtContextr   WhileStmtContextr   AssignmentContextr   CompoundAssignmentContextr   r  rH  r  r  r  r0  r=  rB  CaseStmtContextDefaultStmtContextrX  r:   r0   r.   <module>rl     s4  
 #  $ G G $ . T T "    2 2 "8 m+<=d9w|['@A d9NW\2 "w|4 "(W\<+J+JJK(WVQ\<+J+JJKQ<!<\<+I+IIJ!<H<\<+E+EEF<RO\<+C+CCDROj?\<+D+DDE?*?\<+G+GGH?&Q\<+K+KKLQ6\<+E+EEF,RJ\<+F+FFG<(\*RJj/\<+H+HHI<(\*/,&&	(,-..	0-`#*:#*K#* #* 8	#*L &!!!"" A
\+FFGA
H-&l&C&CCD-&`"%l&D&DDE"%J_/\+FFG<(_/DQl22\5T5TTTQr0   