3
?ญ`  ใ               @   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   | j ddS )z' Turn 's' into a valid PHP identifier. ๚-ฺ_)ฺreplace)ฺsฉ r   ๚[/home/gitlab-runner/builds/8480fa44/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 jddjddS )N๚\z\\๚'z\')r
   r   )r   r   r   r   ฺget_value_escaped   s    zPHPString.get_value_escapedc             C   s   d| j   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| j| || _d S )N)ฺsuperr   r   ฺ	multiline)r   ฺvaluesr   )ฺ	__class__r   r   r      s    zPHPArray.__init__c             C   s&   | j rd}nd}dj|jtt| S )Nz,
z, z	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| j| d S )N)r   r   r   )r   ฺitems)r   r   r   r   !   s    zPHPDict.__init__c             C   sD   g }x.t | j D ]\}}|jdjt|| qW djdj|S )Nz{} => {}z	array({})z, )ฺlistr   ฺappendr   ฺ
PHPLiteralr   )r   ฺelemsฺkฺvr   r   r   r   #   s    zPHPDict.__str__)r   r   r   r   r   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ฺAssertionError)r   r
   r   r   r   r   *   s    


zPHPLiteral.__init__c             C   s   | j S )N)r)   )r   r   r   r   r   9   s    zPHPLiteral.__str__c             C   s
   t | jS )N)ฺreprr
   )r   r   r   r   ฺ__repr__;   s    zPHPLiteral.__repr__N)r   r   r   r   r   r.   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 )N)ฺfunctionฺargs)r   r0   r1   r   r   r   r   ?   s    zPHPFunctionCall.__init__c             C   s   dj | jdjtt| jS )Nz{}({})z, )r   r0   r   r   r   r1   )r   r   r   r   r   B   s    zPHPFunctionCall.__str__N)r   r   r   r   r   r   r   r   r   r/   >   s   r/   )	ฺcollectionsr   r	   r    r   ฺOrderedDictr   r"   r/   r   r   r   r   ฺ<module>   s   		