403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.21.43.72
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/guppy/gsl/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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�pdb�	set_trace�
max_errors�
TooManyErrors)	r�messager�	exception�more�harmless�msg�ctxrr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�tr7�ch)r,�defines�links�walkrr
rCRs

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_namerr:r0�sort�joinrZ
doc_name_noder>)
rr*rr7�dsZnodefs�usedZdefdZdefnodeZndr)r,rArBrCr
�link_documentsMsD





zSpecEnv.link_documentscCs t|||�}|j|_|��|S)N)�PackageDescriptionr)�resolve_all)r�subr8rrr
r6�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�endswithr1r2r3r4�	input_dirrG�abspath�	read_file�md5�update�encode�digestZ
package_cache�	SpecNodesZnode_of_stringr	r�PackageSubject)rrZpacknamerO�input_stringr�datarTrWrZnumerr�packagerrr
r5�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)rZzNo 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.)rrQr)rrr6r5�
get_documentsr&r	rrJr(rZFiler�filerrGr/Zwritefile_names�writer
ZHadReportedError)rrrQr)rrZprocess_despite_errorsZraise_at_errorsrZr8r*r+Z	giving_upr_�frrr
�process_main�sL





zSpecEnv.process_main)NrN)NNFNFFN)
�__name__�
__module__�__qualname__rr�
ReportedErrorr&r(r9rJr6r5rbrrrr
rs7
 rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�UntypedDescriptioncCs&||_|j|_|j|_||_||_dS)N)�envr8r�tgtr)rrhrirr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
rL�szUntypedDescription.resolve_allcCs|��|��dS)N)�resolve_type�resolve_tgt)rrrr
rl�sz"UntypedDescription.resolve_primarycCsj|jj}t|d�s|jj|_|jj|jj|_|jj	|_
|jj|_|jj	|_
|jj|_|jj|_||_dS)N�d_tag)ri�description_class�hasattrr:rpr�
tgt_prefix�fullname�tgtfullnamer�tgtnode�lastname�tgtlastname�srcnoder�srcfullname�srclastname�	__class__)rZdcrrr
rn�s






zUntypedDescription.resolve_typeN)rcrdrerrkrLrlrnrrrr
rg�s
rgc@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=rp�d_max_occurrEr�aspectsrf)r�as_�asp�k�wZbn�ocrrr
�aspects_extends,


zDescription.aspects_extendc	CsLxF|D]>}y$t|||�}|��|�|f�Wqtk
rBYqXqWdS)N)rgrlr�rf)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�AttributeErrorrh�deftgtrur&rr)rZformer�rrr
r�'s

zDescription.deftgtcKs|jjj|||f|�S)N)r8rhr&)rr$rr!�kwdsrrr
r&5szDescription.errorcCs|jsd|_|��dS)Nr)�is_lookuped�resolve_aspects)rrrr
rm8szDescription.resolve_lookupedcCs|��dS)N)r�)rrrr
ro=szDescription.resolve_tgtrcGs�g}|�dd�}|dkrhx |jD]}|��|�|�q W|dkrhx |jD]}|��|�|�qJW|S|f|}x*|jD] }|j|krz|��|�|�qzW|S)N� �_)rr;r)r1�argsrmrr�rp)rr:Ztags�al�arrr
�find_aspects@s"

zDescription.find_aspectscCsVg}x |jD]}|��|�|�qWx*|jD] }|jdkr.|��|�|�q.W|S)N)	r;�seq�repeat�altr��	optionals�key_arg�draw�no_arg)r�rmrr�rp)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�rpr)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�rpr�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�rprr'�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&rir�
CoverageErrorrr��Unionr�)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)r8)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)Nrrrr\)	r�rE�AssertionErrorrrr;r<rprh)�e�sa)�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_textru�gen_doc)r�outrHr,rrr
�gen_description_doc�s


zDescription.gen_description_doccCs|jS)N)ru)rrrr
�get_id_name�szDescription.get_id_namecCs|jS)N)ru)rrrr
�
get_link_name�szDescription.get_link_namecCs|jS)N)r{)rrrr
�get_local_name�szDescription.get_local_namecCs|jS)N)ru)rrrr
�
get_test_name�szDescription.get_test_namecCs|jS)N)ru)rrrr
�get_name�szDescription.get_namecCs(|�d�}|s|j}n|jjj��}|S)Nr7)r�rxrirr;r<)r�nr7rrr
�get_Name�s

zDescription.get_NamecCs|j�|�S)N)r8�get_descr_by_subject)rrjrrr
r��sz Description.get_descr_by_subjectcCs(i|_g|_i|_|s$|�|jj�dS)N)r�r�r�r�ri)r�	only_varsrrr
�init_localview�s
zDescription.init_localviewcs4����jjr(�fdd��jjD��_���dS)Ncsg|]}�j�|��qSr)rhr�)r�r;)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)rrr;r<r�r:)rr;r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�)rpr�r)r�Zk1)�flatten�ksrr
r�s
z/Description.make_and_test_kind.<locals>.flattenrrr�z(%s)�&cSsg|]
}|j�qSr)ru)r�r�rrr
r�sz2Description.make_and_test_kind.<locals>.<listcomp>)rErp�Kindr�rGrur�)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)ru)r�r�rrr
r�sz-Description.make_and_kind.<locals>.<listcomp>T)rErpr�r�rGrur��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)ru)r�r�rrr
r�)sz,Description.make_or_kind.<locals>.<listcomp>T)rE�	Superkindrpr�rGrur�r�)rr�r�rrr
�make_or_kind"szDescription.make_or_kind)N)r)N)F)r)/rcrdrer��d_sub�d_type�d_is_defr�r�r�r�r�r�r�rfr&rmror�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}�sV	





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

zDefinition.export_aspectsN)rcrdrer�r�r�rrrr
r�/sr�c@seZdZdZdZdd�ZdS)�DescriptionDescription)�textr�cCs|j�|�dS)N)ryZ
arg_accept)rr�rrr
r�CszDescriptionDescription.gen_docN)rcrdrer�rpr�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�dl�dtZstrongz	Default: �dd)	ryr;r<�splitrG�openr��close�children_accept)rr��arglines�default�restrrr
r�Hs






zDefault.gen_docN)rcrdrer�rrrr
r�Gsr�c@seZdZdd�ZdS)�DescriptionWithHeadercCst|jj���d�}|d}d�|dd��}|�d�|�|�|�d�|�|�|j�|�|�	�|�	�dS)Nr�rrr�r)
ryr;r<rrGrZgen_outer_dtr�rr)rr�r�headerrrrr
r�[s



zDescriptionWithHeader.gen_docN)rcrdrer�rrrr
rZsrc@seZdZdZdS)�Comment�commentN)rcrdrerprrrr
r
isr
c@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)rcrdrer�r�r�rrrrr
rnsrc@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)r8r9�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.rr�	imp_fromsrE�Product�ProductSubject�imp_resolve_moderirrsrtrur�r�r�r�r�r�)rZimport_noderHr,r)rrrr
ro�s"


zImport.resolve_tgtcCsdS)Nr)rrrr
r��szImport.resolve_aspectsN)rcrdrer�ror�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.)
rhrr�moder8rir&rtrrH)rrhrHrrrir,rrr
r�s

*zProduct.__init__cCsx|jD]}|�|�qWdS)N)rHr�)rrr,rrr
r��szProduct.export_aspectscCs*x$|jD]}||ks|�|�rdSqWdS)NTF)rHr�)rr,r�rrr
r��szProduct.is_more_specific_thanN)rcrdrerr�r�rrrr
r�src@seZdZdd�ZdS)rKcCs$||_||_|j|_||_||_dS)N)rhr8rrir)rrhrirrrr
r�s
zPackageDescription.__init__N)rcrdrerrrrr
rK�srKc@s eZdZdZdd�Zdd�ZdS)�ErrorDescriptionr&cCs
||_dS)N)rh)rrhrrr
r�szErrorDescription.__init__cCsdS)Nz<error>.<error>r)rrrr
r��szErrorDescription.get_id_nameN)rcrdrerprr�rrrr
r �sr c@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�pZsds�sdr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!)
�
startswithrrs�get_descr_by_tgt_namerr��KeyErrorr�rhr&r��UndefinedErrorrm)rr7rr��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)rtr,rzrEr<r&rr)rrjr7r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)rrt)r�r,rrr
r�
sz1Package.get_descr_by_tgt_name.<locals>.<listcomp>r)
r'rmr�rr&r/r�rEr�r�)rr7rr)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
roszPackage.resolve_tgtcCsi|_|��dS)N)rr�)rrrr
r�szPackage.resolve_aspectscCs0|j�|�}|dkr,|j�||�}||j|<|S)N)rr.rhr9)rr7rr8rrr
r9 s

zPackage.import_packagecCs:g}x0|jjD]$}|j}|jj�||�}|�|�qW|S)N)rr*rrZDocumentr#r)rr*�docrrrr
r^'szPackage.get_documents)N)N)rcrdrer�r'rr�r-r2r�ror�r9r^rrrr
r!�s

r!c@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�	Attribute)	r�rr��description_with_headerr�r�r�rrcCs|j|_|�|j�dS)N)r|r�r�)rrrrr
r�5szAttribute.export_aspectscCs|jS)N)rx)rrrr
�
get_attr_name9szAttribute.get_attr_namecCs|jS)N)rx)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)r7rpr�rE�
ValueErrorru)rr�r�rrr
�
get_kind_nameCs

zAttribute.get_kind_namecCs"d|�|jj���|jjf}|S)Nz%s.%s)r�ri�parentr�rw)rr]r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)r6)rrrr
�get_op_name[szAttribute.get_op_nameN)
rcrdrer�r�r6r�r7r9r�r;r<r=rrrr
r41s
r4c@seZdZdZdZdS)�KindOfr
rN)rcrdrer�r�rrrr
r>_sr>c@seZdZdZdZdS)�	SubkindOfr
)r�N)rcrdrer�r�rrrr
r?dsr?c@s eZdZdZdd�Zdd�ZdS)r�)r�rr�rrr�r�rr�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)rcrdrer�r@rArrrr
r�is	r�c@seZdZdZdd�ZdS)r�)rr�r�r�cCs|jS)N)r{)rrrr
r�}szSuperkind.get_local_nameN)rcrdrer�r�rrrr
r�zsr�c@seZdZdZddd�ZdS)�SuperkindOfr
rcCs^t�||�}t|�|krZx@|��D]4}||kr0q"|�|�|t|���t|�|kr"Pq"W|S)N)r}r�rEr�r')rZenoughr��karrr
r��szSuperkindOf.get_examplesN)r)rcrdrer�r�rrrr
rB�srBc@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)NrErr)r�rirr;r<)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)	rcrdrer��partabrMr�rNrOrrrr
rD�s
rDc@seZdZdZdS)�	InContextrN)rcrdrer�rrrr
rQ�srQc@seZdZdZdd�ZdS)�Definesr
cCsdd�|�d�D�S)NcSsg|]
}|j�qSr)ru)r�r�rrr
r��sz1Defines.get_defined_tgt_names.<locals>.<listcomp>r;)r�)rrrr
�get_defined_tgt_names�szDefines.get_defined_tgt_namesN)rcrdrer�rSrrrr
rR�srRc@seZdZdd�Zdd�ZdS)�MacrocCs|j|_|j|_dS)N)r|rv)rrrrr
r��szMacro.export_aspectscCs|jj�dd|jj|jj�S)N�blockr)rrX�node_of_tacirvr>r)r�optionsrrr
�use�sz	Macro.useN)rcrdrer�rXrrrr
rT�srTc@seZdZdZdS)�SelfrN)rcrdrer�rrrr
rY�srYc@sTeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�ZdS)�Mappingr~)r�r;r�rr�r5�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.r]rz5%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�sequnirEr&rprrrf)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>)	r_r`rr�Z
InfiniteErrorrrzZlimitedr�)rrirjr�rcZcoveragerdr�r)rirrjr
�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)Nr;ziTest coverage error: Can not create precondition for %r
 -- no examples specified for the argument above.r)r�rpr��
get_arg_valuer�r&r�rurrrr�rgrhrirj)	rr��match�arglistr�r?r7r�r�rrr
�get_args_for_argss 

zMapping.get_args_for_argscCs.|jjj}x|��D]}||�|�7}qW|S)N)rr��Epsilonr�r�)rr�rcr�rrr
r_s
zMapping.get_args_recCs|��S)N)r�)rrrr
�
get_arguments%szMapping.get_argumentscCs|�dd�|�d�D��S)NcSsg|]}|���qSr)r7)r�r�rrr
r�*sz+Mapping.get_return_kind.<locals>.<listcomp>r^)r�r�)rrrr
�get_return_kind)szMapping.get_return_kindcCs|�dd�|�d�D��S)NcSsg|]}|���qSr)r;)r�r�rrr
r�-sz0Mapping.get_return_test_kind.<locals>.<listcomp>r^)r�r�)rrrr
�get_return_test_kind,szMapping.get_return_test_kindN)
rcrdrer�r�rerfrkror_rqrrrsrrrr
rZ�srZc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)rgcs0||_||_�|_||_�fdd�|D�|_dS)Ncsg|]}�|��qSrr)r�r�)rirr
r�6sz(ArgsExample.__init__.<locals>.<listcomp>)r��egsrirj�negs)rr�rtrirjr)rir
r1s
zArgsExample.__init__cCsd�|j�S)Nz, )rGru)rrrr
�__str__8szArgsExample.__str__cCsVd}xL|j��D]>}|j}|dkr:|��|krF|j|Sntd|��|d7}qWdS)Nrr;zNo argument matches: %rr)r�r�rpr�rtZConditionError)rr7�ir�r?rrr
rl;szArgsExample.get_arg_valuecCs|j�d�S)Nr\)r�r�)rrrr
�get_preconditionsFszArgsExample.get_preconditionscCs|j�d�S)Nr])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)Nr\r�r�r])rxrjr�r��match_toro�SetUpr6)	rZpresr��mapr��mZmprermr�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�,)rx�cond_idrE�	arg_names�ziprUr�)rZpostsrm�pre�posZupdr�r�rrr
rzls 

zArgsExample.match_toN)rcrdrerrvrlrxryr~rrzrrrr
rg0srgc@s$eZdZdd�Zdd�Zdd�ZdS)r{cCs||_||_dS)N)r7r�)rr7r�rrr
r�szSetUp.__init__cCs|jS)N)r7)rrrr
r��szSetUp.get_namecCs|jS)N)r�)rrrr
�get_args�szSetUp.get_argsN)rcrdrerr�r�rrrr
r{�sr{c@s(eZdZdZdZdZdd�Zdd�ZdS)	�Operatorrr�)	r;rr�r5r[r]r\rr^cCs|jjj��S)N)rrr;r<)rrrr
r=�szOperator.get_op_namecCs|�dd�dS)Nr)re)rrrr
r��szOperator.resolve_specialN)rcrdrer�r�r�r=r�rrrr
r��s
r�c@seZdZdS)�ReverseOperatorN)rcrdrerrrr
r��sr�c@seZdZdd�ZdS)�FunctionOperatorcCs|�dd�dS)Nr)re)rrrr
r��sz FunctionOperator.resolve_specialN)rcrdrer�rrrr
r��sr�c@seZdZdS)�InplaceOperatorN)rcrdrerrrr
r��sr�c@s$eZdZdZdZdd�Zdd�ZdS)�SetItemr~)r;rr�r5r[r]r\rcCsdS)Nz[]r)rrrr
r=�szSetItem.get_op_namecCs|�dd�dS)N�)re)rrrr
r��szSetItem.resolve_specialN)rcrdrer�r�r=r�rrrr
r��sr�c@seZdZdd�ZdS)�DelItemcCs|�dd�dS)Nr)re)rrrr
r��szDelItem.resolve_specialN)rcrdrer�rrrr
r��sr�c@seZdZejdZdd�ZdS)�GetItem)r^cCs|�dd�dS)Nr)re)rrrr
r��szGetItem.resolve_specialN)rcrdrer�r�r�rrrr
r��s
r�c@s,eZdZdZdZdd�Zdd�Zee�ZdS)�	Conditionr)rr;rr��python_codecCs:g}x0|�d�D]"}|jdkr|�|jjj���qW|S)Nr)rr;)r�rprrrr;r<)rZanr�rrr
�
get_arg_names�s

zCondition.get_arg_namescCs|jj}|S)N)rrw)rZdnrrr
�get_def_name�szCondition.get_def_nameN)	rcrdrer�r�r�r��propertyZdef_namerrrr
r��s
r�c@seZdZdZdS)�
PythonCode)rr�rEN)rcrdrer�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�r}�__repr__)rrrr
r��szConditionRef.__repr__cCs |jj}|jrd|}||_|S)Nznot )�cond_definitionru�is_notr�)rr�r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�rhr�r:rwZ
cond_doc_namerr;r<r�r�r�)r�cond_defrrr
r��s
zConditionRef.resolve_specialN)
rcrdrer�r�r�rr�r�r�rrrr
r��sr�c@seZdZdZdS)�PreconditionN)rcrdre�doc_namerrrr
r��sr�c@seZdZdZdS)�
PostconditionN)rcrdrer�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)rcrdrerrrrr
r�sr�c@seZdZdZdZdS)�Constructorr
)rr�N)rcrdrer�r�rrrr
r�sr�c@seZdZdZdS)�Equation)rr�r\r]N)rcrdrer�rrrr
r�
sr�c@seZdZdZdZdd�ZdS)�Argsr
)rr�r�cCs.|jjj}x|��D]}||�|�7}qW|S)N)rr�rpr�r�)rr�rcr�rrr
r�s
zArgs.get_reN)rcrdrer�r�r�rrrr
r�sr�c@seZdZdd�ZdS)�NoArgcCs
|jjjS)N)rr�rp)rr�rrr
r�szNoArg.get_reN)rcrdrer�rrrr
r�sr�c@s2eZdZdZdd�Zdd�Zdd�Zdd	d
�ZdS)
�Arg)rrr�r�r7cCs|�|���S)N)r�r�)rrrr
r7$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�r7)rr�r�r�r�r�rrr
r�0s

zArg.get_examplesN)F)rcrdrer�r7r�r�r�rrrr
r�!s
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�KeyArgEGcCs||_||_dS)N)r7�eg)rr7r�rrr
r<szKeyArgEG.__init__cCs
|j��S)N)r�rM)rrrr
rM@szKeyArgEG.get_ex_textcCs
|j��S)N)r�rN)rrrr
rNCszKeyArgEG.get_ctx_textcCsd|j|fS)Nz%s=%s)r7)rr�rrr
rOFszKeyArgEG.get_use_textN)rcrdrerrMrNrOrrrr
r�;sr�c@seZdZddd�ZdS)�KeyArgFcs"|����fdd�t�||�D�S)Ncsg|]}t�|��qSr)r�)r�r�)r7rr
r�Qsz'KeyArg.get_examples.<locals>.<listcomp>)r�r�r�)rr�r)r7r
r�OszKeyArg.get_examplesN)F)rcrdrer�rrrr
r�Jsr�c@seZdZdZdd�ZdS)�Draw)rr�r�r�cCs2|jjj}x"|��D]}||�|�d�7}qW|S)Nr�)rr�rpr�r�)rr�rcr�rrr
r�Ws
zDraw.get_reN)rcrdrer�r�rrrr
r�Tsr�c@seZdZdZdZdd�ZdS)�	Optionals)r;r�r�rr�r
cs���fdd�������S)Ncs0|s�jjjS|d����|dd��d�S)Nrrr�)rr�rpr�)r�)r��opt_rarrr
r�cs
z Optionals.get_re.<locals>.opt_ra)r�)rr�r)r�r�rr
r�bszOptionals.get_reN)rcrdrer�r�r�rrrr
r�^sr�c@s eZdZdZdd�Zdd�ZdS)�Repeat)r�r;r�rr�cCs|jjj��S)N)rrr;r<)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�rrE�intr8�rangerr�rp)
rr�r�rcr�r;r4r��lo�hi�resrwr�rrr
r�ps`








z
Repeat.get_reN)rcrdrer�r�r�rrrr
r�jsr�c@s$eZdZdZed7ZdZdd�ZdS)�Seq)r;rr�r�)r�r
cCs.|jjj}x|��D]}||�|�7}qW|S)N)rr�rpr�r�)rr�rcr�rrr
r��s
z
Seq.get_reN)rcrdrer�r�r�rrrr
r��sr�c@seZdZdZdZdd�ZdS)�Alt)r;rZ
descriptonr�r�r�r
cCsR|��}|s|�d|jj�|d�|�}x"|dd�D]}||�|�O}q8W|S)NzNo alternatives.rr)r�r&rrr�)rr�r�rcr�rrr
r��sz
Alt.get_reN)rcrdrer�r�r�rrrr
r��sr�c@s$eZdZdZdZdd�Zdd�ZdS)�Returns)r�rr�r5r�r�rZ
with_opt_argscCs|�|���S)N)r�r�)rrrr
r7�szReturns.get_kindcCs|�|���S)N)r�r�)rrrr
r;�szReturns.get_test_kindN)rcrdrer�r�r7r;rrrr
r��sr�cCs&g}x|D]}|�|�|��q
W|S)N)r'r�)r�r:r��orrr
�find_aspects_inseq�s
r�c@seZdZdd�Zdd�ZdS)�BeamcGs$|d|_|d|_||_||_dS)Nr���)rri�k_tag�objects)rr�r�rrr
r�s

z
Beam.__init__cCs
t||�S)N)�compose)rr~rrr
�__add__�szBeam.__add__N)rcrdrerr�rrrr
r��sr�c@seZdZdS)�KindBeamN)rcrdrerrrr
r��sr�c@seZdZdS)�AtomKindBeamN)rcrdrerrrr
r��sr�c@seZdZdS)�KindMappingBeamN)rcrdrer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)Nr[)r��
get_op_seq)rrrr
�find_equations�szKindOpBeam.find_equationscCst|��d�S)Nr])r�r�)rrrr
�find_postconditions�szKindOpBeam.find_postconditionscCst|��d�S)Nr\)r�r�)rrrr
�find_preconditions�szKindOpBeam.find_preconditionscCs|jd}|���||�S)Nr)r��
get_the_oprk)rrirjrrr
rks
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�r=)rrrr
r=szKindOpBeam.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�rs)rrrr
rsszKindOpBeam.get_return_test_kindN)rcrdrer�r�r�r�r�rkr�r=r�r�r�rsrrrr
r��sr�c@seZdZdd�ZdS)�KindAttributeBeamcCsdst�dS)Nr)r�)rrrr
r�szKindAttributeBeam.get_the_opN)rcrdrer�rrrr
r�sr�c@seZdZdZdS)�KindAttributeMappingBeamr�N)rcrdrer�rrrr
r�sr�c@seZdZdd�ZdS)r�cCsdS)Nz()r)rrrr
r=!szKindMappingBeam.get_op_nameN)rcrdrer=rrrr
r� sc@seZdZdZdZdS)�	KOKOpBeamr�N)rcrdrer�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)rirr�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)rp)r�r�rrr
r��szbeam.<locals>.<listcomp>)rh�
beam_table)r�r��Crrr
r�sr�c@seZdZdd�ZdS)rcCs$||_dd�dd�|D��|_dS)Nz(%s)rcSsg|]
}|j�qSr)rt)r�r�rrr
r��sz+ProductSubject.__init__.<locals>.<listcomp>)r�rGrt)rr�rrr
r�szProductSubject.__init__N)rcrdrerr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)r:r8rrrrwr�r��
node_indexr:�get_description_classrq�aspect_mode�make_child_namert)rr:rrwrrr
r�s


zSubject.__init__cCs,|j|dd�}x|D]}|�||�qWdS)Nr)ra)�get_arglist�add_new_subject)rr�namesr7rrr
�_visit_type_definition�s
zSubject._visit_type_definitioncCsH|jjj|j}|j|dd�}x$|D]}d||f}|�||�q$WdS)Nr)raz%s:%s)rrXZreverse_node_aliasesr:r�r�)rrZshtagr�r7r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�r7)rrrr
r��sz1Subject._visit_type_with_args.<locals>.<listcomp>)r�r�r�)rrr�r�rjr)rrr
�_visit_type_with_args�s


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

z!Subject._visit_type_with_opt_argscCs|�||�}|�|�|S)N)�new_subject�add_subject)rrrwrjrrr
r��s
zSubject.add_new_subjectcCs|�|�|��|S)N)�def_subject�add_top_node)rrjr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�)rrrwrjr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")	rqr�rwr�r&rrr�r)rrjr7rrr
r��s
zSubject.def_subjectcKs|jj|||f|�S)N)r8r&)rr$rr!r�rrr
r&�sz
Subject.errorcCs|j�|||�S)N)r8r�)rr7rr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)Nr�z9Arg 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�r;r<r,rPr&rE)rrrarnr;r}rrr
r��s zSubject.get_arglistcCs|�||�}|�|�|S)N)r��no_children)rrrar�rrr
�get_arglist_only�s
zSubject.get_arglist_onlyc	CsLy.t|j��}t|���|��}WdQRXWntk
rFd}YnX|S)N)rrr/�	readlines�rstrip�	Exception)rrrar�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>r:rqr�r&r�cover_checkr=�acceptrfr�)rrr@rrr
r�szSubject._visit_childrencCsd|j|fS)Nz%s.%s)rt)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>r$r#)	rr�r:r�r�r��MacroSubject�DocumentSubjectr�)rrr7Zis_defr:rrr
r�!s
zSubject.new_subjectcCs|jj�|d|j|j�S)Nr)rrXrVr>r)rr:rr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&r:)rrrrr
r�1szSubject.no_childrencCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rar")r�r�r�)rrr7�	ofsubjectrrr
�	visit_and7szSubject.visit_andcCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rar�)r�r�r�)rrr7r�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.)
r;r<rrEr&r�r�r�r�r�)
rr�must_have_namer;Zarg_namer�Znkr7Z	kind_namerjrrr
�	visit_argAs,



zSubject.visit_argcCsdS)Nr)rrrrr
�
visit_comment`szSubject.visit_commentcCs0|j|dd�}x|D]}|�|d|�qWdS)Nr)razcond:%s)r�r�)rrr�r7r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�r:r;r<r,r�r&�getattr)rrrqr;�colonr$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�rqrPr;r<r.r&rL)rrrjrPr�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)rarrzMore than 1 'resolve' clause.)r!)r"�orzResolve by: and / or expected.r"rzUnexpected clause in import�few�manyz=Too %s 'using' names, should match number of names in .importrzNo 'from' clausez;Importing from multiple packages but no 'resolve by' clause)r�r>r:r�rr&rr;r<rEZusing_namesrr�r�rrr)rrZmy_namesZresolve_modeZusingsZfromsr@r?r7Z	using_mapZmanyfewr}�urjr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)r;r<r,r&rrVr>r�)rrr;rrr
�visit_method�s



zSubject.visit_methodcCs:|jdk	r|�d|�|j��}|s0|�d|�||_dS)NzDuplicate name specification.zNo name specification.)r�r&r;r<)rrr7rrr
�
visit_name�s

zSubject.visit_namecCs4x.|j|dd�D]}|�||�}|�|d�qWdS)Nr)rar)r�r�r�)rrr7r�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)NrIzNo left parenthesisrFz#None or misplaced right parenthesisrr�cSsg|]}|���qSr)r<)r�r�rrr
r��sz/Subject.visit_postcondition.<locals>.<listcomp>zNo condition namerznot �r-r�zcond:)r;r<r&rr�rr,rGr�r�r��	cond_namer�r�)rrr;�lpar�rparr�r�rr�r0r�rjrrr
�visit_postcondition�s:






zSubject.visit_postconditioncCs|�|�dS)N)r)rrrrr
�visit_preconditionszSubject.visit_precondition)N)N)r)r)N)F),rcrdrer�r�rr�r�r�r�r�r�r�r�r�r�rfr&r�r�r�rr�r�r�r�r�r�r�r�r�r�r�rrrrr
rrr
rrrrrrr
r��sP



	




<$r�c@seZdZdS)�ErrorSubjectN)rcrdrerrrr
rsrc@s,eZdZdd�Zdefdd�Zddd�ZdS)	rYcCs�||_||_||_||_d|f}t�||||�|�d�d|_d|_t	|_
g|_x"|jD]}||�}||j
|j<q\W|�|�|`dS)Nz%sr-r�r\)r�specenvr8rr�rrrwr:r!rqr*Zpredefined_subjectsr�rtr�)rrrrr7rr]r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�r"r�z%mykind tag without such a context: %rzInvalid tag %r in %rr�zNo such subject: %r  in %r.)	r&rr:r:rw�	enumerater�r.�SubImportSubject)rr7rrr0r:r]Z	kind_tagsZsnamerwr��nsrrr
r� s@


zPackageSubject.find_subject)N)rcrdrerrfr&r�rrrr
rYsrYc@seZdZdd�ZdS)rcCs4||_||_||_d�|jg|�|_|d|_dS)Nr-r�)r:r�rnpartsrGrtrw)rr:rrrrr
rIs
zSubImportSubject.__init__N)rcrdrerrrrr
rHsrc@seZdZdd�ZdS)r�cCsdS)Nr)rrrr
r�RszMacroSubject.add_top_nodeN)rcrdrer�rrrr
r�Qsr�c@seZdZdd�ZdS)r�cCs|jj�|�dS)N)r:r*r)rrrr
r�WszDocumentSubject.add_top_nodeN)rcrdrer�rrrr
r�Vsr�c@seZdZdd�ZdS)�
GuppyWorldcCs.||_d|_|_d|_d|_g|_t|_dS)NZGuppy_Worldz<GuppyWorld>)r8rtrwrr:r�r}rq)rrhrrr
r\szGuppyWorld.__init__N)rcrdrerrrrr
r[src+@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�r;r�r�rrrrrAr�r�r5r[r�r�r�r�r�r�rEr�r�r�r�r$r�r�r�r]r\r�r�r�r\r�r^rr�r�r�r�r�z.tgt.N�
cCs|j�|t�S)N)�description_classesr.r})rr:r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)rrb)rrr��serrr
�main�sz_GLUECLAMP_.maincCsdS)Nr)rrrr
�_test_main_�sz_GLUECLAMP_._test_main_cCs|jj�|�}||_dS)N)r2r3rRrQ)r�dirrrr
�
set_input_dir�sz_GLUECLAMP_.set_input_dir):rcrdreZ	_imports_Z	_chgable_r�r�r�r4r
r�r�r�rRr�r�rr�rDrr�r�r�rrQr�r�r�r>rTrZr�r�r�r�r�r�r�r!r�r�rYr�r�r?r�rBrrsr�rrr�r r!r#r$r&rrrr
reslrN)QZguppy.etc.DescriptorrZguppy.gsl.Exceptionsrrgr}r�r�r�rr
rrrrKr r!r4r>r?r�r�rBrDrQrRrTrYrZrgr{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�rr�rrYrr�r�rrrrrr
�<module>s T!8
&	
^.
mQ

A	${@	

Youez - 2016 - github.com/yon3zu
LinuXploit