
    kj	                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  \ " S S5      5       r\ " S S	5      5       r	SS
 jr
/ SQrg)    )annotations)	dataclass)field)List)Optionalc                  8    \ rS rSr% S\S'   S\S'   SrS\S'   Srg	)
Field
   strnametypeFboolis_array N)__name__
__module____qualname____firstlineno____annotations__r   __static_attributes__r       T/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Meta/Generators/libjs_bytecode_def.pyr	   r	   
   s    
I
IHdr   r	   c                  \    \ rS rSr% S\S'   S\S'   \" \S9rS\S'   SrS	\S
'   Sr	S	\S'   Sr
g)OpDef   r   r   base)default_factoryzList[Field]fieldsFr   is_terminator
is_nothrowr   N)r   r   r   r   r   r   listr   r   r    r   r   r   r   r   r      s/    
I
I5FK5M4Jr   r   c           	     d   [        U SSS9 nUR                  5       nS S S 5        / nS nW GH  nUR                  5       nU(       d  M  UR                  S5      (       d  UR                  S5      (       a  MK  UR                  S5      (       a  Ub  [	        S5      eU[        S5      S  R                  5       nSU;   a5  UR                  SS	5      u  pUR                  5       n
U	R                  5       nOUR                  5       n
S
n[        XS9nM  US:X  a$  Uc  [	        S5      eUR                  U5        S nGM  Uc  GM  UR                  S5      (       a  US:X  a  SUl	        OUS:X  a  SUl
        GMG  SU;  a  [	        SU< 35      eUR                  SS	5      u  pUR                  5       nUR                  5       nSnUR                  S5      (       a  SnUS S R                  5       nUR                  R                  [        XUS95        GM     Ub  [	        S5      eU$ ! , (       d  f       GN
= f)Nrzutf-8)encodingz//#zop z Nested op blocks are not allowed<   Instruction)r   r   endopzendop without corresponding op@z@terminatorTz@nothrow:zMalformed field line: Fz[])r   r   r   z Unclosed op block at end of file)open	readlinesstrip
startswithRuntimeErrorlensplitr   appendr   r    endswithr   r	   )pathflinesops
current_opraw_linestrippedrest	name_part	base_partr   r   lhsrhs
field_name
field_typer   s                    r   parse_bytecode_defrD      s   	dC'	*a 
+ C"&J>>#t$$(;(;C(@(@u%%%"#EFFCJL)//1Dd{'+zz#q'9$	 ( (zz|$D4Jw!"#CDDJJz"Js##=(+/
(Z'(,
%h!7|DEE>>#q)YY[
YY[
t$$H#CR..0J  JRZ![\c f =>>Jy 
+	*s   H  
H/)r	   r   rD   N)r6   r   returnzList[OpDef])
__future__r   dataclassesr   r   typingr   r   r	   r   rD   __all__r   r   r   <module>rJ      sS    " !         =@r   