%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/guppy/gsl/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/guppy/gsl/__pycache__/Main.cpython-37.pyc

B

�]��=@s,ddlmZddlTGdd�d�ZGdd�d�ZGdd�d�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�ZGdd�de�Z	Gdd�de�Z
Gdd�de�ZGdd�de�ZGdd�de�Z
Gdd�de�ZGdd�d�ZGdd�de�ZGdd �d e�ZGd!d"�d"e�ZGd#d$�d$e�ZGd%d&�d&e�ZGd'd(�d(e�ZGd)d*�d*e�ZGd+d,�d,e�ZGd-d.�d.e�ZGd/d0�d0e�ZGd1d2�d2e�ZGd3d4�d4e�ZGd5d6�d6e�ZGd7d8�d8�ZGd9d:�d:�ZGd;d<�d<e�ZGd=d>�d>e�Z Gd?d@�d@e�Z!GdAdB�dBe�Z"GdCdD�dDe�Z#GdEdF�dFe#�Z$GdGdH�dHe#�Z%GdIdJ�dJe�Z&GdKdL�dLe�Z'GdMdN�dNe�Z(GdOdP�dPe(�Z)GdQdR�dRe(�Z*GdSdT�dT�Z+GdUdV�dVe�Z,GdWdX�dXe�Z-GdYdZ�dZe�Z.Gd[d\�d\e�Z/Gd]d^�d^e�Z0Gd_d`�d`�Z1Gdadb�dbe0�Z2Gdcdd�dde�Z3Gdedf�dfe�Z4Gdgdh�dhe�Z5Gdidj�dje�Z6Gdkdl�dle�Z7Gdmdn�dne�Z8dodp�Z9Gdqdr�dr�Z:Gdsdt�dte:�Z;Gdudv�dve:�Z<Gdwdx�dxe:�Z=Gdydz�dze:�Z>Gd{d|�d|e>�Z?Gd}d~�d~e>�Z@Gddx�dxe>�Z=Gd�d��d�e>�ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEe:e:e:e:e:e:e:e:e:e:e:e:e:e:e:e:e:e?e@e:e>e>e>e>e:e:e=e>e>e>e:eDeDeDeDeDeDeDeDeDe:e:eAeAeAeAeAeAeAe:e:e:e:e:e:e:e:e:e:e:d��<ZFd�d��ZGGd�d��d��ZHGd�d��d��ZIGd�d��d�eI�ZJGd�d��d�eI�ZKGd�d��d��ZLGd�d��d�eI�ZMGd�d��d�eI�ZNGd�d��d�eI�ZOGd�d��d��ZPd�S)��)�property_nondata)�*c@sbeZdZdd�Zdd�Zdeddfdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
ddd�Zddd�ZdS)�SpecEnvcCs(||_i|_i|_g|_d|_d|_dS)Nr)�mod�imported_packages�importing_packages�
error_reports�
num_errors�num_warnings)�selfr�r�A/opt/alt/python37/lib64/python3.7/site-packages/guppy/gsl/Main.py�__init__szSpecEnv.__init__cCsdd}d}|dk	r`|}|jd}|j}|dk	r@|j}|j|jd�}td||f�|r`td|�dS)N�z<unknown file>�)�indexz%s:%s:z    %r)r�src�filename�get_line�print)r�contextZlinetextr�node�linenorrrr
�errmsg_contexts
zSpecEnv.errmsg_contextNrrc	Cs�|j�|||||f�|r*|jd7_n|jd7_|�|�|rTtd|�ntd|�t�x,|D]$\}}|�|�td|�t�qlW|jr�ddl}|��n |j|j	kr�t
d��|dk	r�|�dS)Nrz*   %sz*** %sz    %srzToo many errors, giving up)r�appendr
r	rr�debug�pdbZ	set_trace�
max_errors�
TooManyErrors)	r�messager�	exception�more�harmless�msgZctxrrrr
�errors*



z
SpecEnv.errorcCs(g}x|D]}|�|�|j��q
W|S)N)�extend�
get_filers�
output_dir)r�	documents�filers�drrr
r&9s
zSpecEnv.get_filerscCs�|j�|�}|dkr�||jkr:|�dt|j���f|�d|j|<|�d|jjj	j
�d}|�||�}|�|�}||j|<|j|=|S)Nz+Invalid mutual import involving packages %rr�.z.gsl)
r�getrr$�list�keys�replacer�IO�path�sep�package_of_filename�	mkPackage)r�namer�pacrZiprrr
�import_package?s



zSpecEnv.import_packagec
s�i�i�����fdd��x|D]����}�|�q Wxdt����D]T\}}t|�dkrFtd|�x*|D]"\�}td���|jdf�qlWtd�qFWg}x�t����D]�\}}|�k�ri}x"|D]\�}d|���<d|_q�Wt|���}|�	�d�
|�}|�d	||f�q��|d
\}}x:|D]2\�}�|k�rLd|_nd|_|jf|j
|_
�q2Wq�W|�r�|�	�td
�x|D]}	td|	��q�WdS)Ncs�|j}|dkr0|j��}��|g���|f�n6|dkrZ|j��}��|g���|f�n|dkrfdSx|jD]}�|�qnWdS)NZlink_toZdefineZto_tester_only)�tag�arg�strip�
setdefaultr�children)r�tr5�ch)r*�defines�links�walkrr
rARs

z$SpecEnv.link_documents.<locals>.walkrz,Duplicate definition of name %r, defined in:z    %s line %szWill use the first one.Zlink_to_unresolvedz, z
%s used in %srZ
link_to_localZlink_to_externzUnresolved links:z  )Z
get_resultr-�items�lenrZget_doc_namerr8r.�sort�joinrZ
doc_name_noder<)
rr(rr5�dsZnodefsZusedZdefdZdefnodeZndr)r*r?r@rAr
�link_documentsMsD





zSpecEnv.link_documentscCs t|||�}|j|_|��|S)N)�PackageDescriptionr'�resolve_all)r�subr6rrr
r4�szSpecEnv.mkPackagercCs(|j}|dkr<|�d�r&|dd�}n|}|�|jjjd�}|jrV|jj�|j|�}n|jj�|�}|dk	rr|}n|j�	|�}|�
�}|�d|�d��|�d|�d��|�|�d��|�
�}||jkr�|j|S|jj|||d�}	|j}
td|�t|||	||�}|
|jk�r$||j|<|S)	Nz.gsl���r+s.filename: %s
zutf-8s.packname: : %s
)�nostripzMaking package subject %r)r�endswithr/r0r1r2�	input_dirrE�abspathZ	read_file�md5�update�encode�digestZ
package_cache�	SpecNodesZnode_of_stringr	r�PackageSubject)rrZpacknamerL�input_stringr�datarPrSrZnumerr�packagerrr
r3�s4



zSpecEnv.package_of_filenameFc	Csl|dkr|jj}||_|dkr"d}||_||_|dkr>|jj}||_yd|�|j||d��}	|	��}
|
sv|jdddd�|j	r�|r�t
d�|�|
�|j	r�|r�|�|
�}Wnt
k
r�d}YnXd}|j	�sx8|D]0}
|jj�|
�}t
d	d
�t|j���|��q�W|j�r0t
d|jdd|jdk�f�|j	�rht
d
|j	dd|j	dk�|f�|�rhtd��dS)Nz/tmp)rVzNo documents specified.r)r r"ZLinkingz
 giving up --rz	Writing: z, z*   %d warning%s reported.�sz.*** %d error%s reported --%s no files written.zSome error has been reported.)rrNr'rrr4r3�
get_documentsr$r	rrGr&rZFiler�filerrEr-Zwritefile_names�writer
ZHadReportedError)rrrNr'rrZprocess_despite_errorsZraise_at_errorsrVr6r(r)Z	giving_upr[�frrr
�process_main�sL





zSpecEnv.process_main)NrN)NNFNFFN)
�__name__�
__module__�__qualname__rr�
ReportedErrorr$r&r7rGr4r3r^rrrr
rs7
 rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�UntypedDescriptioncCs&||_|j|_|j|_||_||_dS)N)�envr6r�tgtr)rrdrerrrr
r�s
zUntypedDescription.__init__cCs|j�|�dS)N)Zcombined_subjectsr)r�subjectrrr
�combine_with_subject�sz'UntypedDescription.combine_with_subjectcCs|��|��dS)N)�resolve_primary�resolve_lookuped)rrrr
rI�szUntypedDescription.resolve_allcCs|��|��dS)N)�resolve_type�resolve_tgt)rrrr
rh�sz"UntypedDescription.resolve_primarycCsj|jj}t|d�s|jj|_|jj|jj|_|jj	|_
|jj|_|jj	|_
|jj|_|jj|_||_dS)N�d_tag)re�description_class�hasattrr8rlr�
tgt_prefix�fullname�tgtfullnamer�tgtnode�lastname�tgtlastname�srcnoder�srcfullname�srclastname�	__class__)rZdcrrr
rj�s






zUntypedDescription.resolve_typeN)r_r`rarrgrIrhrjrrrr
rc�s
rcc@sTeZdZdZdZdZdZdZdZdZ	dZ
dd�Zdd	�ZdMd
d�Z
defdd
�Zdd�Zdd�ZdNdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdOdd �Zd!d"�ZdPd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Z d1d2�Z!d3d4�Z"d5d6�Z#d7d8�Z$d9d:�Z%d;d<�Z&d=d>�Z'dQd?d@�Z(dAdB�Z)dCdD�Z*dEdF�Z+dGdH�Z,dIdJ�Z-dKdL�Z.dS)R�DescriptionNr�otherrFc	Cs�x�|D]�}y�|jj}|rT|j�|�}|rJ||kr2w|�d|f|jjt�||j|<|j�|j	g�}|j
}|dk	r�t|�d|kr�|�d||j	f|jj�|�|�|j
�|�Wqtk
r�YqXqWdS)Nz/Duplicate aspect %r (may be correct in future).rzMore than %d %r aspects.)r�definame�	localviewr,r$r�DuplicateError�aspects_by_tagr;rl�d_max_occurrCr�aspectsrb)r�as_�asp�k�wZbnZocrrr
�aspects_extends,


zDescription.aspects_extendc	CsLxF|D]>}y$t|||�}|��|�|f�Wqtk
rBYqXqWdS)N)rcrhr�rb)r�subjects�vr�rrr
�aspects_extend_by_subjectss
z&Description.aspects_extend_by_subjectscCsf|dkr|}y
|j}Wn tk
r6|j�|�Yn,X|j|krX|�d|j|jj�|||j<dS)NzDuplicate definition of %r)�tgtview�AttributeErrorrd�deftgtrqr$rr)rZformer�rrr
r�'s

zDescription.deftgtcKs|jjj|||f|�S)N)r6rdr$)rr#rr �kwdsrrr
r$5szDescription.errorcCs|jsd|_|��dS)Nr)�is_lookuped�resolve_aspects)rrrr
ri8szDescription.resolve_lookupedcCs|��dS)N)r�)rrrr
rk=szDescription.resolve_tgtrcGs�g}|�dd�}|dkrhx |jD]}|��|�|�q W|dkrhx |jD]}|��|�|�qJW|S|f|}x*|jD] }|j|krz|��|�|�qzW|S)N� �_)rr9r)r/�argsrirr�rl)rr8Ztags�al�arrr
�find_aspects@s"

zDescription.find_aspectscCsVg}x |jD]}|��|�|�qWx*|jD] }|jdkr.|��|�|�q.W|S)N)	r9�seq�repeat�altr��	optionals�key_arg�draw�no_arg)r�rirr�rl)rr�r�rrr
�find_arg_aspectsSs
zDescription.find_arg_aspectscCs2g}x(|�d�D]}|jdkr|�|�qqW|S)Nr)�	attribute�mapping�kind�either�kind_of�	superkind�superkind_of)r�rlr)r�kasr�rrr
�find_kind_aspects_s
zDescription.find_kind_aspectscCs|S)Nr)r�descrsrrr
�merge_policyiszDescription.merge_policycCs |js|jdk	r|j�|�S|S)N)r��the_less_specific_descr�get_descr_for_aspect)r�aspectrrr
r�lsz Description.get_descr_for_aspectcCsx|�d�}g}xd|D]\}|jdkr4|�t||��q|jdkr||k	rt||�}x|��D]}|�||�qZWqW|S)Nr)
r�r�r��operator�inplace_operator�reverse_operator�function_operator�delitem�getitem�setitem)r�r��
subkind_of)r�rlr�beam�get_atom_beams)rr��aksr�r��brrr
r�qs



zDescription.get_atom_beamscCs^|dkr|�d�}g}xB|D]:}|jdkr6|�|�q|jdkr||k	r|�|���qW|S)Nr)
r�r�r�r�r�r�r�r�r�r�)r�r�r�)r�rlrr%�get_atom_kinds)rr�r�r�rrr
�get_aspects_kind�s


zDescription.get_aspects_kindcCs|�|g|�d��S)Nr)r�r�)rrrr
r��szDescription.get_atom_kindscCs.g}|�d�}x|D]}|�|���qW|S)N�example)r�r%�get_examples)r�get_all�examples�exs�exrrr
r��s


zDescription.get_examplescsV|�d�rD�fdd����D�}|s6��d�jjt��jjj|�S�jj�	��SdS)Nr�csg|]}�jj�|��qSr)r�RE�Single)�.0�x)rrr
�
<listcomp>�sz&Description.get_re.<locals>.<listcomp>z+Test coverage error: no examples specified.)
r,r�r$rer�
CoverageErrorrr�ZUnionr�)r�optZexresr)rr
�get_re�s
zDescription.get_recsVg}xL|D]D��fdd�|D�}x,|D]}|�kr4P|���r&Pq&W|���q
W|S)Ncsg|]}��|�s|�qSr)�is_more_specific_than)r�r�)r*rr
r��sz8Description.get_most_specific_descrs.<locals>.<listcomp>)r�r)rr�Zndsr�r)r*r
�get_most_specific_descrs�s


z$Description.get_most_specific_descrscCs|jS)N)r6)rrrr
�get_package�szDescription.get_packagecCs |j}||kp|dk	o|�|�S)N)r�r�)rr*�rrrr
r��sz!Description.is_more_specific_thancs�fdd���|�S)NcsH|�d�}|r0t|�dkst�|djjj��S|jdkrD�|j�SdS)NrrrrX)	r�rC�AssertionErrorrrr9r:rlrd)�eZsa)�findrr
r��s


z'Description.get_self_name.<locals>.findr)rr)r�r
�
get_self_name�s	zDescription.get_self_namecCs<|�d�}|s |�d|j�nx|D]}|�|�q&WdS)N�descriptionz<NO DESCRIPTION OF %r>)r��gen_textrq�gen_doc)r�outrFr*rrr
�gen_description_doc�s


zDescription.gen_description_doccCs|jS)N)rq)rrrr
�get_id_name�szDescription.get_id_namecCs|jS)N)rq)rrrr
�
get_link_name�szDescription.get_link_namecCs|jS)N)rw)rrrr
�get_local_name�szDescription.get_local_namecCs|jS)N)rq)rrrr
�
get_test_name�szDescription.get_test_namecCs|jS)N)rq)rrrr
�get_name�szDescription.get_namecCs(|�d�}|s|j}n|jjj��}|S)Nr5)r�rtrerr9r:)r�nr5rrr
�get_Name�s

zDescription.get_NamecCs|j�|�S)N)r6�get_descr_by_subject)rrfrrr
r��sz Description.get_descr_by_subjectcCs(i|_g|_i|_|s$|�|jj�dS)N)r|r�r~r�re)r�	only_varsrrr
�init_localview�s
zDescription.init_localviewcs4����jjr(�fdd��jjD��_���dS)Ncsg|]}�j�|��qSr)rdr�)r�r9)rrr
r��sz/Description.resolve_aspects.<locals>.<listcomp>)r�rr��resolve_special)rr)rr
r��s

zDescription.resolve_aspectscCsdS)Nr)rrrr
r��szDescription.resolve_specialcCs$|jjj��}|jr d|jj|S)NzNo children expected for %r)rrr9r:r�r8)rr9rrr
�get_the_one_argument�sz Description.get_the_one_argumentcs�g���fdd��t|�dkr4|djdkr4|dSx|D]}�|�q:W�}t�}d|_||_dd�dd	�|D��|_d|_|S)
Ncs4|jdkr&x$|��D]}�|�qWn
��|�dS)Nr�)rlr�r)r�Zk1)�flatten�ksrr
r�s
z/Description.make_and_test_kind.<locals>.flattenrrr�z(%s)�&cSsg|]
}|j�qSr)rq)r�r�rrr
r�sz2Description.make_and_test_kind.<locals>.<listcomp>)rCrl�Kindr�rErqr�)r�kindsr�r)r�r�r
�make_and_test_kind�s
zDescription.make_and_test_kindcCs^t|�dkr"|djdkr"|dSt�}d|_||_dd�dd�|D��|_d	|_d	|_|S)
Nrr)r�r�r�z(%s)r�cSsg|]
}|j�qSr)rq)r�r�rrr
r�sz-Description.make_and_kind.<locals>.<listcomp>T)rCrlr�r�rErqr��is_synthetic)rr�r�rrr
�
make_and_kindszDescription.make_and_kindcCsTt|�dkr|dSt�}d|_||_dd�dd�|D��|_d|_d|_|SdS)	Nrrr�z(%s)�|cSsg|]
}|j�qSr)rq)r�r�rrr
r�)sz,Description.make_or_kind.<locals>.<listcomp>T)rC�	Superkindrlr�rErqr�r�)rr�r�rrr
�make_or_kind"szDescription.make_or_kind)N)r)N)F)r)/r_r`rar�d_sub�d_type�d_is_defr�r�r�r�r�r�r�rbr$rirkr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
ry�sV	





	
ryc@seZdZdZdZdd�ZdS)�
Definitionr�
definitioncCs@|j|_|jdkr|j|_n|j|jkr0td��|�|j�dS)N�importzDifferent description tag)rxrl�ImportErrorr�r�)rrrrr
�export_aspects3s

zDefinition.export_aspectsN)r_r`rar�r�r�rrrr
r�/sr�c@seZdZdZdZdd�ZdS)�DescriptionDescription)�textr�cCs|j�|�dS)N)ruZ
arg_accept)rr�rrr
r�CszDescriptionDescription.gen_docN)r_r`rar�rlr�rrrr
r�?sr�c@seZdZdd�ZdS)�DefaultcCs�|jj���d�}|d}d�|dd��}|�d�|�d�|�d�|�d�|��|�|�|��|�d�|�|�|j�|�|��|�d�dS)	N�
rr�dlZdtZstrongz	Default: �dd)	rur9r:�splitrE�openr��close�children_accept)rr��arglines�default�restrrr
r�Hs






zDefault.gen_docN)r_r`rar�rrrr
r�Gsr�c@seZdZdd�ZdS)�DescriptionWithHeadercCst|jj���d�}|d}d�|dd��}|�d�|�|�|�d�|�|�|j�|�|�	�|�	�dS)Nr�rrr�r�)
rur9r:r�rEr�Zgen_outer_dtr�r�r�)rr�r��headerr�rrr
r�[s



zDescriptionWithHeader.gen_docN)r_r`rar�rrrr
rZsrc@seZdZdZdS)�Comment�commentN)r_r`rarlrrrr
risrc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�Either�	with_argscCs
t|�gS)N)r�)rrrr
r�qszEither.get_atom_beamscCs|gS)Nr)rrrr
r�tszEither.get_atom_kindscCs|��S)N)r�)rrrr
�
get_alt_kindswszEither.get_alt_kindsN)r_r`rar�r�r�rrrrr
rnsrc@s eZdZdZdd�Zdd�ZdS)�Import)�from�
resolve_by�usingr��	conditionr�r�constructorr��methodr�r�r�r�r�r�r�rr�cs�d�_�jj��jj�jj�jjf�\���jj}���fdd��jjD�}t|�dkrb|d}n t�|t	dd�|D���jj
�}|j�_�jj
�jj�_|�_�jdd�|������jj����dS)Nrcs&g|]\}}�j�||������qSr)r6r7�get_descr_by_name)r��	from_nameZ	from_node)r�
using_name�
using_noderr
r��sz&Import.resolve_tgt.<locals>.<listcomp>rcSsg|]
}|j�qSr)r)r�r�rrr
r��s)r�)r�r�
imp_using_mapr,r{r�	imp_fromsrC�Product�ProductSubject�imp_resolve_modererrorprqr�r�r�r�r�r�)rZimport_noderFr*r)rrrr
rk�s"


zImport.resolve_tgtcCsdS)Nr)rrrr
r��szImport.resolve_aspectsN)r_r`rar�rkr�rrrr
r{s	rc@s$eZdZdd�Zdd�Zdd�ZdS)rc
Cs�||_|j|_||_||_|j|_|dj}xZ|dd�D]J}|j|k	r:|�dd|jj|jj|djj|djjfd|jj�q:W||_||_	dS)Nrrz4Import error when importing from multiple packages:
z=  Can not make a product of %r (tgt = %r) with %r (tgt = %r)
z  because of different targets.)
rdrr�moder6rer$rprrF)rrdrFrrrer*rrr
r�s

*zProduct.__init__cCsx|jD]}|�|�qWdS)N)rFr�)rrr*rrr
r��szProduct.export_aspectscCs*x$|jD]}||ks|�|�rdSqWdS)NTF)rFr�)rr*r�rrr
r��szProduct.is_more_specific_thanN)r_r`rarr�r�rrrr
r�src@seZdZdd�ZdS)rHcCs$||_||_|j|_||_||_dS)N)rdr6rrer)rrdrerrrr
r�s
zPackageDescription.__init__N)r_r`rarrrrr
rH�srHc@s eZdZdZdd�Zdd�ZdS)�ErrorDescriptionr$cCs
||_dS)N)rd)rrdrrr
r�szErrorDescription.__init__cCsdS)Nz<error>.<error>r)rrrr
r��szErrorDescription.get_id_nameN)r_r`rarlrr�rrrr
r�src@sdeZdZdZdd�Zddd�Zdd�Zdd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�Package)�andrr�documentr�r��macror�cCsjt|j�di}|jg}xNt|j���D]<}|��}x.|D]&}t|�|kr8d|t|�<|�|�q8Wq&W|S)Nr)�idr�r-r�values�get_tgtdictsr)r�seen�tgtdicts�pZsdsZsdrrr
r�s
zPackage.get_tgtdictsNc	Cs�|�|jj�r|�||�S|}|�d�}x^|D]V}y|j|}Wn:tk
rz|sXt�|jj	d||�
�f|td�YnX|��q.W|S)Nr+zUndefined: %r in %r.)r )
�
startswithrro�get_descr_by_tgt_namer�r|�KeyErrorr�rdr$r��UndefinedErrorri)rr5rr��parts�partrrr
r�s

zPackage.get_descr_by_namecCsR|j}|�|jd�r2|t|j�dd���}n|�d||j�|�||j�S)Nr+rz
Undefined: %r)rpr#rvrCr:r$rr)rrfr5rrr
r��s
zPackage.get_descr_by_subjectcCs�|��}g}x8|D]0}||kr||}|��|�d�}|�|�qW|s\|�d||t�|�|�}t|�dkr�|�|�}t|�dkr�|�d|dd�|D�f|t	�|dS)NrzNo definition of tgt %rrz!Conflicting descriptions of %r:%rcSsg|]}|jj�qSr)rrp)r�r*rrr
r�
sz1Package.get_descr_by_tgt_name.<locals>.<listcomp>r)
rrir�rr$r&r�rCr�r})rr5rr!r�Ztgtdictr*rrr
r$�s(



zPackage.get_descr_by_tgt_namecCs|jjS)N)rr)rrrr
�get_filenameszPackage.get_filenamecCs|S)Nr)rrrr
r�szPackage.get_packagecCs
i|_dS)N)r�)rrrr
rkszPackage.resolve_tgtcCsi|_|��dS)N)rr�)rrrr
r�szPackage.resolve_aspectscCs0|j�|�}|dkr,|j�||�}||j|<|S)N)rr,rdr7)rr5rr6rrr
r7 s

zPackage.import_packagecCs:g}x0|jjD]$}|j}|jj�||�}|�|�qW|S)N)rr(rrZDocumentrr)rr(�docrrrr
rZ'szPackage.get_documents)N)N)r_r`rar�rrr�r$r)r�rkr�r7rZrrrr
r�s

rc@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�	Attribute)	r�rr��description_with_headerr�r�r�r
rcCs|j|_|�|j�dS)N)rxr�r�)rrrrr
r�5szAttribute.export_aspectscCs|jS)N)rt)rrrr
�
get_attr_name9szAttribute.get_attr_namecCs|jS)N)rt)rrrr
r�<szAttribute.get_namecCs|��}|�|�S)N)r�r�)rr�rrr
�get_kind?szAttribute.get_kindcCsB|��}|jdkr<|��}t|�dkr0|d}ntd|��|jS)Nr�rrz$Don't know how to name this kind, %r)r.rlr�rC�
ValueErrorrq)rr�r�rrr
�
get_kind_nameCs

zAttribute.get_kind_namecCs"d|�|jj���|jjf}|S)Nz%s.%s)r�re�parentr�rs)rrYrrr
r�MszAttribute.get_link_namecCs|��}|�|�S)N)r�r�)rr�rrr
�
get_test_kindSszAttribute.get_test_kindcCs|�d�o|�d�S)Nr�r�)r�)rrrr
�	is_methodWs
zAttribute.is_methodcCs|��S)N)r-)rrrr
�get_op_name[szAttribute.get_op_nameN)
r_r`rar�r�r-r�r.r0r�r2r3r4rrrr
r+1s
r+c@seZdZdZdZdS)�KindOfrrN)r_r`rar�r�rrrr
r5_sr5c@seZdZdZdZdS)�	SubkindOfr)r�N)r_r`rar�r�rrrr
r6dsr6c@s eZdZdZdd�Zdd�ZdS)r�)r�rr�rrr�r�r
r�r�r�r�rr�r�r�r�cCs
|�d�S)Nr�)r�)rrrr
�get_attributessszKind.get_attributescCs
|�d�S)Nr�)r�)rrrr
�get_mappingsvszKind.get_mappingsN)r_r`rar�r7r8rrrr
r�is	r�c@seZdZdZdd�ZdS)r�)rr�r�r�cCs|jS)N)rw)rrrr
r�}szSuperkind.get_local_nameN)r_r`rar�r�rrrr
r�zsr�c@seZdZdZddd�ZdS)�SuperkindOfrrcCs^t�||�}t|�|krZx@|��D]4}||kr0q"|�|�|t|���t|�|kr"Pq"W|S)N)ryr�rCr�r%)rZenoughr�Zkarrr
r��szSuperkindOf.get_examplesN)r)r_r`rar�r�rrrr
r9�sr9c@sBeZdZdZdddddd�Zdd	�Zddd�Zd
d�Zdd�ZdS)�Example)rr��
in_contextz'''z"""�)�]�})z'''z"""�(�[�{cCs|jjS)N)r�ex_text)rrrr
�get_ex_text�szExample.get_ex_textFcCs|gS)Nr)rr�rrr
r��szExample.get_examplescCs$|�d�}|sdS|djjj��S)Nr;rr)r�rerr9r:)rr�rrr
�get_ctx_text�s
zExample.get_ctx_textcCs|S)Nr)rr�rrr
�get_use_text�szExample.get_use_textN)F)	r_r`rar��partabrCr�rDrErrrr
r:�s
r:c@seZdZdZdS)�	InContextrN)r_r`rarrrrr
rG�srGc@seZdZdZdd�ZdS)�DefinesrcCsdd�|�d�D�S)NcSsg|]
}|j�qSr)rq)r�r�rrr
r��sz1Defines.get_defined_tgt_names.<locals>.<listcomp>r9)r�)rrrr
�get_defined_tgt_names�szDefines.get_defined_tgt_namesN)r_r`rar�rIrrrr
rH�srHc@seZdZdd�Zdd�ZdS)�MacrocCs|j|_|j|_dS)N)rxrr)rrrrr
r��szMacro.export_aspectscCs|jj�dd|jj|jj�S)N�blockr)rrT�node_of_tacirrr<r)rZoptionsrrr
�use�sz	Macro.useN)r_r`rar�rMrrrr
rJ�srJc@seZdZdZdS)�SelfrN)r_r`rarrrrr
rN�srNc@sTeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�ZdS)�Mappingrz)r�r9r�rr�r,�equationr�r�r��precondition�
postconditionr��returnsrr�c	Cs|�i�}|��}x�|D]�}y�|dk	rj||krjt|�|krj|�d|j|d|dkd�t|�f|jj�n�|dk	r�t|�|kr�|�d|j|d|dkd�t|�f|jj�nB|dk	r�t|�|kr�|�d|j|d|dkd�t|�f|jj�Wqtk
�rYqXqWdS)Nz,%s requires %d argument%s specified, got %d.rYrz5%s requires at least %d argument%s specified, got %d.z4%s can take at most %d argument%s specified, got %d.)�get_args_re�sequnirCr$rlrrrb)r�min�max�re�xsr�rrr
�chk_num_args�s*

zMapping.chk_num_argscCs,g}x"|�d�D]}|�t|j��qW|S)Nr�)r�r%r-r�)rZakr�rrr
�
get_arg_kinds�szMapping.get_arg_kindscs�y�ddi}��|�}d}y|��}WnF�jjjk
rjtd�j�td|�|�|�}|��}YnX���fdd�|D�}Wntk
r�gSX|SdS)Nr�Trz#Infinitely long args example for %sz;Limiting by expanding each Cleene closure 0 up to %d times.csg|]}t�t|�����qSr)�ArgsExample�tuple)r�r�)�mapnamer�top_kindrr
r�sz-Mapping.get_args_examples.<locals>.<listcomp>)	rTrUrr�Z
InfiniteErrorrrvZlimitedr�)rr^r_r�rXZcoveragerYr�r)r^rr_r
�get_args_examples�s"


zMapping.get_args_examplesc	Cs�g}x~|��D]r}|j}|dkrx|��}||kr@|�||�}n,|��}|sd|�d|jj|jj	�|d}|�
|�qdst�qWt|t
|�|j|j�S)Nr9ziTest coverage error: Can not create precondition for %r
 -- no examples specified for the argument above.r)r�rlr��
get_arg_valuer�r$r�rqrrrr�r\r]r^r_)	rr��match�arglistr�r=r5r�r�rrr
�get_args_for_argss 

zMapping.get_args_for_argscCs.|jjj}x|��D]}||�|�7}qW|S)N)rr��Epsilonr�r�)rr�rXr�rrr
rTs
zMapping.get_args_recCs|��S)N)r�)rrrr
�
get_arguments%szMapping.get_argumentscCs|�dd�|�d�D��S)NcSsg|]}|���qSr)r.)r�r�rrr
r�*sz+Mapping.get_return_kind.<locals>.<listcomp>rS)r�r�)rrrr
�get_return_kind)szMapping.get_return_kindcCs|�dd�|�d�D��S)NcSsg|]}|���qSr)r2)r�r�rrr
r�-sz0Mapping.get_return_test_kind.<locals>.<listcomp>rS)r�r�)rrrr
�get_return_test_kind,szMapping.get_return_test_kindN)
r_r`rar�r�rZr[r`rdrTrfrgrhrrrr
rO�srOc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)r\cs0||_||_�|_||_�fdd�|D�|_dS)Ncsg|]}�|��qSrr)r�r�)r^rr
r�6sz(ArgsExample.__init__.<locals>.<listcomp>)r��egsr^r_�negs)rr�rir^r_r)r^r
r1s
zArgsExample.__init__cCsd�|j�S)Nz, )rErj)rrrr
�__str__8szArgsExample.__str__cCsVd}xL|j��D]>}|j}|dkr:|��|krF|j|Sntd|��|d7}qWdS)Nrr9zNo argument matches: %rr)r�r�rlr�riZConditionError)rr5�ir�r=rrr
ra;szArgsExample.get_arg_valuecCs|j�d�S)NrQ)r�r�)rrrr
�get_preconditionsFszArgsExample.get_preconditionscCs|j�d�S)NrR)r�r�)rrrr
�get_postconditionsIszArgsExample.get_postconditionsc	Cs�|��}|sgS|j}|j}|�d�}|r�xr|�d�D]`}xX|�d�D]H}|�d�}|rZqF|�|�d��}|dk	rF|�||�}t|��|�gSqFWq6Pq6WdSgS)NrQr�r�rR)rmr_r�r��match_tord�SetUpr-)	rZpresr��mapr��mZmprerbr�rrr
�get_setups_for_preconditionsLs*

z(ArgsExample.get_setups_for_preconditionscCsdS)Nr)rr�rrr
�
match_to_kindiszArgsExample.match_to_kindcCs�i}x�|��D]v}xp|D]d}|j|jkrt|j�t|j�kr>qi}x8t|j|j�D]\}}||krdP|||<qRW|�|�PqWdSqWd|ks�t�|S)N�,)rm�cond_idrC�	arg_names�ziprQr�)rZpostsrbZpre�posZupdr�r�rrr
rols 

zArgsExample.match_toN)r_r`rarrkrarmrnrsrtrorrrr
r\0sr\c@s$eZdZdd�Zdd�Zdd�ZdS)rpcCs||_||_dS)N)r5r�)rr5r�rrr
r�szSetUp.__init__cCs|jS)N)r5)rrrr
r��szSetUp.get_namecCs|jS)N)r�)rrrr
�get_args�szSetUp.get_argsN)r_r`rarr�rzrrrr
rp�srpc@s(eZdZdZdZdZdd�Zdd�ZdS)	�Operatorrr�)	r9rr�r,rPrRrQrrScCs|jjj��S)N)rrr9r:)rrrr
r4�szOperator.get_op_namecCs|�dd�dS)Nr)rZ)rrrr
r��szOperator.resolve_specialN)r_r`rar�r�r�r4r�rrrr
r{�s
r{c@seZdZdS)�ReverseOperatorN)r_r`rarrrr
r|�sr|c@seZdZdd�ZdS)�FunctionOperatorcCs|�dd�dS)Nr)rZ)rrrr
r��sz FunctionOperator.resolve_specialN)r_r`rar�rrrr
r}�sr}c@seZdZdS)�InplaceOperatorN)r_r`rarrrr
r~�sr~c@s$eZdZdZdZdd�Zdd�ZdS)�SetItemrz)r9rr�r,rPrRrQrcCsdS)Nz[]r)rrrr
r4�szSetItem.get_op_namecCs|�dd�dS)N�)rZ)rrrr
r��szSetItem.resolve_specialN)r_r`rar�r�r4r�rrrr
r�src@seZdZdd�ZdS)�DelItemcCs|�dd�dS)Nr)rZ)rrrr
r��szDelItem.resolve_specialN)r_r`rar�rrrr
r��sr�c@seZdZejdZdd�ZdS)�GetItem)rScCs|�dd�dS)Nr)rZ)rrrr
r��szGetItem.resolve_specialN)r_r`rarr�r�rrrr
r��s
r�c@s,eZdZdZdZdd�Zdd�Zee�ZdS)�	Conditionr)rr9rr��python_codecCs:g}x0|�d�D]"}|jdkr|�|jjj���qW|S)Nr)rr9)r�rlrrrr9r:)rZanr�rrr
�
get_arg_names�s

zCondition.get_arg_namescCs|jj}|S)N)rrs)rZdnrrr
�get_def_name�szCondition.get_def_nameN)	r_r`rar�r�r�r��propertyZdef_namerrrr
r��s
r�c@seZdZdZdS)�
PythonCode)rr�r;N)r_r`rar�rrrr
r��sr�c@s8eZdZdZdd�Zdd�Zee�Zdd�Zdd	�Z	d
S)�ConditionRef)rr�cCs&y|jStk
r t�|�SXdS)N)�	cond_exprr�ry�__repr__)rrrr
r��szConditionRef.__repr__cCs |jj}|jrd|}||_|S)Nznot )�cond_definitionrq�is_notrv)rrvrrr
�get_cond_id�s
zConditionRef.get_cond_idcCs|jS)N)r�)rrrr
�get_definition�szConditionRef.get_definitioncCsR|jj}|j�|�|_|jjd|j|_|jjj�	�|_
|jj|_|jj|_dS)Nr+)
rr�rdr�r1rsZ
cond_doc_namerr9r:r�rwr�)r�cond_defrrr
r��s
zConditionRef.resolve_specialN)
r_r`rar�r�r�rrvr�r�rrrr
r��sr�c@seZdZdZdS)�PreconditionN)r_r`ra�doc_namerrrr
r��sr�c@seZdZdZdS)�
PostconditionN)r_r`rar�rrrr
r��sr�c@seZdZdd�ZdS)�PostcondCasecCs|t_|t_dS)N)r�postcond�	variables)r�r�rrr
rszPostcondCase.__init__N)r_r`rarrrrr
r�sr�c@seZdZdZdZdS)�Constructorr)rr�N)r_r`rar�r�rrrr
r�sr�c@seZdZdZdS)�Equation)rr�rQrRN)r_r`rar�rrrr
r�
sr�c@seZdZdZdZdd�ZdS)�Argsr)rr�r�cCs.|jjj}x|��D]}||�|�7}qW|S)N)rr�rer�r�)rr�rXr�rrr
r�s
zArgs.get_reN)r_r`rar�r�r�rrrr
r�sr�c@seZdZdd�ZdS)�NoArgcCs
|jjjS)N)rr�re)rr�rrr
r�szNoArg.get_reN)r_r`rar�rrrr
r�sr�c@s2eZdZdZdd�Zdd�Zdd�Zdd	d
�ZdS)
�Arg)rr�r�r�r5cCs|�|���S)N)r�r�)rrrr
r.$szArg.get_kindcCs"y|��Stk
rdSXdS)N�?)�get_arg_namer�)rrrr
r�'szArg.get_namecCs|jjS)N)r�specified_name)rrrr
r�-szArg.get_arg_nameFcCsLg}|�d�}x|D]}|�|���qW|r2|rH|��}|�|���|S)Nr�)r�r%r�r.)rr�r�r�r�r�rrr
r�0s

zArg.get_examplesN)F)r_r`rar�r.r�r�r�rrrr
r�!s
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�KeyArgEGcCs||_||_dS)N)r5�eg)rr5r�rrr
r<szKeyArgEG.__init__cCs
|j��S)N)r�rC)rrrr
rC@szKeyArgEG.get_ex_textcCs
|j��S)N)r�rD)rrrr
rDCszKeyArgEG.get_ctx_textcCsd|j|fS)Nz%s=%s)r5)rr�rrr
rEFszKeyArgEG.get_use_textN)r_r`rarrCrDrErrrr
r�;sr�c@seZdZddd�ZdS)�KeyArgFcs"|����fdd�t�||�D�S)Ncsg|]}t�|��qSr)r�)r�r�)r5rr
r�Qsz'KeyArg.get_examples.<locals>.<listcomp>)r�r�r�)rr�r)r5r
r�OszKeyArg.get_examplesN)F)r_r`rar�rrrr
r�Jsr�c@seZdZdZdd�ZdS)�Draw)rr�r�r�cCs2|jjj}x"|��D]}||�|�d�7}qW|S)Nr�)rr�rer�r�)rr�rXr�rrr
r�Ws
zDraw.get_reN)r_r`rar�r�rrrr
r�Tsr�c@seZdZdZdZdd�ZdS)�	Optionals)r9r�r�rr�rcs���fdd�������S)Ncs0|s�jjjS|d����|dd��d�S)Nrrr�)rr�rer�)r�)r��opt_rarrr
r�cs
z Optionals.get_re.<locals>.opt_ra)r�)rr�r)r�r�rr
r�bszOptionals.get_reN)r_r`rar�r�r�rrrr
r�^sr�c@s eZdZdZdd�Zdd�ZdS)�Repeat)r�r9r�rr�cCs|jjj��S)N)rrr9r:)rrrr
�get_argmszRepeat.get_argc
Cs |��}|s|�d|jj�|d�|�}x"|dd�D]}||�|�7}q8W|��}d}||k�r|�|�}t|�dkr�|�d||jj�dd�|D�\}}	yt|�}Wn$t	k
r�|�d	|jj�YnX|	d
k�rJyt|	�}	Wn&t	k
�r|�d|jj�YnXn8yt|�}Wn&t	k
�rD|�d|jj�YnX|}	|dk�sh|	d
k�rx|	dk�rx|�d
|jj�|	d
k�r�|d
�}
x�t
|�D]}||
}
�q�Wnt|	|k�r�|�d|jj�|jjj
}xt
|�D]}||7}�q�W|jjj
}x t
||	�D]}||d�}�q�W||}
|
S)NzNo argument aspects.rrz..r�zMore than one %r in argument.cSsg|]}|���qSr)r:)r�r�rrr
r��sz!Repeat.get_re.<locals>.<listcomp>zExpected int in lower bound.rz!Expected int or * in upper bound.z-Expected int, int..int or int..* in argument.z'Expected non-negative repetition count.z$Expected upper bound >= lower bound.r�)r�r$rrr�r�r�rC�intr/�rangerr�re)
rr�r�rXr�r9r2r��lo�hiZresrlr�rrr
r�ps`








z
Repeat.get_reN)r_r`rar�r�r�rrrr
r�jsr�c@s$eZdZdZed7ZdZdd�ZdS)�Seq)r9rr�r�)r�rcCs.|jjj}x|��D]}||�|�7}qW|S)N)rr�rer�r�)rr�rXr�rrr
r��s
z
Seq.get_reN)r_r`rar�r�r�rrrr
r��sr�c@seZdZdZdZdd�ZdS)�Alt)r9rZ
descriptonr�r�r�rcCsR|��}|s|�d|jj�|d�|�}x"|dd�D]}||�|�O}q8W|S)NzNo alternatives.rr)r�r$rrr�)rr�r�rXr�rrr
r��sz
Alt.get_reN)r_r`rar�r�r�rrrr
r��sr�c@s$eZdZdZdZdd�Zdd�ZdS)�Returns)r�rr�r,r�r�r
Z
with_opt_argscCs|�|���S)N)r�r�)rrrr
r.�szReturns.get_kindcCs|�|���S)N)r�r�)rrrr
r2�szReturns.get_test_kindN)r_r`rar�r�r.r2rrrr
r��sr�cCs&g}x|D]}|�|�|��q
W|S)N)r%r�)r�r8r��orrr
�find_aspects_inseq�s
r�c@seZdZdd�Zdd�ZdS)�BeamcGs$|d|_|d|_||_||_dS)Nr���)rre�k_tag�objects)rr�r�rrr
r�s

z
Beam.__init__cCs
t||�S)N)�compose)rrzrrr
�__add__�szBeam.__add__N)r_r`rarr�rrrr
r��sr�c@seZdZdS)�KindBeamN)r_r`rarrrr
r��sr�c@seZdZdS)�AtomKindBeamN)r_r`rarrrr
r��sr�c@seZdZdS)�KindMappingBeamN)r_r`rarrrr
r��sr�c@sdeZdZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
KindOpBeamrcCst|��d�S)NrP)r��
get_op_seq)rrrr
�find_equations�szKindOpBeam.find_equationscCst|��d�S)NrR)r�r�)rrrr
�find_postconditions�szKindOpBeam.find_postconditionscCst|��d�S)NrQ)r�r�)rrrr
�find_preconditions�szKindOpBeam.find_preconditionscCs|jd}|���||�S)Nr)r��
get_the_opr`)rr^r_rrr
r`s
zKindOpBeam.get_args_examplescCs|j|j��S)N)r��
op_name_indexr�)rrrr
�get_op_id_nameszKindOpBeam.get_op_id_namecCs|j|j��S)N)r�r�r4)rrrr
r4szKindOpBeam.get_op_namecCs|j|jd�S)N)r��op_index)rrrr
r�
szKindOpBeam.get_op_seqcCs|����S)N)r�r�)rrrr
r�
szKindOpBeam.get_self_namecCs|j|jS)N)r�r�)rrrr
r�szKindOpBeam.get_the_opcCs|����S)N)r�rh)rrrr
rhszKindOpBeam.get_return_test_kindN)r_r`rar�r�r�r�r�r`r�r4r�r�r�rhrrrr
r��sr�c@seZdZdd�ZdS)�KindAttributeBeamcCsdst�dS)Nr)r�)rrrr
r�szKindAttributeBeam.get_the_opN)r_r`rar�rrrr
r�sr�c@seZdZdZdS)�KindAttributeMappingBeamr�N)r_r`rar�rrrr
r�sr�c@seZdZdd�ZdS)r�cCsdS)Nz()r)rrrr
r4!szKindMappingBeam.get_op_nameN)r_r`rar4rrrr
r� sc@seZdZdZdZdS)�	KOKOpBeamr�N)r_r`rar�r�rrrr
r�%sr�cGst|dd��S)Nr�)r�)r�rrr
�subkind_of_kind*sr�cCs8|j|jk	rd|j|jf�|j|jdd�}t|�S)Nz'Composition error, tgt %r is not src %rr)rerr�r�)r�r�r�rrr
r�.sr�cGst|df|dd���S)Nr�)r�)r�r�rrr
�
remove_1_26sr�cGst|dd��S)Nr)r�)r�r�rrr
�remove_0:sr�)<)r�r�)r�r�)r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�)r�)r�r�)r�r�r�)r�r�)r�r�r�r�r�)r�r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�r�r�)r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�)r�r�r�cGs(tdd�|D��}t|}||f|��S)NcSsg|]
}|j�qSr)rl)r�r�rrr
r��szbeam.<locals>.<listcomp>)r]�
beam_table)r�r��Crrr
r�sr�c@seZdZdd�ZdS)rcCs$||_dd�dd�|D��|_dS)Nz(%s)rcSsg|]
}|j�qSr)rp)r�r�rrr
r��sz+ProductSubject.__init__.<locals>.<listcomp>)r�rErp)rr�rrr
r�szProductSubject.__init__N)r_r`rarrrrr
r�src@sVeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dQdd�Zdd�Zdd�Z
dRdd�Zdd�Zdefdd�Zdd�ZdSdd�ZdTd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�ZdUd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�ZdVd5d6�Zd7d8�Zd9d:�Z d;d<�Z!d=d>�Z"d?d@�Z#dAdB�Z$dCdD�Z%dEdF�Z&dGdH�Z'dIdJ�Z(dKdL�Z)dMdN�Z*dOdP�Z+dS)W�SubjectrNcCs�||_|j|_|jj|_||_|jj|_||_g|_i|_d|_|j	|_	|j�
|j	�|_d|_|j|k	rz|j�
|j�|_n|j|_dS)Nr)r1r6rrrrsr�r��
node_indexr8�get_description_classrm�aspect_mode�make_child_namerp)rr1rrsrrr
r�s


zSubject.__init__cCs,|j|dd�}x|D]}|�||�qWdS)Nr)rV)�get_arglist�add_new_subject)rr�namesr5rrr
�_visit_type_definition�s
zSubject._visit_type_definitioncCsH|jjj|j}|j|dd�}x$|D]}d||f}|�||�q$WdS)Nr)rVz%s:%s)rrTZreverse_node_aliasesr8r�r�)rrZshtagr�r5rrr
�_visit_type_operator�s

zSubject._visit_type_operatorcCs|�|�dS)N)r�)rrrrr
�_visit_type_other�szSubject._visit_type_othercs6����}��fdd�|D�}����}|r2||_dS)Ncsg|]}��|���qSr)�find_subject)r�r5)rrrr
r��sz1Subject._visit_type_with_args.<locals>.<listcomp>)r�r�r�)rrr�r�rfr)rrr
�_visit_type_with_args�s


zSubject._visit_type_with_argscs:�j�dd�}��fdd�|D�}����}|r6||_dS)Nr)rVcsg|]}��|���qSr)r�)r�r5)rrrr
r��sz5Subject._visit_type_with_opt_args.<locals>.<listcomp>)r�r�r�)rrr�r�rfr)rrr
�_visit_type_with_opt_args�s

z!Subject._visit_type_with_opt_argscCs|�||�}|�|�|S)N)�new_subject�add_subject)rrrsrfrrr
r��s
zSubject.add_new_subjectcCs|�|�|��|S)N)�def_subject�add_top_node)rrfrrr
r��s
zSubject.add_subjectcCs|j}|�|�dS)N)r�_visit_children)rrrrr
r��szSubject.add_top_nodecCs|�||�}|�|�|S)N)r�r�)rrrsrfrrr
�def_new_subject�s
zSubject.def_new_subjectcCsl|jjrV|j}||jkrD|jd||jd||j|jfgd�dS||_||j|<nd|_|j�|�dS)NzRedefinition of %r.zPrevious definition of %r.)r!)	rmr�rsr�r$rr{r�r)rrfr5rrr
r��s
zSubject.def_subjectcKs|jj|||f|�S)N)r6r$)rr#rr r�rrr
r$�sz
Subject.errorcCs|j�|||�S)N)r6r�)rr5rrrr
r��szSubject.find_subjectrcCs�|��}x^|��D]R}|s|j���d�s:|j���d�r@d}nd}|j||dd�dd�|D�}PqWt|�|kr�|�d||f|�|S)Nruz9Arg list to definition can not start or end with a comma.zMissing argument to definition.)r cSsg|]}|r|�qSrr)r�r�rrr
r��sz'Subject.get_arglist.<locals>.<listcomp>z4Not enough arguments, minimum %d expected to node %s)r�r9r:r#rMr$rC)rrrVrcr9rrrrr
r��s zSubject.get_arglistcCs|�||�}|�|�|S)N)r��no_children)rrrVr�rrr
�get_arglist_only�s
zSubject.get_arglist_onlyc	CsLy.t|j��}t|���|��}WdQRXWntk
rFd}YnX|S)N)r�rr-�	readlines�rstrip�	Exception)rrr]r�rrr
rs"
zSubject.get_linecCs@|jdkr||_n |j|kr2|�d||jf|�|�|�dS)Nz%Inconsistent aspect mode: %r, was: %r)r�r$r�)rrrrrr
�
_visit_aspects

zSubject._visit_aspectc	Cs�x�|jD]�}y^|j|jjkr:|�d|j|j|jjf|�|jjdk	r^d|jj�|ji�|j<|�|�Wnt	k
r~YnX|j
d7_
qWdS)Nz&Invalid  tag: %r  in: %r. Allowed = %sr)r<r8rmr�r$r�cover_checkr;�acceptrbr�)rrr>rrr
r�szSubject._visit_childrencCsd|j|fS)Nz%s.%s)rp)rZchild_lastnamerrr
r�szSubject.make_child_namecCsp|j�|j�j}||dk	ks t�|dkr2d|j}|j}|dkrLt|||�S|dkr`t|||�St|||�SdS)Nz<%d>rr)	rr�r8r�r�r��MacroSubject�DocumentSubjectr�)rrr5Zis_defr8rrr
r�!s
zSubject.new_subjectcCs|jj�|d|j|j�S)Nr)rrTrLr<r)rr8rrrr
�new_tag_node.szSubject.new_tag_nodecCs |jr|jd|j|dd�dS)Nz)No children expected for node with tag %r)r )r<r$r8)rrrrr
r�1szSubject.no_childrencCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rVr)r�r�r�)rrr5�	ofsubjectrrr
�	visit_and7szSubject.visit_andcCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rVr�)r�r�r�)rrr5r�rrr
�visit_aspects_of<szSubject.visit_aspects_ofFc
Cs�|j��}d}d}|rpd|krl|�d�}t|�dkr@|�d|�dd�|D�\}}|rb|�||�}|rp|}n|}|�|�}	|r�||	_|�|	�|r�|	jdkr�|�d|�|dk	r�|g|	_	dS)N�:r�zMore than 1 colon in argument.cSsg|]}|���qSr)r:)r�r�rrr
r�Jsz%Subject.visit_arg.<locals>.<listcomp>zNo argument name specified.)
r9r:r�rCr$r�r�r�r�r�)
rr�must_have_namer9Zarg_namer�Znkr5Z	kind_namerfrrr
�	visit_argAs,



zSubject.visit_argcCsdS)Nr)rrrrr
�
visit_comment`szSubject.visit_commentcCs0|j|dd�}x|D]}|�|d|�qWdS)Nr)rVzcond:%s)r�r�)rrr�r5rrr
�visit_conditioncs
zSubject.visit_conditioncCsr|j�|j�}|j��}|�d�}|jdk|krZ|r@d|j}n
d|j}|j||dd�t|d|j�|�dS)Nr�r�z.Tag %r is not a definition, should not have ::z#Tag %r is a definition, requires ::)r z_visit_type_%s)	rr�r8r9r:r#r�r$�getattr)rrrmr9Zcolonr#rrr
�
visit_defaulths


zSubject.visit_defaultcCs|�|�dS)N)r�)rrrrr
�visit_descriptionuszSubject.visit_descriptioncCs|�|�dS)N)r�)rrrrr
�visit_description_with_headerxsz%Subject.visit_description_with_headercCs�|�|�}|jj}|j��}d|krz|�|dd��|dd�ksr|�|dd��|dd�ksr|jd|ddd�d|}||_dS)	Nr�rr�r����z=Multi-line expression should be in parentheses (for clarity).)r r"z(%s))r�rmrFr9r:r,r$rB)rrrfrFr�rrr
�
visit_example{s


zSubject.visit_examplecCs�|j|dd�}d}d}g}x�|jD]�}|j}|dkrXx�|�|�D]}|�||f�q@Wq"|dkr�|rx|jd|jdd�q�|j��}|dkr�|jd|dd�d	}q"|d
kr�|dkr�g}x2|�|�D]}|�||f�q�Wq"|jd|dd�q"Wi}	|dk	�r^t	|�t	|�k�r<t	t
�t	|�k�r$d}
nd
}
|jd|
tdd�x t||�D]\}}||	|<�qHWt	|�dk�rx|�d|�t	|�dk�r�|�s�|jd|dd�d	}x,|D]$}|�
||�}
||
_|	|
_||
_�q�WdS)Nr)rVrr	zMore than 1 'resolve' clause.)r )r�orzResolve by: and / or expected.rr
zUnexpected clause in importZfewZmanyz=Too %s 'using' names, should match number of names in .importrzNo 'from' clausez;Importing from multiple packages but no 'resolve by' clause)r�r<r8r�rr$rr9r:rCZusing_namesrrxr�rrr)rrZmy_namesZresolve_modeZusingsZfromsr>r=r5Z	using_mapZmanyfewrr�urfrrr
�visit_import�sb



zSubject.visit_importcCs|j|dd�dS)NT)r�)r�)rrrrr
�
visit_key_arg�szSubject.visit_key_argc	CsJ|j��}|�d�s |�d|�|j�d||j�dd|j�f��|�dS)Nr�z)Tag 'method' is a definition, requires ::r�r�r)r9r:r#r$rrLr<r�)rrr9rrr
�visit_method�s



zSubject.visit_methodcCs:|jdk	r|�d|�|j��}|s0|�d|�||_dS)NzDuplicate name specification.zNo name specification.)r�r$r9r:)rrr5rrr
�
visit_name�s

zSubject.visit_namecCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rVr�)r�r�r�)rrr5r�rrr
�visit_or�szSubject.visit_orcCs(|j��}d|kr|�d|�|�d�}|�d�}||krF|�d|�||d|���}d|krxdd�|�d�D�}n|g}|}|d|���}|s�|�d	|�d
}|�d�r�|dd���}d}|�d
�}	|	d�d�s�d|	d|	d<d
�|	�}|�||�}
|�	|�}|
|_
||_||_||_
dS)Nr?zNo left parenthesisr<z#None or misplaced right parenthesisrrucSsg|]}|���qSr)r:)r�r�rrr
r��sz/Subject.visit_postcondition.<locals>.<listcomp>zNo condition namerznot �r+r�zcond:)r9r:r$rr�r�r#rEr�r�r��	cond_namerwr�)rrr9ZlparZrparr�rwrr�r'r�rfrrr
�visit_postcondition�s:






zSubject.visit_postconditioncCs|�|�dS)N)r)rrrrr
�visit_preconditionszSubject.visit_precondition)N)N)r)r)N)F),r_r`rar�r�rr�r�r�r�r�r�r�r�r�r�rbr$r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr
r��sP



	




<$r�c@seZdZdS)�ErrorSubjectN)r_r`rarrrr
rsrc@s,eZdZdd�Zdefdd�Zddd�ZdS)	rUcCs�||_||_||_||_d|f}t�||||�|�d�d|_d|_t	|_
g|_x"|jD]}||�}||j
|j<q\W|�|�|`dS)Nz%sr+r�rX)r�specenvr6rr�rr�rsr8rrmr(Zpredefined_subjectsr�rpr�)rrrrr5rrYrrr
r	s

zPackageSubject.__init__NcKs|jj|||f|�S)N)rr$)rr#rr r�rrr
r$szPackageSubject.errorcCsF|s|�d||�dd�|�d�D�}|dsF|d}|dd�}nd}|dkrX|}nt|d	kr�|}|dk	r�d
}x|j|kr�|j|kr�|j}qrW|j|kr�d}|dkr�|�d||�n|�d||f|�|j}xnt|�D]b\}	}
|j�|
�}|dk�r.|jd
k�r|�d|
|f|�t||||	d��S|d|
}|}q�W|S)NzInvalid subject name: %rcSsg|]}|���qSr)r:)r�r�rrr
r�$sz/PackageSubject.find_subject.<locals>.<listcomp>r+rrr�ZmyfileZmykind)r�rr�z%mykind tag without such a context: %rzInvalid tag %r in %rr�zNo such subject: %r  in %r.)	r$r�r1r8rs�	enumerater�r,�SubImportSubject)rr5rrr'r8rYZ	kind_tagsZsnamerlr��nsrrr
r� s@


zPackageSubject.find_subject)N)r_r`rarrbr$r�rrrr
rUsrUc@seZdZdd�ZdS)rcCs4||_||_||_d�|jg|�|_|d|_dS)Nr+r�)r1r�rnpartsrErprs)rr1rrrrr
rIs
zSubImportSubject.__init__N)r_r`rarrrrr
rHsrc@seZdZdd�ZdS)r�cCsdS)Nr)rrrr
r�RszMacroSubject.add_top_nodeN)r_r`rar�rrrr
r�Qsr�c@seZdZdd�ZdS)r�cCs|jj�|�dS)N)r1r(r)rrrr
r�WszDocumentSubject.add_top_nodeN)r_r`rar�rrrr
r�Vsr�c@seZdZdd�ZdS)�
GuppyWorldcCs.||_d|_|_d|_d|_g|_t|_dS)NZGuppy_Worldz<GuppyWorld>)r6rprsrr8r�ryrm)rrdrrr
r\szGuppyWorld.__init__N)r_r`rarrrrr
r	[sr	c+@s�eZdZdZdZeeeee	e
eee
eeeeeeeeeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.d�*Z/dZ0dZ1dZ2dZ3dd�Z4d	d
�Z5dd�Z6d
d�Z7dd�Z8dd�Z9dS)�_GLUECLAMP_)z_parent:Documentz_parent:FileIOz_parent.FileIO:IOz
_parent:Filerz_parent:Htmlz
_parent:Latexz_parent:SpecNodesz_parent.SpecNodes:node_of_taciz_parent:Testerz_root.hashlib:md5z_root.guppy.etc:iterpermutez_root.guppy.etc:RE)r��io_dirr)*r�r9r�r�rrrr�r?r�r�r,rPr�r�r�r�r�r�r;r�r�r�r�rr�r�r�rRrQr�r�r�rXr�rSrr�r�r�r�r�z.tgt.N�
cCs|j�|t�S)N)�description_classesr,ry)rr8rrr
r��sz!_GLUECLAMP_.get_description_classcCstfS)N)r	)rrrr
�_get_predefined_subjects�sz$_GLUECLAMP_._get_predefined_subjectscCsiS)Nr)rrrr
�_get_package_cache�sz_GLUECLAMP_._get_package_cachecKst|�}|j|f|�dS)N)rr^)rrr�Zserrr
�main�sz_GLUECLAMP_.maincCsdS)Nr)rrrr
�_test_main_�sz_GLUECLAMP_._test_main_cCs|jj�|�}||_dS)N)r0r1rOrN)r�dirrrr
�
set_input_dir�sz_GLUECLAMP_.set_input_dir):r_r`raZ	_imports_Z	_chgable_r�r�r�r+rr�r�r�rHr�r�rr�r:rr�r}r�rrGr~r�r�r5rJrOr�r{r�r�r�r|r�rr�r�rNr�rr6r�r9r
ror�rrr�rrrrrrrrr
r
eslr
N)QZguppy.etc.DescriptorrZguppy.gsl.Exceptionsrrcryr�r�r�rrrrrrHrrr+r5r6r�r�r9r:rGrHrJrNrOr\rpr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�rrUrr�r�r	r
rrrr
�<module>s T!8
&	
^.
mQ

A	${@	

Zerion Mini Shell 1.0