
    }f	                         d dl 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  G d
 de      Z G d de      Z G d de      Zy)    N)Any   )EBNFBootstrapParser)Buffer)	PRAGMA_RE)ParserConfig)EBNFGrammarSemantics)ASTSemanticsc                   @     e Zd Z	 	 ddedz  def fdZd Zd Z xZS )
EBNFBufferNconfigsettingsc                Z    t        j                  d|| |d|}t        |   ||       y )N)r   ownerfilename)r    )r   newsuper__init__)selftextr   r   r   	__class__s        K/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/tatsu/parser.pyr   zEBNFBuffer.__init__   s=     !! 

<D
 	f-    c                 ^   d}|t        |      k  r||   }t        j                  t        |      rg|j	                  dd      d   d}}d|v r|j	                  dd      \  }}|j                         |j                         }}| j                  ||||||      }n|dz  }|t        |      k  r||fS )Nr   #r    z::)lenrematchr   splitstrippragma)	r   namelinesindexkwargsiline	directiveargs	            r   process_blockzEBNFBuffer.process_block   s    #e*n8Dxx	4(!%C!3A!63	9$%.__T1%=NIs!*!2CIIK3	KKieUAFQ #e*n e|r   c           	      j    |dk(  r*|j                  d      }| j                  ||||||dz         S |dz   S )Nincludez'"r   )r"   include_file)r   sourcer$   r+   r%   r&   r(   r   s           r   r#   zEBNFBuffer.pragma(   s@    9yy'H$$VXueQANNq5Lr   )NN)	__name__
__module____qualname__r   r   r   r,   r#   __classcell__r   s   @r   r   r      s3    
 &*.
 t#. .r   r   c                   @     e Zd Z	 	 	 ddedz  dedz  def fdZ xZS )
EBNFParserNr$   r   r   c                 x    |
t               }t        j                  d|||t        d|}t        |   |       y N)r   r$   	semanticstokenizerclsr   )r
   r   r   r   r   r   r   r$   r   r:   r   r   s        r   r   zEBNFParser.__init__2   sL     $I!! 
#	

 
 	 r   NNNr1   r2   r3   strr   r   r   r4   r5   s   @r   r7   r7   1   =      &*	!Dj! t#!
 ! !r   r7   c                   @     e Zd Z	 	 	 ddedz  dedz  def fdZ xZS )GrammarGeneratorNr$   r   r   c                 z    |t        |      }t        j                  d|||t        d|}t        |   |       y r9   )r	   r   r   r   r   r   r<   s        r   r   zGrammarGenerator.__init__F   sO     ,T2I!! 
#	

 
 	 r   r=   r>   r5   s   @r   rB   rB   E   r@   r   rB   )r   typingr   	bootstrapr   	bufferingr   grammarsr   infosr   parser_semanticsr	   r:   r
   r   r7   rB   r   r   r   <module>rJ      sD    	  *    2 #" "J!$ !(!* !r   