+
    <=i                         R t ^ RIHt ^ RIHt ]R,          R"8  d   ^ RIHt M^ RIHt ^ RI5 R t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR]	R]
R]R]R]R]R]R]R]R]R]R]R]/tR  tR!# )#a  
XML parser.  One function for each top-level element in the schema.

Most functions just declare a new object and add it to the module.
For typedefs, eventcopies, xidtypes, and other aliases though,
we do not create a new type object, we just record the existing one under a new name.
)join)version_info:N   N)parse)*c                   ^ RI Hp VP                  ^,           Vn        \        VP                  RV P
                  ,          4      p\        V4      P                  4       pVP                  V4      p\        W4       VP                  ^,
          Vn        VP                  V P
                  4      '       g   VP                  V P
                  V4       R# R# )z
For imports, we load the file, create a new namespace object,
execute recursively, then record the import (for header files, etc.)
)statez%s.xmlN)xcbgenr   import_levelr   dirtextr   getroot	Namespaceexecute
has_import
add_import)nodemodule	namespacer   new_filenew_rootnew_namespaces   &&&    3/usr/lib/python3.14/site-packages/xcbgen/matcher.pyimport_r      s      --1FIMM8dii#78HX&&(HOOH-MF" --1FTYY''$))]3 (    c                     V P                  R 4      pVP                  V3,           pVP                  V P                  R4      4      pVP                  W2P                  WE4       R# )newnameoldnameNgetprefixget_typeadd_typensr   r   r   idnametypes   &&&   r   typedefr(   #   sK    	)	Bre#D??488I./D
OOBd1r   c                     V P                  R 4      pVP                  V3,           pVP                  R4      pVP                  W2P                  WE4       R# r&   CARD32Nr   r$   s   &&&   r   xidtyper,   )   B    	&	Bre#D??8$D
OOBd1r   c                     V P                  R 4      pVP                  V3,           pVP                  R4      pVP                  W2P                  WE4       R# r*   r   r$   s   &&&   r   xidunionr/   /   r-   r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  W2P                  WE4       R# r&   N)r   r    Enumr"   r#   r$   s   &&&   r   enumr3   5   s>    	&	Bre#DD
OOBd1r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  W2P                  WE4       R# r1   )r   r    Structr"   r#   r$   s   &&&   r   structr6   ;   s>    	&	Bre#D$D
OOBd1r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  W2P                  WE4       R# r1   )r   r    EventStructr"   r#   r$   s   &&&   r   eventstructr9   A   s>    	&	Bre#Dt"D
OOBd1r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  W2P                  WE4       R# r1   )r   r    Unionr"   r#   r$   s   &&&   r   unionr<   G   s>    	&	Bre#DD
OOBd1r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  W4V4       R# r1   )r   r    Requestadd_requestr$   s   &&&   r   requestr@   M   s<    	&	Bre#D4D
r&r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  V P                  R4      VR4       VP	                  W4V4       R# r&   numberTN)r   r    Event
add_opcode	add_eventr   r   r   r%   r&   events   &&&   r   rH   rH   S   W    	&	Bre#D$E	TXXh't4
Ru%r   c                     V P                  R 4      pVP                  V3,           pVP                  V P                  R4      4      pVP                  V P                  R4      VR4       VP	                  W4V4       R# r&   refrC   FN)r   r    	get_eventrE   rF   rG   s   &&&   r   	eventcopyrN   Z   e    	&	Bre#DTXXe_-E	TXXh'u5
Ru%r   c                     V P                  R 4      pVP                  V3,           p\        W@4      pVP                  V P                  R4      VR4       VP	                  W4V4       R# rB   )r   r    ErrorrE   	add_errorr   r   r   r%   r&   errors   &&&   r   rT   rT   a   rI   r   c                     V P                  R 4      pVP                  V3,           pVP                  V P                  R4      4      pVP                  V P                  R4      VR4       VP	                  W4V4       R# rK   )r   r    	get_errorrE   rR   rS   s   &&&   r   	errorcopyrW   h   rO   r   importr(   r,   r/   r3   r6   r9   r<   r@   rH   rN   rT   rW   c                 z    \        VP                  4       F!  p\        VP                  ,          ! W V4       K#  	  R # )N)listrootfuncstag)r   r   elts   && r   r   r   }   s'    INN#cggsI. $r   N)   r_   )__doc__os.pathr   sysr   xml.etree.ElementTreer   xml.etree.cElementTreexcbgen.xtypesr   r(   r,   r/   r3   r6   r9   r<   r@   rH   rN   rT   rW   r\   r    r   r   <module>rg      s     v+, 4 2222222'&&&& 
G	W	W	h	$	F		5	W	5	y	5	y	"/r   