
    khW                     f    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ dZ G d d	e      Zy)
    )Enum)ATN)	ATNConfig)ATNConfigSet)RuleStopState)SemanticContextNc                   P   e Zd ZdZdZdZededefd       Z	edefd       Z
edefd       Zed	efd
       Zed	efd       Zed	efd       Zed	efd       Zed	efd       Zed	efd       Zed	efd       Zedefd       Zedefd       Zedefd       Zed	efd       Zy)PredictionModer         modeconfigsc                 N   | j                  |      ry|t        j                  k(  rK|j                  r?t	               }|D ].  }t        |t        j                        }|j                  |       0 |}| j                  |      }| j                  |      xr | j                  |       S )NT)configsemantic)allConfigsInRuleStopStatesr
   SLLhasSemanticContextr   r   r   NONEaddgetConflictingAltSubsetshasConflictingAltSethasStateAssociatedWithOneAlt)clsr   r   dupcaltsetss         U/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/atn/PredictionMode.py#hasSLLConflictTerminatingPredictionz2PredictionMode.hasSLLConflictTerminatingPrediction   s     ))'2 >%%% ))"n  A!_5I5IJAGGAJ  ..w7''0b9Y9YZa9b5bb    c                 &    t        d |D              S )Nc              3   P   K   | ]  }t        |j                  t                 y wN
isinstancestater   .0cfgs     r   	<genexpr>z:PredictionMode.hasConfigInRuleStopState.<locals>.<genexpr>        KC:cii7K   $&anyr   r   s     r   hasConfigInRuleStopStatez'PredictionMode.hasConfigInRuleStopState       K7KKKr    c                 &    t        d |D              S )Nc              3   P   K   | ]  }t        |j                  t                 y wr#   r$   r'   s     r   r*   z<PredictionMode.allConfigsInRuleStopStates.<locals>.<genexpr>   r+   r,   )allr/   s     r   r   z)PredictionMode.allConfigsInRuleStopStates   r1   r    r   c                 $    | j                  |      S r#   )getSingleViableAltr   r   s     r   resolvesToJustOneViableAltz)PredictionMode.resolvesToJustOneViableAltp  s    %%g..r    c                 &    | j                  |       S r#   )hasNonConflictingAltSetr7   s     r   allSubsetsConflictz!PredictionMode.allSubsetsConflict|  s    ..w777r    c                 &    t        d |D              S )Nc              3   8   K   | ]  }t        |      d k(    ywr   Nlenr(   altss     r   r*   z9PredictionMode.hasNonConflictingAltSet.<locals>.<genexpr>  s     6d3t9>6   r-   r7   s     r   r:   z&PredictionMode.hasNonConflictingAltSet  s    6g666r    c                 &    t        d |D              S )Nc              3   8   K   | ]  }t        |      d kD    ywr>   r?   rA   s     r   r*   z6PredictionMode.hasConflictingAltSet.<locals>.<genexpr>  s     5T3t9q=5rC   r-   r7   s     r   r   z#PredictionMode.hasConflictingAltSet  s    5W555r    c                 l    |syt        t        |            t        fdt        |      D              S )NTc              3   (   K   | ]	  }|k(    y wr#    )r(   rB   firsts     r   r*   z1PredictionMode.allSubsetsEqual.<locals>.<genexpr>  s     ;T45=;s   )nextiterr4   )r   r   rI   s     @r   allSubsetsEqualzPredictionMode.allSubsetsEqual  s,    T']#;T'];;;r    c                     | j                  |      }t        |      dk(  rt        t        |            S t        j
                  S Nr   )getAltsr@   rJ   rK   r   INVALID_ALT_NUMBER)r   r   r4   s      r   getUniqueAltzPredictionMode.getUniqueAlt  s5    kk'"s8Q;S	?"%%%r    c                 &    t        j                  | S r#   )setunionr7   s     r   rO   zPredictionMode.getAlts  s    yy'""r    c                    t               }|D ]k  }t        |j                  j                  |j                  f      }|j                  |d       }|t               }|||<   |j                  |j                         m |j                         S r#   )
dicthashr&   stateNumbercontextgetrS   r   altvalues)r   r   configToAltsr   hrB   s         r   r   z'PredictionMode.getConflictingAltSubsets  s|    v 	Aagg))19956A##At,D|u"&QHHQUUO	 ""$$r    c                     t               }|D ]T  }|j                  |j                  d       }|t               }|||j                  <   |j	                  |j
                         V |S r#   )rV   rZ   r&   rS   r   r[   )r   r   mr   rB   s        r   getStateToAltMapzPredictionMode.getStateToAltMap  s[    F 	A55$'D|u!!''
HHQUUO	 r    c                 `    t        d | j                  |      j                         D              S )Nc              3   8   K   | ]  }t        |      d k(    ywr>   r?   rA   s     r   r*   z>PredictionMode.hasStateAssociatedWithOneAlt.<locals>.<genexpr>  s     Ud3t9>UrC   )r.   ra   r\   r/   s     r   r   z+PredictionMode.hasStateAssociatedWithOneAlt  s'    Uc.B.B7.K.R.R.TUUUr    c                     t               }|D ]>  }t        |      }|j                  |       t        |      dkD  s.t        j
                  c S  t        |      S rN   )rS   minr   r@   r   rP   )r   r   
viableAltsrB   minAlts        r   r6   z!PredictionMode.getSingleViableAlt  sQ    U
 	.DYFNN6":q ---		.
 :r    N)__name__
__module____qualname__r   LLLL_EXACT_AMBIG_DETECTIONclassmethodr
   r   r   r0   r   listr8   r;   r:   r   rL   rQ   rO   r   ra   r   r6   rH   r    r   r
   r
      s   , C& 
B$  !~ cn cl c cF Ll L L L L L` / / / 8 8 8 7T 7 7 6$ 6 6 <T < < &$ & & #T # # 	%l 	% 	%& l   V, V V   r    r
   )enumr   antlr4.atn.ATNr   antlr4.atn.ATNConfigr   antlr4.atn.ATNConfigSetr   antlr4.atn.ATNStater   antlr4.atn.SemanticContextr   r
   rH   r    r   <module>ru      s,      * 0 - 6^T ^r    