U
    ”0c  ã                   @   s`   d dl Z dd„ ZG dd„ dƒZG dd„ deƒZG dd	„ d	e jƒZG d
d„ dƒZG dd„ dƒZdS )é    Nc                 C   s   |   dd¡S )z' Turn 's' into a valid PHP identifier. ú-Ú_)Úreplace)Ús© r   ú[/home/gitlab-runner/builds/AH7KJJS4/0/bergerc/fluidmanager-web/art-framework/bin/rad/php.pyÚto_php_identifier   s    r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	PHPStringc                 C   s
   || _ d S ©N)Úvalue©Úselfr   r   r   r   Ú__init__   s    zPHPString.__init__c                 C   s   | j  dd¡ dd¡S )Nú\z\\ú'z\')r   r   ©r   r   r   r   Úget_value_escaped   s    zPHPString.get_value_escapedc                 C   s   d|   ¡  d S )Nr   )r   r   r   r   r   Ú__str__   s    zPHPString.__str__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r	      s   r	   c                       s*   e Zd Zg df‡ fdd„	Zdd„ Z‡  ZS )ÚPHPArrayFc                    s   t t| ƒ |¡ || _d S r
   )Úsuperr   r   Ú	multiline)r   Úvaluesr   ©Ú	__class__r   r   r      s    zPHPArray.__init__c                 C   s&   | j rd}nd}d | tt| ƒ¡¡S )Nz,
ú, ú	array({}))r   ÚformatÚjoinÚmapÚstr)r   Zelem_sepr   r   r   r      s    zPHPArray.__str__©r   r   r   r   r   Ú__classcell__r   r   r   r   r      s   r   c                       s(   e Zd Zi f‡ fdd„	Zdd„ Z‡  ZS )ÚPHPDictc                    s   t t| ƒ |¡ d S r
   )r   r%   r   )r   Úitemsr   r   r   r   !   s    zPHPDict.__init__c                 C   s@   g }t |  ¡ ƒD ]\}}| d t|ƒ|¡¡ qd d |¡¡S )Nz{} => {}r   r   )Úlistr&   Úappendr   Ú
PHPLiteralr    )r   ÚelemsÚkÚvr   r   r   r   #   s    zPHPDict.__str__r#   r   r   r   r   r%       s   r%   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r)   c                 C   sp   || _ t|tƒr tt|ƒƒ| _nLt|tƒr:|r2dnd| _n2t|tƒrPt|ƒ| _n|d kr`d| _ndsltdƒ‚d S )NÚtrueZfalseÚnullFzUnknown literal type.)r   Ú
isinstancer"   r	   Ú	value_phpÚboolÚintÚAssertionErrorr   r   r   r   r   *   s    


zPHPLiteral.__init__c                 C   s   | j S r
   )r0   r   r   r   r   r   9   s    zPHPLiteral.__str__c                 C   s
   t | jƒS r
   )Úreprr   r   r   r   r   Ú__repr__;   s    zPHPLiteral.__repr__N)r   r   r   r   r   r5   r   r   r   r   r)   )   s   r)   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPHPFunctionCallc                 G   s   || _ || _d S r
   )ÚfunctionÚargs)r   r7   r8   r   r   r   r   ?   s    zPHPFunctionCall.__init__c                 C   s   d  | jd tt| jƒ¡¡S )Nz{}({})r   )r   r7   r    r!   r"   r8   r   r   r   r   r   B   s    zPHPFunctionCall.__str__N)r   r   r   r   r   r   r   r   r   r6   >   s   r6   )	Úcollectionsr   r	   r'   r   ÚOrderedDictr%   r)   r6   r   r   r   r   Ú<module>   s   		