+
    ÖÇÜh'  ã                   ó°   € ^ RI HtHt ^ RIHt ^ RIHt ] ! R R]R7      4       t ! R R]4      t] ! R	 R
4      4       t	 ! R R]4      t
 ! R R]4      tR# )é    )ÚABCMetaÚabstractmethod)Útotal_ordering)Úraise_unorderable_typesc                   óœ   a € ] tR t^t o Rt]R 4       t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       tR tR	 tR
 tR tRtV tR# )ÚAbstractCCGCategoryz3
Interface for categories in combinatory grammars.
c                ó   € R# )z,
Returns true if the category is primitive.
N© ©Úselfs   &Ú./usr/lib/python3/dist-packages/nltk/ccg/api.pyÚis_primitiveÚ AbstractCCGCategory.is_primitive   ó   ‚ ó    c                ó   € R# )z9
Returns true if the category is a function application.
Nr
   r   s   &r   Úis_functionÚAbstractCCGCategory.is_function   r   r   c                ó   € R# )z-
Returns true if the category is a variable.
Nr
   r   s   &r   Úis_varÚAbstractCCGCategory.is_var    r   r   c                ó   € R# )z~
Takes a set of (var, category) substitutions, and replaces every
occurrence of the variable with the corresponding category.
Nr
   )r   Úsubstitutionss   &&r   Ú
substituteÚAbstractCCGCategory.substitute&   r   r   c                ó   € R# )z—
Determines whether two categories can be unified.
 - Returns None if they cannot be unified
 - Returns a list of necessary substitutions if they can.
Nr
   ©r   Úothers   &&r   Ú	can_unifyÚAbstractCCGCategory.can_unify-   r   r   c                ó   € R # ©Nr
   r   s   &r   Ú__str__ÚAbstractCCGCategory.__str__6   s   € ár   c                ót   € V P                   VP                   J ;'       d    V P                  VP                  8H  # r"   ©Ú	__class__Ú_comparison_keyr   s   &&r   Ú__eq__ÚAbstractCCGCategory.__eq__:   ó5   € à�N‰N˜eŸo™oÐ-÷ >ð >Ø×$Ñ$¨×(=Ñ(=Ñ=ð	
r   c                ó   € W8X  * # r"   r
   r   s   &&r   Ú__ne__ÚAbstractCCGCategory.__ne__@   ó   € ØÒ Ð r   c                ó  € \        V\        4      '       g   \        R W4       V P                  VP                  J d   V P                  VP                  8  # V P                  P
                  VP                  P
                  8  # ©Ú<)Ú
isinstancer   r   r'   r(   Ú__name__r   s   &&r   Ú__lt__ÚAbstractCCGCategory.__lt__C   s`   € Ü˜%Ô!4×5Ò5Ü# C¨Ô5Ø�>‰>˜UŸ_™_Ó,Ø×'Ñ'¨%×*?Ñ*?Ñ?Ð?à—>‘>×*Ñ*¨U¯_©_×-EÑ-EÑEÐEr   c                óŠ   €  V P                   #   \         d*    \        T P                  4      T n         T P                   u # i ; ir"   ©Ú_hashÚAttributeErrorÚhashr(   r   s   &r   Ú__hash__ÚAbstractCCGCategory.__hash__K   ó<   € ð	Ø—:‘:ÐøÜô 	Ü˜d×2Ñ2Ó3ˆDŒJØ—:‘:Òð	úó   ‚ Ž1AÁA)r9   N)r4   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   r   r   r#   r)   r-   r5   r<   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      sœ   ø‡ € ñð ñó ðð
 ñó ðð
 ñó ðð
 ñó ðð ñó ðð ñó ðò
ò!òF÷ð r   r   )Ú	metaclassc                   ó|   a € ] tR t^St o Rt^ tRR lt]R 4       t]R 4       t	R t
R tR tR tR	 tR
 tR tRtV tR# )ÚCCGVarz€
Class representing a variable CCG category.
Used for conjunctions (and possibly type-raising, if implemented as a
unary rule).
c                ó^   € V P                  4       V n        Wn        V P                  V n        R# )z·Initialize a variable (selects a new identifier)

:param prim_only: a boolean that determines whether the variable is
                  restricted to primitives
:type prim_only: bool
N)Únew_idÚ_idÚ
_prim_onlyr(   )r   Ú	prim_onlys   &&r   Ú__init__ÚCCGVar.__init__\   s"   € ð —;‘;“=ˆŒØ#ŒØ#Ÿx™xˆÖr   c                óX   € V P                   ^,           V n         V P                   ^,
          # )zD
A class method allowing generation of unique variable identifiers.
©Ú_maxID©Úclss   &r   rL   ÚCCGVar.new_idg   s!   € ð
 —Z‘Z !•^ˆŒ
Ø�z‰z˜A�~Ðr   c                ó   € ^ V n         R# )r   NrS   rU   s   &r   Úreset_idÚCCGVar.reset_ido   s	   € àˆŽ
r   c                ó   € R # ©Fr
   r   s   &r   r   ÚCCGVar.is_primitives   ó   € Ùr   c                ó   € R # r\   r
   r   s   &r   r   ÚCCGVar.is_functionv   r^   r   c                ó   € R # ©Tr
   r   s   &r   r   ÚCCGVar.is_vary   ó   € Ùr   c                ó0   € V F  w  r#W 8X  g   K  Vu # 	  V # )z\If there is a substitution corresponding to this variable,
return the substituted category.
r
   )r   r   ÚvarÚcats   &&  r   r   ÚCCGVar.substitute|   s!   € ó &‰HˆCØŽ{Ø’
ñ &ð ˆr   c                ó^   € VP                  4       '       g   V P                  '       g   W3.# R# )zGIf the variable can be replaced with other
a substitution is returned.
N)r   rN   r   s   &&r   r   ÚCCGVar.can_unify…   s(   € ð ×Ñ×Ò t§§ Ø�M�?Ð"Ùr   c                ó   € V P                   # r"   )rM   r   s   &r   ÚidÚ	CCGVar.id�   s   € Ø�x‰xˆr   c                ó:   € R \        V P                  4      ,           # )Ú_var)ÚstrrM   r   s   &r   r#   ÚCCGVar.__str__�   s   € Øœ˜DŸH™H›Õ%Ð%r   )r(   rM   rN   Nr\   )r4   r@   rA   rB   rC   rT   rP   ÚclassmethodrL   rY   r   r   r   r   r   rl   r#   rD   rE   rF   s   @r   rJ   rJ   S   sf   ø‡ € ñð €Fô	(ð ñó ðð ñó ðòòòòòò÷&ð &r   rJ   c                   ó„   a € ] tR t^”t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tRtV tR# )Ú	Directionz˜
Class representing the direction of a function application.
Also contains maintains information as to which combinators
may be used with the category.
c                óB   € Wn         W n        V\        V4      3V n        R # r"   )Ú_dirÚ_restrsÚtupler(   )r   ÚdirÚrestrictionss   &&&r   rP   ÚDirection.__init__œ   s   € ØŒ	Ø#ŒØ #¤U¨<Ó%8Ð9ˆÖr   c                ó    € V P                   R 8H  # )Ú/©rv   r   s   &r   Ú
is_forwardÚDirection.is_forward¢   s   € Ø�y‰y˜CÑÐr   c                ó    € V P                   R 8H  # )Ú\r~   r   s   &r   Úis_backwardÚDirection.is_backward¥   s   € Ø�y‰y˜DÑ Ð r   c                ó   € V P                   # r"   r~   r   s   &r   ry   ÚDirection.dir¨   ó   € Ø�y‰yÐr   c                ó   € V P                   # )a  A list of restrictions on the combinators.
'.' denotes that permuting operations are disallowed
',' denotes that function composition is disallowed
'_' denotes that the direction has variable restrictions.
(This is redundant in the current implementation of type-raising)
©rw   r   s   &r   ÚrestrsÚDirection.restrs«   s   € ð �|‰|Ðr   c                ó    € V P                   R 8H  # ©Ú_r‰   r   s   &r   Úis_variableÚDirection.is_variable´   s   € Ø�|‰|˜sÑ"Ð"r   c                óô   € VP                  4       '       d   R V P                  4       3.# V P                  4       '       d   R VP                  4       3.# V P                  4       VP                  4       8X  d   . # R# )rŽ   N)r�   rŠ   r   s   &&r   r   ÚDirection.can_unifyº   sd   € Ø×Ñ×ÒØ˜$Ÿ+™+›-Ð(Ð)Ð)Ø×Ñ×ÒØ˜%Ÿ,™,›.Ð)Ð*Ð*à�{‰{‹} §¡£Ô.Ø�	Ùr   c                óŠ   € V P                  4       '       g   V # V F$  w  r#VR 8X  g   K  \        V P                  V4      u # 	  V # r�   )r�   rt   rv   )r   Úsubsrf   rŠ   s   &&  r   r   ÚDirection.substituteÄ   sA   € Ø×Ñ×!Ò!ØˆKã‰KˆCØ�cŽzÜ  §¡¨FÓ3Ò3ñ  ð ˆr   c                ó    € R V P                   9  # )Ú,r‰   r   s   &r   Úcan_composeÚDirection.can_composeÎ   ó   € Ø˜$Ÿ,™,Ñ&Ð&r   c                ó    € R V P                   9  # )Ú.r‰   r   s   &r   Ú	can_crossÚDirection.can_crossÑ   rš   r   c                ót   € V P                   VP                   J ;'       d    V P                  VP                  8H  # r"   r&   r   s   &&r   r)   ÚDirection.__eq__Ô   r+   r   c                ó   € W8X  * # r"   r
   r   s   &&r   r-   ÚDirection.__ne__Ú   r/   r   c                ó  € \        V\        4      '       g   \        R W4       V P                  VP                  J d   V P                  VP                  8  # V P                  P
                  VP                  P
                  8  # r1   )r3   rt   r   r'   r(   r4   r   s   &&r   r5   ÚDirection.__lt__Ý   s_   € Ü˜%¤×+Ò+Ü# C¨Ô5Ø�>‰>˜UŸ_™_Ó,Ø×'Ñ'¨%×*?Ñ*?Ñ?Ð?à—>‘>×*Ñ*¨U¯_©_×-EÑ-EÑEÐEr   c                óŠ   €  V P                   #   \         d*    \        T P                  4      T n         T P                   u # i ; ir"   r8   r   s   &r   r<   ÚDirection.__hash__å   r>   r?   c                ól   € R pV P                    F  pVRV,          ,           pK  	  V P                   V 2# )Ú ú%s)rw   rv   )r   Úr_strÚrs   &  r   r#   ÚDirection.__str__ì   s6   € ØˆØ—”ˆAØ˜D 1�HÕ$ŠEñ à—)‘)�˜U˜GÐ$Ð$r   c                ó|   € V P                   R 8X  d   \        RV P                  4      # \        R V P                  4      # )r}   r‚   )rv   rt   rw   r   s   &r   Ú__neg__ÚDirection.__neg__ó   s0   € Ø�9‰9˜ÔÜ˜T 4§<¡<Ó0Ð0ä˜S $§,¡,Ó/Ð/r   )r(   rv   r9   rw   N)r4   r@   rA   rB   rC   rP   r   rƒ   ry   rŠ   r�   r   r   r˜   r�   r)   r-   r5   r<   r#   r®   rD   rE   rF   s   @r   rt   rt   ”   s`   ø‡ € ñò:ò ò!òòò#òòò'ò'ò
ò!òFòò%÷0ð 0r   rt   c                   ó`   a € ] tR t^út o Rt. 3R ltR tR tR tR t	R t
R tR	 tR
 tRtV tR# )ÚPrimitiveCategoryz›
Class representing primitive categories.
Takes a string representation of the category, and a
list of strings specifying the morphological subcategories.
c                óB   € Wn         W n        V\        V4      3V n        R # r"   )Ú_categrw   rx   r(   )r   Úcategrz   s   &&&r   rP   ÚPrimitiveCategory.__init__  s   € ØŒØ#ŒØ %¤u¨\Ó':Ð;ˆÖr   c                ó   € R # rb   r
   r   s   &r   r   ÚPrimitiveCategory.is_primitive  rd   r   c                ó   € R # r\   r
   r   s   &r   r   ÚPrimitiveCategory.is_function	  r^   r   c                ó   € R # r\   r
   r   s   &r   r   ÚPrimitiveCategory.is_var  r^   r   c                ó   € V P                   # r"   r‰   r   s   &r   rŠ   ÚPrimitiveCategory.restrs  s   € Ø�|‰|Ðr   c                ó   € V P                   # r"   )r³   r   s   &r   r´   ÚPrimitiveCategory.categ  s   € Ø�{‰{Ðr   c                ó   € V # r"   r
   )r   r”   s   &&r   r   ÚPrimitiveCategory.substitute  s   € Øˆr   c                ó  € VP                  4       '       g   R # VP                  4       '       d   W3.# VP                  4       V P                  4       8X  d-   V P                   F  pW!P	                  4       9  g   K   R # 	  . # R # r"   )r   r   r´   rw   rŠ   )r   r   Úrestrs   && r   r   ÚPrimitiveCategory.can_unify  sd   € Ø×!Ñ!×#Ò#ÙØ�<‰<�>Š>Ø�M�?Ð"Ø�;‰;‹=˜DŸJ™J›LÔ(ØŸœ�Ø§¡£Ö.Úñ &ð ˆIÙr   c                ó¼   € V P                   . 8X  d   R V P                  ,          # RRP                  R V P                    4       4      ,          pV P                   V 2# )r©   z[%s]r—   c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir"   )Úrepr)Ú.0r«   s   & r   Ú	<genexpr>Ú,PrimitiveCategory.__str__.<locals>.<genexpr>+  s   é € Ð(G¹,°Q¬¨a¯¨»,ùs   ‚)rw   r³   Újoin)r   rz   s   & r   r#   ÚPrimitiveCategory.__str__(  sM   € Ø�<‰<˜2ÔØ˜$Ÿ+™+Õ%Ð%Ø §¡Ñ(G¸$¿,º,Ó(GÓ GÕGˆØ—+‘+�˜|˜nÐ-Ð-r   )r³   r(   rw   N)r4   r@   rA   rB   rC   rP   r   r   r   rŠ   r´   r   r   r#   rD   rE   rF   s   @r   r±   r±   ú   sA   ø‡ € ñð ,.ô <ò
òòòòòò
÷.ð .r   r±   c                   ó`   a € ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )ÚFunctionalCategoryi/  zŒ
Class that represents a function application category.
Consists of argument and result categories, together with
an application direction.
c                ó<   € Wn         W n        W0n        W#V3V n        R # r"   )Ú_resÚ_argrv   r(   )r   ÚresÚargry   s   &&&&r   rP   ÚFunctionalCategory.__init__6  s   € ØŒ	ØŒ	ØŒ	Ø #¨#˜ˆÖr   c                ó   € R # r\   r
   r   s   &r   r   ÚFunctionalCategory.is_primitive<  r^   r   c                ó   € R # rb   r
   r   s   &r   r   ÚFunctionalCategory.is_function?  rd   r   c                ó   € R # r\   r
   r   s   &r   r   ÚFunctionalCategory.is_varB  r^   r   c                óÐ   € V P                   P                  V4      pV P                  P                  V4      pV P                  P                  V4      p\	        W$V P                  4      # r"   )rÐ   r   rv   rÑ   rÎ   )r   r”   Úsub_resÚsub_dirÚsub_args   &&   r   r   ÚFunctionalCategory.substituteG  sO   € Ø—)‘)×&Ñ& tÓ,ˆØ—)‘)×&Ñ& tÓ,ˆØ—)‘)×&Ñ& tÓ,ˆÜ! '°D·I±IÓ>Ð>r   c                óÀ  € VP                  4       '       d   W3.# VP                  4       '       d®   V P                  P                  VP	                  4       4      pV P
                  P                  VP                  4       4      pVeX   VeT   V P                  P                  V4      P                  VP                  4       P                  V4      4      pVe	   W$,           # R # r"   )
r   r   rÐ   r   rÒ   rv   ry   rÑ   r   rÓ   )r   r   ÚsaÚsdÚsbs   &&   r   r   ÚFunctionalCategory.can_unifyO  s¢   € Ø�<‰<�>Š>Ø�M�?Ð"Ø×Ñ×ÒØ—‘×$Ñ$ U§Y¡Y£[Ó1ˆBØ—‘×$Ñ$ U§Y¡Y£[Ó1ˆBØŠ~ "¢.Ø—Y‘Y×)Ñ)¨"Ó-×7Ñ7¸¿	¹	»×8NÑ8NÈrÓ8RÓS�Ø’>Ø�7�NÙr   c                ó   € V P                   # r"   )rÑ   r   s   &r   rÓ   ÚFunctionalCategory.arg\  r‡   r   c                ó   € V P                   # r"   )rÐ   r   s   &r   rÒ   ÚFunctionalCategory.res_  r‡   r   c                ó   € V P                   # r"   r~   r   s   &r   ry   ÚFunctionalCategory.dirb  r‡   r   c                óR   € R V P                    V P                   V P                   R2# )Ú(Ú))rÐ   rv   rÑ   r   s   &r   r#   ÚFunctionalCategory.__str__e  s%   € Ø�4—9‘9�+˜dŸi™i˜[¨¯©¨°1Ð5Ð5r   )rÑ   r(   rv   rÐ   N)r4   r@   rA   rB   rC   rP   r   r   r   r   r   rÓ   rÒ   ry   r#   rD   rE   rF   s   @r   rÎ   rÎ   /  sA   ø‡ € ñò/òòòò
?ò
òòò÷6ð 6r   rÎ   N)Úabcr   r   Ú	functoolsr   Únltk.internalsr   r   rJ   rt   r±   rÎ   r
   r   r   Ú<module>rò      su   ð÷ (Ý $å 2ð ôA Gô Aó ðAôH>&Ð ô >&ðB ÷b0ð b0ó ðb0ôJ2.Ð+ô 2.ôj76Ð,ö 76r   