
    khcY                     *   d dl Z e j                  d   dkD  rd dlmZ n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 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 dlmZmZ d dlmZ d dl m!Z!m"Z"m#Z#  G d de!      Z$ G d de      Z%y)    N      )TextIO)TokenStream)TokenFactory)DefaultErrorStrategy)InputStream)
Recognizer)RuleContext)ParserRuleContext)Token)Lexer)ATNDeserializer)ATNDeserializationOptions)UnsupportedOperationExceptionRecognitionException)ParseTreePatternMatcher)ParseTreeListenerTerminalNode	ErrorNodec                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TraceListener_parserc                     || _         y N)r   )selfparsers     I/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/Parser.py__init__zTraceListener.__init__   s	        c                     t        d| j                  j                  |j                            z   dz   | j                  j                  j                  d      j                  z   | j                  j                         y )Nzenter   , LT(1)=r   fileprintr   	ruleNamesgetRuleIndex_inputLTtext_outputr   ctxs     r   enterEveryRulezTraceListener.enterEveryRule   r    j4<<11#2B2B2DEE
RUYUaUaUhUhUkUklmUnUsUssz~  {G  {G  {O  {O  	Pr    c                     t        dt        |j                        z   dz   | j                  j                  | j                  j
                  j                            z   | j                  j                         y )Nzconsume z rule r#   )r&   strsymbolr   r'   _ctxr(   r,   r   nodes     r   visitTerminalzTraceListener.visitTerminal"   si    j3t{{++h69O9OPTP\P\PaPaPnPnPp9qqx|  yE  yE  yM  yM  	Nr    c                      y r    r5   s     r   visitErrorNodezTraceListener.visitErrorNode&   s    r    c                     t        d| j                  j                  |j                            z   dz   | j                  j                  j                  d      j                  z   | j                  j                         y )Nzexit    r"   r   r#   r%   r-   s     r   exitEveryRulezTraceListener.exitEveryRule*   r0   r    N)	__name__
__module____qualname__	__slots__r   r/   r7   r:   r<   r9   r    r   r   r      s#    IPNPr    r   c                       e Zd ZdZ e       Zej                  fdede	f fdZ
d ZdefdZd Zd	 Zd
efdZd
efdZd Zd Zd Zd Zd ZdefdZd ZdBdededefdZd ZdefdZ d Z!defdZ"d Z#dCdede$d e%fd!Z&d" Z'd# Z(d$e)d%ed&efd'Z*d( Z+d$e)d)efd*Z,d+ Z-d$e)d%ed&ed,efd-Z.d$e)d%ed&efd.Z/d/e)fd0Z0d&efd1Z1d$e2d,efd2Z3d3efd4Z4d5efd6Z5d7 Z6d8 Z7d9efd:Z8dBd;e2fd<Z9d= Z:d> Z;d? Z<d@e=fdAZ> xZ?S )DParser)	r)   r,   _errHandler_precedenceStackr4   buildParseTrees_tracer_parseListeners_syntaxErrorsinputoutputc                    t         |           d | _        || _        t	               | _        t               | _        | j                  j                  d       d | _	        d| _
        d | _        d | _        d| _        | j                  |       y )Nr   T)superr   r)   r,   r   rC   listrD   appendr4   rE   rF   rG   rH   setInputStream)r   rI   rJ   	__class__s      r   r   zParser.__init__<   s     01 $$$Q' 	  $   $ E"r    c                 h   | j                   | j                   j                  d       | j                  j                  |        d | _        d| _        | j                  d       t               | _        | j                  j                  d       | j                  | j                  j                          y y )Nr   F)r)   seekrC   resetr4   rH   setTracerM   rD   rN   _interpr   s    r   rS   zParser.reset[   s    ;;"KKQt$	e $$$Q'<<#LL  $r    ttypec                 @   | j                         }|j                  |k(  r-| j                  j                  |        | j	                          |S | j                  j                  |       }| j                  r*|j                  dk(  r| j                  j                  |       |S N
getCurrentTokentyperC   reportMatchconsumerecoverInlinerE   
tokenIndexr4   addErrorNode)r   rW   ts      r   matchzParser.matchx   s      "665=((.LLN    ..t4A##b(8 		&&q)r    c                 @   | j                         }|j                  dkD  r-| j                  j                  |        | j	                          |S | j                  j                  |       }| j                  r*|j                  dk(  r| j                  j                  |       |S Nr   rZ   r[   )r   rc   s     r   matchWildcardzParser.matchWildcard   s      "66A:((.LLN    ..t4A##(: 		&&q)r    c                 F    | j                   
t               S | j                   S r   )rG   rM   rV   s    r   getParseListenerszParser.getParseListeners   s     --5tvO4;O;OOr    listenerc                 z    |t        d      | j                  g | _        | j                  j                  |       y )Nrj   )ReferenceErrorrG   rN   r   rj   s     r   addParseListenerzParser.addParseListener   s;     ,,'#%D ##H-r    c                     | j                   <| j                   j                  |       t        | j                         dk(  rd | _         y y y Nr   )rG   removelenrm   s     r   removeParseListenerzParser.removeParseListener   sG    +  ''14''(!++/D( , ,r    c                     d | _         y r   )rG   rV   s    r   removeParseListenerszParser.removeParseListeners   s
    #r    c                     | j                   H| j                   D ]8  }|j                  | j                         | j                  j                  |       : y y r   )rG   r/   r4   	enterRulerm   s     r   triggerEnterRuleEventzParser.triggerEnterRuleEvent   sL    + 00 .''		2		##H-. ,r    c                     | j                   Qt        | j                         D ]8  }| j                  j                  |       |j	                  | j                         : y y r   )rG   reversedr4   exitRuler<   rm   s     r   triggerExitRuleEventzParser.triggerExitRuleEvent   sQ    +$T%9%9: 2		""8,&&tyy12 ,r    c                     | j                   S r   )rH   rV   s    r   getNumberOfSyntaxErrorszParser.getNumberOfSyntaxErrors   s    !!!r    c                 B    | j                   j                  j                  S r   r)   tokenSource_factoryrV   s    r   getTokenFactoryzParser.getTokenFactory   s    {{&&///r    factoryc                 :    || j                   j                  _        y r   r   )r   r   s     r   setTokenFactoryzParser.setTokenFactory   s    +2(r    c                     | j                         }|t        d      | j                  j                  |d       }|:t	               }d|_        t        |      j                  |      }|| j                  |<   |S )NzDThe current parser does not support an ATN with bypass alternatives.T)getSerializedATNr   bypassAltsAtnCachegetr   generateRuleBypassTransitionsr   deserialize)r   serializedAtnresultdeserializationOptionss       r   getATNWithBypassAltszParser.getATNWithBypassAlts  s|    --/ /0vww((,,]DA>%>%@"CG"@$%;<HHWF5;D##M2r    patternpatternRuleIndexlexerc                     |<| j                         ,| j                         j                  }t        |t              r|}|t	        d      t        ||       }|j                  ||      S )Nz$Parser can't discover a lexer to use)getTokenStreamr   
isinstancer   r   r   compile)r   r   r   r   r   ms         r   compileParseTreePatternzParser.compileParseTreePattern  sh    =""$0"113??{E3'E=/0VWW#E40yy"233r    c                 "    | j                         S r   )r   rV   s    r   getInputStreamzParser.getInputStream&  s    ""$$r    c                 &    | j                  |       y r   )setTokenStreamr   rI   s     r   rO   zParser.setInputStream)  s    E"r    c                     | j                   S r   )r)   rV   s    r   r   zParser.getTokenStream,  s    {{r    c                 @    d | _         | j                          || _         y r   )r)   rS   r   s     r   r   zParser.setTokenStream0  s    

r    c                 8    | j                   j                  d      S Nr   )r)   r*   rV   s    r   r\   zParser.getCurrentToken8  s    {{~~a  r    msgoffendingTokenec                     || j                         }| xj                  dz  c_        |j                  }|j                  }| j	                         }|j                  | |||||       y r   )r\   rH   linecolumngetErrorListenerDispatchsyntaxError)r   r   r   r   r   r   rj   s          r   notifyErrorListenerszParser.notifyErrorListeners;  sc    !!113Na""&&002T>4aHr    c                 Z   | j                         }|j                  t        j                  k7  r| j	                         j                          | j                  d uxr t        | j                        dkD  }| j                  s|r| j                  j                  |       r| j                  j                  |      }n| j                  j                  |      }|rU| j                  D ]F  }t        |t              r|j!                  |       %t        |t"              s6|j%                  |       H |S rp   )r\   r]   r   EOFr   r_   rG   rr   rE   rC   inErrorRecoveryModer4   rb   addTokenNoder   r   r:   r   r7   )r   ohasListenerr6   rj   s        r   r_   zParser.consumeY  s      "66UYY!))+**$6V3t?S?S;TUV;V;33D9yy--a0yy--a0 $ 4 4 5H!$	2 //5#D,7 ..t4	5
 r    c                     | j                   j                  0| j                   j                  j                  | j                          y y r   )r4   	parentCtxaddChildrV   s    r   addContextToParseTreezParser.addContextToParseTreek  s3    99*II((3 +r    localctxstate	ruleIndexc                     || _         || _        | j                  j                  d      | j                  _        | j
                  r| j                          | j                  | j                          y y r   )	r   r4   r)   r*   startrE   r   rG   rx   )r   r   r   r   s       r   rw   zParser.enterRules  sZ    
	++..+		&&(,&&( -r    c                     | j                   j                  d      | j                  _        | j                  | j                          | j                  j                  | _        | j                  j                  | _        y rY   )	r)   r*   r4   stoprG   r|   invokingStater   r   rV   s    r   r{   zParser.exitRule|  sT    +		+%%'YY,,
II''	r    altNumc                 (   |j                  |       | j                  rn| j                  |k7  r_| j                  j                  I| j                  j                  j	                          | j                  j                  j                  |       || _        y r   )setAltNumberrE   r4   r   removeLastChildr   )r   r   r   s      r   enterOuterAltzParser.enterOuterAlt  sk    f% DII$9yy"".		##335		##,,X6	r    c                 R    t        | j                        dk(  ry| j                  d   S rf   )rr   rD   rV   s    r   getPrecedencezParser.getPrecedence  s)    t$$%q(((,,r    
precedencec                     || _         | j                  j                  |       || _        | j                  j                  d      | j                  _        | j                  | j                          y y r   )	r   rD   rN   r4   r)   r*   r   rG   rx   )r   r   r   r   r   s        r   enterRecursionRulezParser.enterRecursionRule  sY    
$$Z0	++..+		+&&( ,r    c                 D   | j                   }||_        ||_        | j                  j	                  d      |_        || _         |j                  | j                   _        | j                  r| j                   j                  |       | j                  | j                          y y rY   )r4   r   r   r)   r*   r   r   rE   r   rG   rx   )r   r   r   r   previouss        r   pushNewRecursionContextzParser.pushNewRecursionContext  s}    99%!&r*	"..		IIx(+&&( ,r    r   c                    | j                   j                          | j                  j                  d      | j                  _        | j                  }| j                  I| j                  |urB| j                          | j                  j                  | _        | j                  |ur:n|| _        ||_        | j                  r||j                  |       y y y rY   )rD   popr)   r*   r4   r   rG   r|   r   rE   r   )r   r   retCtxs      r   unrollRecursionContextszParser.unrollRecursionContexts  s    !!#+		+))9,))+ II//	 ))9, "DI %I$9v& %:r    c                 h    | j                   }|$|j                         |k(  r|S |j                  }|$y r   )r4   r(   r   )r   r   r.   s      r   getInvokingContextzParser.getInvokingContext  s;    iio!Y.
--C o r    c                 &    || j                   d   k\  S rY   )rD   )r   r   r   s      r   precpredzParser.precpred  s    T222666r    contextc                      y)NFr9   )r   r   s     r   	inContextzParser.inContext  s    r    r3   c                 N   | j                   j                  }| j                  }|j                  | j                     }|j                  |      }||v ryt        j                  |vry||j                  dk\  rt        j                  |v rx|j                  |j                     }|j                  d   }|j                  |j                        }||v ry|j                  }|"|j                  dk\  rt        j                  |v rxt        j                  |v r|t        j                  k(  ryy)NTFr   )rU   atnr4   statesr   
nextTokensr   EPSILONr   transitionsfollowStater   r   )r   r3   r   r.   s	followingr   rts           r   isExpectedTokenzParser.isExpectedToken  s    lliiJJtzz"NN1%	Y}}	)o#"3"3Q"65==I;UJJs'8'89M**1-Br~~6I"--C o#"3"3Q"65==I;U ==I%&EII*=r    c                 v    | j                   j                  j                  | j                  | j                        S r   )rU   r   getExpectedTokensr   r4   rV   s    r   r   zParser.getExpectedTokens   s'    ||11$**diiHHr    c                     | j                   j                  }|j                  | j                     }|j	                  |      S r   )rU   r   r   r   r   )r   r   r   s      r   "getExpectedTokensWithinCurrentRulez)Parser.getExpectedTokensWithinCurrentRule  s2    llJJtzz"~~a  r    ruleNamec                 L    | j                         j                  |d       }||S yrY   )getRuleIndexMapr   )r   r   r   s      r   r(   zParser.getRuleIndex	  s,    ((*..x>	 r    pc                     || j                   }t               }|T|j                         }|dk  r|j                  d       n|j                  | j                  |          |j
                  }|T|S )Nr   zn/a)r4   rM   r(   rN   r'   r   )r   r   stackr   s       r   getRuleInvocationStackzParser.getRuleInvocationStack  sg    9		Am(I{U#T^^I67A m r    c                 f    | j                   j                  D cg c]  }t        |       c}S c c}w r   )rU   decisionToDFAr2   )r   dfas     r   getDFAStringszParser.getDFAStrings&  s$    %)\\%?%?@cS@@@s   .c                    d}t        dt        | j                  j                              D ]  }| j                  j                  |   }t        |j                        dkD  s5|rt        | j                         t        dt        |j                        z   dz   | j                         t        |j                  | j                  | j                        d| j                         d} y )	NFr   r#   z	Decision : )endr$   T)rangerr   rU   r   r   r&   r,   r2   decisiontoStringliteralNamessymbolicNames)r   seenOneir   s       r   dumpDFAzParser.dumpDFA*  s    q#dll889: 	A,,,,Q/C3::q t||,kC$55;$,,Ocll4#4#4d6H6HIrX\XdXde	r    c                 .    | j                   j                  S r   )r)   
sourceNamerV   s    r   getSourceNamezParser.getSourceName6  s    {{%%%r    tracec                     |s#| j                  | j                         d | _        y | j                  | j                  | j                         t        |       | _        | j                  | j                         y r   )rs   rF   r   rn   )r   r   s     r   rT   zParser.setTrace<  sX    $$T\\2DL||'((6(.DL!!$,,/r    r   )NN)@r=   r>   r?   r@   dictr   sysstdoutr   r   r   rS   intrd   rg   ri   r   rn   rs   ru   rx   r|   r~   r   r   r   r   r2   r   r   r   r	   rO   r   r   r\   r   r   r   r_   r   r   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r(   r   r   r   r   boolrT   __classcell__)rP   s   @r   rB   rB   /   s   I :=** #[ # #>
!:# :P>.(9 .0+< 0$.2"03l 3
,
4c 
4C 
4u 
4%#; #; !Is I5 IK_ I<$4)!2 )3 )3 )(%6 s -)*; )3 )RU )be ))/@ ) )WZ )'0A '&3 7 7 7 $S :I!C { A	&0T 0r    rB   )&r  version_infotypingr   	typing.ioantlr4.BufferedTokenStreamr   antlr4.CommonTokenFactoryr   antlr4.error.ErrorStrategyr   antlr4.InputStreamr	   antlr4.Recognizerr
   antlr4.RuleContextr   antlr4.ParserRuleContextr   antlr4.Tokenr   antlr4.Lexerr   antlr4.atn.ATNDeserializerr   $antlr4.atn.ATNDeserializationOptionsr   antlr4.error.Errorsr   r   #antlr4.tree.ParseTreePatternMatcherr   antlr4.tree.Treer   r   r   r   rB   r9   r    r   <module>r     sm   
 A  2 2 ; * ( * 6   6 J S G G GP% P,U0j U0r    