ķ
ų`]c           @   s8   d  Z  d d l Td   Z d   Z d   Z d   Z d S(   s0   
Helper functions for CCG semantics computation
i˙˙˙˙(   t   *c         C   sĨ   |  } d  } x" t | t  r0 | } | j } q Wt d  } x% | | j   k rd t d |  } q@ Wt t |  |  } | d  k	 r | | _ n | }  t | |   S(   Nt   Ft   pattern(	   t   Nonet
   isinstancet   LambdaExpressiont   termt   Variablet   freet   unique_variablet   ApplicationExpressiont   FunctionVariableExpression(   t	   semanticst   coret   parentt   var(    (    s-   lib/python2.7/site-packages/nltk/ccg/logic.pyt   compute_type_raised_semantics   s    c         C   s   t  |  |  j   S(   N(   R
   t   simplify(   t   functiont   argument(    (    s-   lib/python2.7/site-packages/nltk/ccg/logic.pyt   compute_function_semantics"   s    c         C   sK   t  | t  s) t d t |  d   t | j t |  | j  j    S(   Nt   `s   ` must be a lambda expression(   R   R   t   AssertionErrort   strt   variableR
   R   R   (   R   R   (    (    s-   lib/python2.7/site-packages/nltk/ccg/logic.pyt   compute_composition_semantics&   s    c         C   sĒ   t  |  t  r! t  |  j t  s; t d t |   d   t  | t  sd t d t |  d   t | t |  j   j   } t |  j |  j   } t |  j |  S(   NR   s.   ` must be a lambda expression with 2 argumentss   ` must be a lambda expression(	   R   R   R   R   R   R
   t   VariableExpressionR   R   (   R   R   t   new_argumentt   new_term(    (    s-   lib/python2.7/site-packages/nltk/ccg/logic.pyt   compute_substitution_semantics/   s    N(   t   __doc__t   nltk.sem.logicR   R   R   R   (    (    (    s-   lib/python2.7/site-packages/nltk/ccg/logic.pyt   <module>	   s
   
				