
    kh                         d dl Z ddlmZ ddlmZ ddlmZmZ e j                   G d de	             Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)    N   )
html_paths   )	TokenType)parse_identifierparse_stringc                   r    e Zd Z ej                         Z ej                         Z ej                         Zy)_AttributeOrClassNameN)__name__
__module____qualname__cobblefieldnamevalueappend     b/var/www/teggl/fontify/venv/lib/python3.12/site-packages/mammoth/styles/parser/html_path_parser.pyr
   r
      s)    6<<>DFLLNEV\\^Fr   r
   c                     | j                  t        j                  d      rt        j                  S t        j
                  t        |             S )N!)try_skipr   SYMBOLr   ignorepath_parse_html_path_elementstokenss    r   parse_html_pathr      s7    y''-   8@AAr   c                    g }| j                         t        j                  k(  r|j                  t	        |              | j                  t        j                  d ft        j                  dff      rm| j                  t        j                         |j                  t	        |              | j                  t        j                  d ft        j                  dff      rm|S )N>)	peek_token_typer   
IDENTIFIERr   _parse_elementtry_skip_many
WHITESPACEr   skip)r   elementss     r   r   r      s    H9#7#77v./""Y%9%94$@9CSCSUXBY#Z[KK	,,-OON623 ""Y%9%94$@9CSCSUXBY#Z[ Or   c                 h   t        |       }t        |       }t        |       }t        |       }i }|D ]g  }|j                  r@|j                  |j                        r%||j                  xx   d|j                  z   z  cc<   O|j                  ||j                  <   i t        j                  ||||      S )N )
attributesfresh	separator)
_parse_tag_names_parse_attribute_or_class_names_parse_is_fresh_parse_separatorr   getr   r   r   element)r   	tag_namesattributes_listis_freshr-   r+   	attributes          r   r$   r$   #   s     (I5f=Ov&H (IJ$ 9	
y~~ >y~~&#	*??&)2Jy~~&	9 	 r   c                     t        |       g}| j                  t        j                  d      r;|j	                  t        |              | j                  t        j                  d      r;|S )N|)r   r   r   r   r   )r   r4   s     r   r.   r.   8   sU    !&)*I
//)**C
0)&12 //)**C
0 r   c                 L    g }	 t        |       }|	 |S |j                  |       ")N)"_try_parse_attribute_or_class_namer   )r   attribute_or_class_namesattribute_or_class_names      r   r/   r/   A   s=    !
"DV"L"* $# %++,CD r   c                     | j                  t        j                  d      rt        |       S | j                  t        j                  d      rt	        |       S y )N[.)is_nextr   r   _parse_attribute_parse_class_namer   s    r   r;   r;   N   sC    ~~i&&,''~~i&&, ((r   c                 
   | j                  t        j                  d       t        |       }| j                  t        j                  d       t	        |       }| j                  t        j                  d       t        ||d      S )Nr?   =]Fr   r   r   )r'   r   r   r   r   r
   )r   r   r   s      r   rB   rB   W   sa    
KK	  #&F#D
KK	  #& E
KK	  #& d%FFr   c                 t    | j                  t        j                  d       t        |       }t	        d|d      S )Nr@   classTrG   )r'   r   r   r   r
   )r   
class_names     r   rC   rC   `   s/    
KK	  #&!&)J gZMMr   c                 h    | j                  t        j                  dft        j                  dff      S )N:r,   )r%   r   r   r#   r   s    r   r0   r0   f   s6    			3			w'!  r   c                    | j                  t        j                  dft        j                  dff      }|rM| j	                  t        j                  d       t        |       }| j	                  t        j                  d       |S y )NrL   r-   ())r%   r   r   r#   r'   r   )r   is_separatorr   s      r   r1   r1   m   sr    ''			3			{+) L I$$c*V$I$$c*r   )r    r   	tokeniserr   token_parserr   r   dataobjectr
   r   r   r$   r.   r/   r;   rB   rC   r0   r1   r   r   r   <module>rV      se        8 F  B
*
$GNr   