§
    'ê[f÷×  ã                   ó¬  — d Z ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZ  G d„ d	¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de!¦  «        Z" G d„ de!¦  «        Z# G d„ de!¦  «        Z$ G d„ de!¦  «        Z% G d„ de!¦  «        Z& G d „ d!e!¦  «        Z' G d"„ d#e!¦  «        Z( G d$„ d%e!¦  «        Z) G d&„ d'¦  «        Z* G d(„ d)¦  «        Z+ G d*„ d+e,¦  «        Z-e.d,k    �rŠ e	d-¦  «        Z/e/ 0                    d.d/d0d1d2d3¬4¦  «         e/ 0                    d5d6d7d1d2d8¬4¦  «         e/ 0                    d9d:d;d1d2d<¬4¦  «         e/ 0                    d=d>d?d1d2d@¬4¦  «         e/ 1                    ¦   «         \  Z2Z3 e4e3¦  «        dAk    re/ 5                    dB¦  «          e+e2j6        ¬C¦  «        Z7 ee7¦  «         8                    e3d          9                    dD¦  «        e2j:        e2j;        ¬E¦  «        Z<e<€ e=d¦  «         dS e< >                    ¦   «          ?                    ¦   «         Z<e2j@        r1 e=e< @                    ¦   «          A                    ¦   «         ¦  «         dS e< B                    ¦   «          dS dS )Fa€  
An interface to Boxer.

This interface relies on the latest version of the development (subversion) version of
C&C and Boxer.

Usage
=====

Set the environment variable CANDC to the bin directory of your CandC installation.
The models directory should be in the CandC root directory.
For example::

    /path/to/candc/
    bin/
        candc
        boxer
    models/
        boxer/
é    N)Úreduce)ÚOptionParser©Úfind_binary)	ÚDRSÚDrtApplicationExpressionÚDrtEqualityExpressionÚDrtNegatedExpressionÚDrtOrExpressionÚ	DrtParserÚDrtPropositionÚ	DrtTokensÚDrtVariableExpression)ÚExpectedMoreTokensExceptionÚLogicalExpressionExceptionÚUnexpectedTokenExceptionÚVariablec                   ó€   — e Zd ZdZ	 	 	 	 	 dd„Zdd„Zdd„Zdd„Z	 dd	„Z	 dd
„Z	dd„Z
dd„Zdd„Zg dfd„Zd„ Zd„ ZdS )ÚBoxerz 
    This class is an interface to Johan Bos's program Boxer, a wide-coverage
    semantic parser that produces Discourse Representation Structures (DRSs).
    NFTc                 ó|   — |€t          ¦   «         }|| _        || _        || _        |                      ||¦  «         dS )aº  
        :param boxer_drs_interpreter: A class that converts from the
            ``AbstractBoxerDrs`` object hierarchy to a different object.  The
            default is ``NltkDrtBoxerDrsInterpreter``, which converts to the NLTK
            DRT hierarchy.
        :param elimeq: When set to true, Boxer removes all equalities from the
            DRSs and discourse referents standing in the equality relation are
            unified, but only if this can be done in a meaning-preserving manner.
        :param resolve: When set to true, Boxer will resolve all anaphoric DRSs and perform merge-reduction.
            Resolution follows Van der Sandt's theory of binding and accommodation.
        N)ÚNltkDrtBoxerDrsInterpreterÚ_boxer_drs_interpreterÚ_resolveÚ_elimeqÚset_bin_dir)ÚselfÚboxer_drs_interpreterÚelimeqÚbin_dirÚverboseÚresolves         úB/var/www/piapp/venv/lib/python3.11/site-packages/nltk/sem/boxer.pyÚ__init__zBoxer.__init__A   sH   € ð& !Ð(Ý$>Ñ$@Ô$@Ð!Ø&;ˆÔ#àˆŒØˆŒà×Ò˜ 'Ñ*Ô*Ð*Ð*Ð*ó    c                 ó  — |                       d||¦  «        | _        t          j                             t          j                             | j        d d…         d¦  «        ¦  «        | _        |                       d||¦  «        | _        d S )NÚcandcéûÿÿÿz	../modelsÚboxer)Ú_find_binaryÚ
_candc_binÚosÚpathÚnormpathÚjoinÚ_candc_models_pathÚ
_boxer_bin)r   r   r    s      r"   r   zBoxer.set_bin_dir]   sr   € Ø×+Ò+¨G°W¸gÑFÔFˆŒÝ"$¤'×"2Ò"2ÝŒG�LŠL˜œ¨¨"¨Ô-¨{Ñ;Ô;ñ#
ô #
ˆÔð ×+Ò+¨G°W¸gÑFÔFˆŒˆˆr$   c                 óv   — |�|gnd}|                       |gg|||¦  «        \  }|st          d|› d�¦  «        ‚|S )aI  
        Use Boxer to give a first order representation.

        :param input: str Input sentence to parse
        :param occur_index: bool Should predicates be occurrence indexed?
        :param discourse_id: str An identifier to be inserted to each occurrence-indexed predicate.
        :return: ``drt.DrtExpression``
        NúUnable to interpret: "ú"©Úinterpret_multi_sentsÚ	Exception©r   ÚinputÚdiscourse_idÚquestionr    Údiscourse_idsÚds          r"   Ú	interpretzBoxer.interpretd   sZ   € ð +7Ð*B˜˜˜ÈˆØ×)Ò)¨E¨7¨)°]ÀHÈgÑVÔV‰ˆØð 	?ÝÐ=°UÐ=Ð=Ð=Ñ>Ô>Ð>Øˆr$   c                 ót   — |�|gnd}|                       |g|||¦  «        \  }|st          d|› d�¦  «        ‚|S )ah  
        Use Boxer to give a first order representation.

        :param input: list of str Input sentences to parse as a single discourse
        :param occur_index: bool Should predicates be occurrence indexed?
        :param discourse_id: str An identifier to be inserted to each occurrence-indexed predicate.
        :return: ``drt.DrtExpression``
        Nr2   r3   r4   r7   s          r"   Úinterpret_multizBoxer.interpret_multis   sX   € ð +7Ð*B˜˜˜ÈˆØ×)Ò)¨5¨'°=À(ÈGÑTÔT‰ˆØð 	?ÝÐ=°UÐ=Ð=Ð=Ñ>Ô>Ð>Øˆr$   c                 óF   — |                       d„ |D ¦   «         |||¦  «        S )a{  
        Use Boxer to give a first order representation.

        :param inputs: list of str Input sentences to parse as individual discourses
        :param occur_index: bool Should predicates be occurrence indexed?
        :param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
        :return: list of ``drt.DrtExpression``
        c                 ó   — g | ]}|g‘ŒS © rB   )Ú.0r8   s     r"   ú
<listcomp>z)Boxer.interpret_sents.<locals>.<listcomp>Ž   s   € Ð)Ð)Ð)˜ˆeˆWÐ)Ð)Ð)r$   )r5   )r   Úinputsr;   r:   r    s        r"   Úinterpret_sentszBoxer.interpret_sents‚   s3   € ð ×)Ò)Ø)Ð) &Ð)Ñ)Ô)¨=¸(ÀGñ
ô 
ð 	
r$   c           
      óÂ  ‡— |�Kt          |¦  «        t          |¦  «        k    sJ ‚t          t          j        d„ |D ¦   «         ¦  «        sJ ‚d}n>t	          t          t          t          t          |¦  «        ¦  «        ¦  «        ¦  «        }d}|                      ||||¬¦  «        }|  	                    ||¬¦  «        }|  
                    ||¦  «        Šˆfd„|D ¦   «         S )ac  
        Use Boxer to give a first order representation.

        :param inputs: list of list of str Input discourses to parse
        :param occur_index: bool Should predicates be occurrence indexed?
        :param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
        :return: ``drt.DrtExpression``
        Nc              3   ó   K  — | ]}|d uV — Œ	d S ©NrB   )rC   Úids     r"   ú	<genexpr>z.Boxer.interpret_multi_sents.<locals>.<genexpr>ž   s&   è è € Ð)QÐ)Q¸R¨"°D¨.Ð)QÐ)QÐ)QÐ)QÐ)QÐ)Qr$   TF)r    c                 ó<   •— g | ]}‰                      |d ¦  «        ‘ŒS rI   )Úget)rC   rJ   Údrs_dicts     €r"   rD   z/Boxer.interpret_multi_sents.<locals>.<listcomp>«   s'   ø€ Ð?Ð?Ð?¨2�—’˜R Ñ&Ô&Ð?Ð?Ð?r$   )Úlenr   ÚoperatorÚand_ÚlistÚmapÚstrÚrangeÚ_call_candcÚ_call_boxerÚ_parse_to_drs_dict)	r   rE   r;   r:   r    Úuse_disc_idÚ	candc_outÚ	boxer_outrN   s	           @r"   r5   zBoxer.interpret_multi_sents‘   sç   ø€ ð Ð$Ý�v‘;”;¥# mÑ"4Ô"4Ò4Ð4Ð4Ð4Ý�(œ-Ð)QÐ)QÀ=Ð)QÑ)QÔ)QÑRÔRÐRÐRÐRØˆKˆKå ¥¥S­%µ°F±´Ñ*<Ô*<Ñ!=Ô!=Ñ>Ô>ˆMØˆKà×$Ò$ V¨]¸HÈgÐ$ÑVÔVˆ	Ø×$Ò$ Y¸Ð$Ñ@Ô@ˆ	ð
 ×*Ò*¨9°kÑBÔBˆØ?Ð?Ð?Ð?°Ð?Ñ?Ô?Ð?r$   c                 ó  — dt           j                             | j        ddg|         ¦  «        ddg}|                      d                     t          d„ t          ||¦  «        D ¦   «         g ¦  «        ¦  «        | j        ||¦  «        S )aF  
        Call the ``candc`` binary with the given input.

        :param inputs: list of list of str Input discourses to parse
        :param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
        :param filename: str A filename for the output file
        :return: stdout
        z--modelsr(   Ú	questionsz--candc-printerÚ
c              3   ó0   K  — | ]\  }}d |› d�g|z   V — ŒdS )z<META>'ú'NrB   )rC   r<   rJ   s      r"   rK   z$Boxer._call_candc.<locals>.<genexpr>¿   s6   è è € ÐSÐS©u¨q°"�o �o�o�oÐ&¨Ñ*ÐSÐSÐSÐSÐSÐSr$   )r+   r,   r.   r/   Ú_callÚsumÚzipr*   )r   rE   r;   r:   r    Úargss         r"   rV   zBoxer._call_candc­   s•   € ð ÝŒG�LŠL˜Ô0°7¸KÐ2HÈÔ2RÑSÔSØØð	
ˆð �zŠzØ�IŠIÝØSÐS½¸FÀMÑ8RÔ8RÐSÑSÔSØñô ñô ð ŒOØØñ

ô 

ð 
	
r$   c                 óÖ  — d}	 t          j        ddd¬¦  «        \  }}t          j        |d¦  «        }|                     |                     d¦  «        ¦  «         |r|                     ¦   «          n# |r|                     ¦   «          w w xY wdd	d
ddd	dg| j                 dd	dg| j                 ddddd|g}|  	                    d| j
        ||¦  «        }t          j        |¦  «         |S )z�
        Call the ``boxer`` binary with the given input.

        :param candc_out: str output from C&C parser
        :return: stdout
        Nzboxer-z.inT)ÚprefixÚsuffixÚtextÚwúutf-8z--boxÚfalsez--semanticsÚdrsz	--resolveÚtruez--elimeqz--formatÚprologz--instantiatez--input)ÚtempfileÚmkstempr+   ÚfdopenÚwriteÚdecodeÚcloser   r   ra   r0   Úremove)r   rZ   r    ÚfÚfdÚtemp_filenamerd   Ústdouts           r"   rW   zBoxer._call_boxerÈ   s  € ð ˆð	Ý (Ô 0Ø¨°Dð!ñ !ô !ÑˆB�õ ”	˜"˜cÑ"Ô"ˆAØ�GŠG�I×$Ò$ WÑ-Ô-Ñ.Ô.Ð.àð Ø—’‘	”	�	øøð ð Ø—’‘	”	�	�	ðøøøð ØØØàØ�fÐ˜dœmÔ,ØØ�fÐ˜dœlÔ+ØØØØØØð
ˆð" —’˜D $¤/°4¸ÑAÔAˆÝ
Œ	�-Ñ Ô Ð Øˆs   „AA2 Á2Bc           	      ó8   — t          ||dgd||dz   g|¬¦  «        S )NÚCANDCz)http://svn.ask.it.usyd.edu.au/trac/candc/z.exe)Úpath_to_binÚenv_varsÚurlÚbinary_namesr    r   )r   Únamer   r    s       r"   r)   zBoxer._find_binaryï   s6   € ÝØØØ�YØ;Ø  v¡Ð.Øð
ñ 
ô 
ð 	
r$   c                 ó  — |rYt          d|¦  «         t          d|¦  «         t          d|¦  «         t          d|dz   d                     |¦  «        z   ¦  «         |€2|g|z   }t          j        |t          j        t          j        ¬¦  «        }nVd                     ||d                     |¦  «        ¦  «        }t          j        |t          j        t          j        d	¬
¦  «        }|                     ¦   «         \  }}|r;t          d|j        ¦  «         |rt          d|d¦  «         |rt          d|d¦  «         |j        dk    r=t          d                     |d                     |¦  «        |j        |¦  «        ¦  «        ‚|S )a  
        Call the binary with the given input.

        :param input_str: A string whose contents are used as stdin.
        :param binary: The location of the binary to call
        :param args: A list of command-line arguments.
        :return: stdout
        zCalling:zArgs:zInput:zCommand:Ú N)ry   Ústderrzecho "{}" | {} {}T)ry   rƒ   ÚshellzReturn code:zstdout:
r^   zstderr:
r   z&ERROR CALLING: {} {}
Returncode: {}
{})	Úprintr.   Ú
subprocessÚPopenÚPIPEÚformatÚcommunicateÚ
returncoder6   )	r   Ú	input_strÚbinaryrd   r    ÚcmdÚpry   rƒ   s	            r"   ra   zBoxer._callù   sƒ  € ð ð 	=Ý�*˜fÑ%Ô%Ð%Ý�'˜4Ñ Ô Ð Ý�(˜IÑ&Ô&Ð&Ý�*˜f s™l¨S¯XªX°d©^¬^Ñ;Ñ<Ô<Ð<ð ÐØ�(˜T‘/ˆCÝÔ  ­Z¬_ÅZÄ_ÐUÑUÔUˆAˆAà%×,Ò,¨Y¸ÀÇÂÈÁÄÑOÔOˆCÝÔ Ø�JœOµJ´OÈ4ðñ ô ˆAð Ÿš™œ‰ˆ�àð 	1Ý�. !¤,Ñ/Ô/Ð/Øð 1Ý�k 6¨4Ñ0Ô0Ð0Øð 1Ý�k 6¨4Ñ0Ô0Ð0ØŒ<˜1ÒÐÝØ:×AÒAØ˜CŸHšH T™NœN¨A¬L¸&ñô ñô ð ð ˆr$   c                 ó  — |                      d¦  «                             d¦  «        }i }d}|t          |¦  «        k     �rË||         }|                     d¦  «        �r”|                     d¦  «        }|d|…         }|d         dk    r|d         dk    r
|d	d…         }||d	z   |                     d
¦  «        …         }	|d	z  }||         }|                     d|	› d�¦  «        sJ ‚|dd …         dk    r|d d…         dz   }|                     d¦  «        sJ d|› �¦   «         ‚t          d|	› d�¦  «        }
d	}d}t          ||
d …         ¦  «        D ]G\  }}|dk    r|d	z  }|dk    r1|d	z  }|dk    r&|
|z   d	z   }|||dz   …         dk    r|dz   }n|d	z   } nŒH|dk    sJ ‚||d…                              ¦   «         }|                      |||¦  «        }| j	         
                    |¦  «        ||<   |d	z  }|t          |¦  «        k     �°Ë|S )Nrj   r^   r   zid(ú,é   r`   éÿÿÿÿé   ú)zsem(éüÿÿÿz').'z).zcan't parse line: z,[ú[ú]z','éþÿÿÿ)rs   ÚsplitrO   Ú
startswithÚindexÚendswithÚ	enumerateÚstripÚ
_parse_drsr   r=   )r   r[   rY   ÚlinesrN   ÚiÚlineÚ	comma_idxr9   Údrs_idÚsearch_startÚbrace_countÚ	drs_startÚjÚcÚ	drs_inputÚparseds                    r"   rX   zBoxer._parse_to_drs_dict"  sx  € Ø× Ò  Ñ)Ô)×/Ò/°Ñ5Ô5ˆØˆØˆØ•#�e‘*”*Šn‰nØ˜”8ˆDØ�Š˜uÑ%Ô%ñ  WØ ŸJšJ s™OœO�	Ø# A i KÔ0�Ø ”? cÒ)Ð)¨l¸2Ô.>À#Ò.EÐ.EØ#/°°"°Ô#5�LØ˜i¨!™m¨d¯jªj¸©o¬oÐ=Ô>�Ø�Q‘�Ø˜Q”x�Ø—’Ð'7¨fÐ'7Ð'7Ð'7Ñ8Ô8Ð8Ð8Ð8Ø˜˜˜”9 Ò&Ð&Ø   œ9 tÑ+�DØ—}’} TÑ*Ô*ÐGÐGÐ,GÀÐ,GÐ,GÑGÔGÐGå"Ð#4¨&Ð#4Ð#4Ð#4Ñ5Ô5�Ø�Ø�	Ý% d¨<¨=¨=Ô&9Ñ:Ô:ð "ð "‘D�A�qØ˜C’x�xØ# qÑ(˜Ø˜C’x�xØ# qÑ(˜Ø&¨!Ò+Ð+Ø(4°qÑ(8¸1Ñ(<˜IØ# I°	¸A±Ð$=Ô>À%ÒGÐGØ,5¸©M 	 	à,5¸©M 	Ø!˜EøØ  2’~�~�~�~à  ¨2 Ô.×4Ò4Ñ6Ô6�	ØŸš¨°LÀ+ÑNÔN�Ø)-Ô)D×)NÒ)NÈvÑ)VÔ)V�˜Ñ&Ø�‰FˆAðG •#�e‘*”*Šn‰nðH ˆr$   c                 óV   — t          d |g|         ¦  «                             |¦  «        S rI   )ÚBoxerOutputDrsParserÚparse)r   Ú
drs_stringr9   rY   s       r"   r    zBoxer._parse_drsL  s(   € Ý# T¨<Ð$8¸Ô$EÑFÔF×LÒLÈZÑXÔXÐXr$   )NFNFT©F)NFF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r   r=   r?   rF   r5   rV   rW   r)   ra   rX   r    rB   r$   r"   r   r   ;   s:  € € € € € ðð ð #ØØØØð+ð +ð +ð +ð8Gð Gð Gð Gðð ð ð ðð ð ð ð  CHð
ð 
ð 
ð 
ð  CHð@ð @ð @ð @ð8
ð 
ð 
ð 
ð6%ð %ð %ð %ðN
ð 
ð 
ð 
ð -/¸ð 'ð 'ð 'ð 'ðR(ð (ð (ðTYð Yð Yð Yð Yr$   r   c                   óÌ   — e Zd Zd!d„Zd!d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!dS )"r®   Nc                 óZ   — t          j        | ¦  «         || _        d| _        dg| _        dS )zz
        This class is used to parse the Prolog DRS output from Boxer into a
        hierarchy of python objects.
        N)r`   r`   ú\F)r   r#   r9   Úsentence_id_offsetÚquote_chars©r   r9   s     r"   r#   zBoxerOutputDrsParser.__init__Q  s6   € õ
 	Ô˜4Ñ Ô Ð Ø(ˆÔØ"&ˆÔØ3Ð4ˆÔÐÐr$   c                 ó.   — t          j        | ||¦  «        S rI   )r   r¯   )r   ÚdataÚ	signatures      r"   r¯   zBoxerOutputDrsParser.parse[  s   € ÝŒ˜t T¨9Ñ5Ô5Ð5r$   c                 ó
   — g d¢S )N)ú(r•   r‘   r—   r˜   ú:rB   ©r   s    r"   Úget_all_symbolsz$BoxerOutputDrsParser.get_all_symbols^  s   € Ø-Ð-Ð-Ð-r$   c                 ó,   — |                       |¦  «        S rI   )Ú
handle_drs)r   ÚtokÚcontexts      r"   ÚhandlezBoxerOutputDrsParser.handlea  s   € Ø�Š˜sÑ#Ô#Ð#r$   c                 ó   — |S rI   rB   ©r   Ú
expressionrÇ   s      r"   Úattempt_adjunctsz%BoxerOutputDrsParser.attempt_adjunctsd  ó   € ØÐr$   c                 ó|   — |                       ¦   «         }|                      ||¦  «        }|€t          |¦  «        ‚|S )zS
        Parse a DRS condition

        :return: list of ``DrtExpression``
        )ÚtokenÚhandle_conditionr   )r   ÚindicesrÆ   Úaccums       r"   Úparse_conditionz$BoxerOutputDrsParser.parse_conditiong  s>   € ð �jŠj‰lŒlˆØ×%Ò% c¨7Ñ3Ô3ˆØˆ=Ý*¨3Ñ/Ô/Ð/Øˆr$   c                 óÚ   — |dk    r|                       ¦   «         S |dv r$ |                      | j        ¦  «        d g ¦  «        S |dv r$ |                      | j        ¦  «        d g ¦  «        S d S )Nrl   )ÚmergeÚsmerge)Úalfa)Ú	parse_drsÚ_handle_binary_expressionÚ_make_merge_expressionÚ_handle_alfa)r   rÆ   s     r"   rÅ   zBoxerOutputDrsParser.handle_drss  s~   € Ø�%Š<ˆ<Ø—>’>Ñ#Ô#Ð#ØÐ'Ð'Ð'ØN�4×1Ò1°$Ô2MÑNÔNÈtÐUWÑXÔXÐXØ�Hˆ_ˆ_ØA�4×$Ò$ TÔ%@ÑAÔAÀ$ÈÑKÔKÐKð ˆ_r$   c                 ó  ‡— |dk    r|                       ¦   «         gS |dk    r|                      | j        ¦  «        gŠ�n|dk    r|                      | j        ¦  «        gŠný|dk    r|                      ¦   «         gŠná|dk    r|                      ¦   «         gŠnÅ|dk    r|                      ¦   «         gŠn©|dk    r|                      ¦   «         gŠn�|dk    r|                      ¦   «         gŠnq|d	k    r|  	                    ¦   «         ŠnV|d
k    r|  
                    ¦   «         gŠn:|dk    r|                      ¦   «         gŠn|dk    r|                      ¦   «         gŠng Št          ˆfd„|                      |¦  «        D ¦   «         g ¦  «        S )zx
        Handle a DRS condition

        :param indices: list of int
        :return: list of ``DrtExpression``
        ÚnotÚorÚimpÚeqÚpropÚpredÚnamedÚrelÚtimexÚcardÚwhqÚduplexc              3   ó@   •‡‡K  — | ]\  ŠŠˆˆfd „‰D ¦   «         V — ŒdS )c                 ó(   •— g | ]} |‰‰¦  «        ‘ŒS rB   rB   )rC   ÚcondÚ
sent_indexÚword_indicess     €€r"   rD   zCBoxerOutputDrsParser.handle_condition.<locals>.<genexpr>.<listcomp>£  s%   ø€ ÐBÐBÐB°D���j ,Ñ/Ô/ÐBÐBÐBr$   NrB   )rC   rì   rí   Úcondss    @@€r"   rK   z8BoxerOutputDrsParser.handle_condition.<locals>.<genexpr>¢  sU   øøøè è € ð ð á,�J ð CÐBÐBÐBÐB¸EÐBÑBÔBðð ð ð ð ð r$   )Ú_handle_notrÙ   Ú_make_or_expressionÚ_make_imp_expressionÚ
_handle_eqÚ_handle_propÚ_handle_predÚ_handle_namedÚ_handle_relÚ_handle_timexÚ_handle_cardÚ_handle_whqÚ_handle_duplexrb   Ú_sent_and_word_indices)r   rÆ   rÑ   rî   s      @r"   rÐ   z%BoxerOutputDrsParser.handle_condition{  sÏ  ø€ ð �%Š<ˆ<Ø×$Ò$Ñ&Ô&Ð'Ð'à�$Š;ˆ;Ø×3Ò3°DÔ4LÑMÔMÐNˆE‰EØ�EŠ\ˆ\Ø×3Ò3°DÔ4MÑNÔNÐOˆEˆEØ�DŠ[ˆ[Ø—_’_Ñ&Ô&Ð'ˆEˆEØ�FŠ]ˆ]Ø×&Ò&Ñ(Ô(Ð)ˆEˆEà�FŠ]ˆ]Ø×&Ò&Ñ(Ô(Ð)ˆEˆEØ�GŠ^ˆ^Ø×'Ò'Ñ)Ô)Ð*ˆEˆEØ�EŠ\ˆ\Ø×%Ò%Ñ'Ô'Ð(ˆEˆEØ�GŠ^ˆ^Ø×&Ò&Ñ(Ô(ˆEˆEØ�FŠ]ˆ]Ø×&Ò&Ñ(Ô(Ð)ˆEˆEà�EŠ\ˆ\Ø×%Ò%Ñ'Ô'Ð(ˆEˆEØ�HŠ_ˆ_Ø×(Ò(Ñ*Ô*Ð+ˆEˆEð ˆEåðð ð ð à04×0KÒ0KÈGÑ0TÔ0Tðñ ô ð ñ
ô 
ð 	
r$   c                 óê   — |                       |                      ¦   «         d¦  «         |                      d ¦  «        }|                       |                      ¦   «         d¦  «         t          |¦  «        S )NrÀ   r•   )ÚassertTokenrÏ   Úprocess_next_expressionÚBoxerNot©r   rl   s     r"   rï   z BoxerOutputDrsParser._handle_not©  s]   € Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×*Ò*¨4Ñ0Ô0ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ý˜‰}Œ}Ðr$   c                 ól  ‡ ‡‡‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         t          ‰                      ¦   «         ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ˆˆˆ ˆˆfd„}|S )NrÀ   r‘   r•   c           	      ó8   •— t          ‰j        | |‰‰‰‰¦  «        S rI   ©Ú	BoxerPredr9   )rì   rí   r€   Úposr   ÚsenseÚvariables     €€€€€r"   Ú_handle_pred_fz9BoxerOutputDrsParser._handle_pred.<locals>._handle_pred_f»  s(   ø€ ÝØÔ! :¨|¸XÀtÈSÐRWñô ð r$   ©rý   rÏ   Úparse_variableÚint)r   r  r€   r  r  r  s   ` @@@@r"   rô   z!BoxerOutputDrsParser._handle_pred¯  s  øøøøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�zŠz‰|Œ|ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�jŠj‰lŒlˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ý�D—J’J‘L”LÑ!Ô!ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
 Ðr$   c                 ó~  ‡ ‡‡‡‡— ‰                       ‰                      ¦   «         d¦  «         g Š‰                       ‰                      ¦   «         d¦  «         ‰                       ‰                      ¦   «         d¦  «         ‰                      d ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      d ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ˆˆˆˆˆ fd„S )NrÀ   rç   r‘   r•   c           	      ó8   •— t          ‰j        | |‰‰‰‰¦  «        S rI   ©ÚBoxerWhqr9   ©rì   rí   Ú	ans_typesÚd1Úd2Úrefr   s     €€€€€r"   ú<lambda>z5BoxerOutputDrsParser._handle_duplex.<locals>.<lambda>ß  ó#   ø€ µØÔ˜z¨<¸ÀBÈÈRñ1
ô 1
€ r$   )rý   rÏ   rþ   r
  )r   r  r  r  r  s   `@@@@r"   rú   z#BoxerOutputDrsParser._handle_duplexÂ  s&  øøøøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+àˆ	ð" 	×Ò˜Ÿš™œ uÑ-Ô-Ð-Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×)Ò)¨$Ñ/Ô/ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×!Ò!Ñ#Ô#ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×)Ò)¨$Ñ/Ô/ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óN  ‡ ‡‡‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ˆˆ ˆˆˆfd„S )NrÀ   r‘   r•   c           	      ó8   •— t          ‰j        | |‰‰‰‰¦  «        S rI   )Ú
BoxerNamedr9   )rì   rí   r€   r   r  Útyper  s     €€€€€r"   r  z4BoxerOutputDrsParser._handle_named.<locals>.<lambda>î  s#   ø€ µ
ØÔ˜z¨<¸À4ÈÈuñ1
ô 1
€ r$   ©rý   rÏ   r
  )r   r€   r  r  r  s   `@@@@r"   rõ   z"BoxerOutputDrsParser._handle_namedã  s  øøøøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�zŠz‰|Œ|ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�zŠz‰|Œ|ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø—
’
‘”ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óh  ‡ ‡‡‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         t          ‰                      ¦   «         ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ˆˆ ˆˆˆfd„S )NrÀ   r‘   r•   c           	      ó8   •— t          ‰j        | |‰‰‰‰¦  «        S rI   )ÚBoxerRelr9   )rì   rí   rä   r   r  Úvar1Úvar2s     €€€€€r"   r  z2BoxerOutputDrsParser._handle_rel.<locals>.<lambda>ý  s#   ø€ µØÔ˜z¨<¸¸tÀSÈ%ñ1
ô 1
€ r$   r	  )r   rä   r  r  r   s   `@@@@r"   rö   z BoxerOutputDrsParser._handle_relò  s  øøøøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×"Ò"Ñ$Ô$ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×"Ò"Ñ$Ô$ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�jŠj‰lŒlˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ý�D—J’J‘L”LÑ!Ô!ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óH  — |                       |                      ¦   «         d¦  «         |                      ¦   «         }|                       |                      ¦   «         d¦  «         |                      |¦  «        }|                       |                      ¦   «         d¦  «         |S )NrÀ   r‘   r•   )rý   rÏ   r
  Ú_handle_time_expression)r   ÚargÚ	new_condss      r"   r÷   z"BoxerOutputDrsParser._handle_timex  s†   € à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×!Ò!Ñ#Ô#ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×0Ò0°Ñ5Ô5ˆ	Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+ØÐr$   c                 ón  ‡ ‡‡— ‰                       ¦   «         Š‰                      ‰                       ¦   «         d¦  «         ‰dk    r‰                      ‰¦  «        }n‰dk    r‰                      ‰¦  «        }nd S ‰                      ‰                       ¦   «         d¦  «         ˆˆ ˆfd„gd„ |D ¦   «         z   S )NrÀ   ÚdateÚtimer•   c           	      ó8   •— t          ‰j        | |‰‰dd¦  «        S )NÚnr   r  )rì   rí   r#  r   rÆ   s     €€€r"   r  z>BoxerOutputDrsParser._handle_time_expression.<locals>.<lambda>  s#   ø€ ­YØÔ! :¨|¸SÀ#ÀsÈAñ.ô .€ r$   c                 ó   ‡— g | ]Šˆfd „‘ŒS )c                 ó   •— ‰S rI   rB   )rì   rí   rë   s     €r"   r  zIBoxerOutputDrsParser._handle_time_expression.<locals>.<listcomp>.<lambda>  s   ø€ ¨d€ r$   rB   ©rC   rë   s    @r"   rD   z@BoxerOutputDrsParser._handle_time_expression.<locals>.<listcomp>  s#   ø€ ÐEÐEÐE°tÐ2Ð2Ð2Ð2ÐEÐEÐEr$   )rÏ   rý   Ú_handle_dateÚ_handle_time)r   r#  rî   rÆ   s   `` @r"   r"  z,BoxerOutputDrsParser._handle_time_expression
  sÒ   øøø€ à�jŠj‰lŒlˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�&Š=ˆ=Ø×%Ò% cÑ*Ô*ˆEˆEØ�FŠ]ˆ]Ø×%Ò% cÑ*Ô*ˆEˆEà�4Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+ðð ð ð ð ð ð
ð FÐE¸uÐEÑEÔEñ	Fð 	Fr$   c                 ój  — g }|                       |                      ¦   «         ¦  «        \  \  }}|                      |                      ¦   «         d¦  «         |                      ¦   «         }|                      |                      ¦   «         d¦  «         |                     t          | j        |||d|› �dd¦  «        ¦  «         |                      |                      ¦   «         d¦  «         |                       |                      ¦   «         ¦  «        \  \  }}|                      ¦   «         }|dk    rF|                     dd	¦  «        }|                     t          | j        |||d
|› �dd¦  «        ¦  «         |                      |                      ¦   «         d¦  «         |                       |                      ¦   «         ¦  «        \  \  }}|                      ¦   «         }|dk    r0|                     t          | j        |||d|› �dd¦  «        ¦  «         |                      |                      ¦   «         d¦  «         |                       |                      ¦   «         ¦  «        \  \  }}|                      ¦   «         }|dk    r0|                     t          | j        |||d|› �dd¦  «        ¦  «         |S )NrÀ   r•   Ú	date_pol_Úar   r‘   ÚXXXXrÁ   Ú_Ú
date_year_ÚXXÚdate_month_Ú	date_day_)rû   Ú_parse_index_listrý   rÏ   Úappendr  r9   Úreplace)	r   r#  rî   rì   rí   ÚpolÚyearÚmonthÚdays	            r"   r-  z!BoxerOutputDrsParser._handle_date  sÐ  € àˆØ(,×(CÒ(CØ×"Ò"Ñ$Ô$ñ)
ô )
Ñ%Ñ	#ˆ*�lð 	×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�jŠj‰lŒlˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�ŠÝØÔ!ØØØØ!˜CÐ!Ð!ØØñô ñ
	
ô 
	
ð 
	
ð 	×Ò˜Ÿš™œ sÑ+Ô+Ð+à(,×(CÒ(CØ×"Ò"Ñ$Ô$ñ)
ô )
Ñ%Ñ	#ˆ*�lð �zŠz‰|Œ|ˆØ�6Š>ˆ>Ø—<’<  SÑ)Ô)ˆDØ�LŠLÝØÔ%ØØ ØØ' Ð'Ð'ØØñô ñ
ô 
ð 
ð 	×Ò˜Ÿš™œ sÑ+Ô+Ð+à(,×(CÒ(CØ×"Ò"Ñ$Ô$ñ)
ô )
Ñ%Ñ	#ˆ*�lð —
’
‘”ˆØ�DŠ=ˆ=Ø�LŠLÝØÔ%ØØ ØØ) %Ð)Ð)ØØñô ñ
ô 
ð 
ð 	×Ò˜Ÿš™œ sÑ+Ô+Ð+à(,×(CÒ(CØ×"Ò"Ñ$Ô$ñ)
ô )
Ñ%Ñ	#ˆ*�lð �jŠj‰lŒlˆØ�$Š;ˆ;Ø�LŠLÝØÔ%ØØ ØØ% Ð%Ð%ØØñô ñ
ô 
ð 
ð ˆr$   c                 óº  — g }|                       ¦   «          |                      ¦   «         }|dk    r*|                     |                      d||¦  «        ¦  «         |                      |                      ¦   «         d¦  «         |                       ¦   «          |                      ¦   «         }|dk    r*|                     |                      d||¦  «        ¦  «         |                      |                      ¦   «         d¦  «         |                       ¦   «          |                      ¦   «         }|dk    r*|                     |                      d||¦  «        ¦  «         |S )Nr5  Úr_hour_2r‘   Úr_min_2Úr_sec_2)r8  rÏ   r9  Ú
_make_atomrý   )r   r#  rî   ÚhourÚminÚsecs         r"   r.  z!BoxerOutputDrsParser._handle_timei  s&  € àˆØ×ÒÑ Ô Ð Ø�zŠz‰|Œ|ˆØ�4Š<ˆ<Ø�LŠL˜Ÿš¨°S¸$Ñ?Ô?Ñ@Ô@Ð@Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+à×ÒÑ Ô Ð Ø�jŠj‰lŒlˆØ�$Š;ˆ;Ø�LŠL˜Ÿš¨°C¸Ñ=Ô=Ñ>Ô>Ð>Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+à×ÒÑ Ô Ð Ø�jŠj‰lŒlˆØ�$Š;ˆ;Ø�LŠL˜Ÿš¨°C¸Ñ=Ô=Ñ>Ô>Ð>àˆr$   c                 óÒ  ‡ ‡‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ˆ ˆˆˆfd„S )NrÀ   r‘   r•   c                 ó6   •— t          ‰j        | |‰‰‰¦  «        S rI   )Ú	BoxerCardr9   )rì   rí   r   r  Úvaluer  s     €€€€r"   r  z3BoxerOutputDrsParser._handle_card.<locals>.<lambda>ˆ  s!   ø€ µ	ØÔ˜z¨<¸À5È$ñ1
ô 1
€ r$   r  )r   r  rJ  r  s   `@@@r"   rø   z!BoxerOutputDrsParser._handle_card  sÑ   øøøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø—
’
‘”ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�zŠz‰|Œ|ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óX  ‡ ‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      d ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ˆˆ ˆfd„S )NrÀ   r‘   r•   c                 ó4   •— t          ‰j        | |‰‰¦  «        S rI   )Ú	BoxerPropr9   )rì   rí   rl   r   r  s     €€€r"   r  z3BoxerOutputDrsParser._handle_prop.<locals>.<lambda>“  s   ø€ µ	ØÔ˜z¨<¸À3ñ1
ô 1
€ r$   )rý   rÏ   r
  rþ   )r   rl   r  s   `@@r"   ró   z!BoxerOutputDrsParser._handle_propŒ  s¦   øøø€ à×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×*Ò*¨4Ñ0Ô0ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óÞ  — g }|                       |                      ¦   «         d¦  «         |                      d¦  «        dk    rm|                     |                      ¦   «         ¦  «         |                      d¦  «        dk    r|                      ¦   «          |                      d¦  «        dk    °m|                      ¦   «          |                       |                      ¦   «         d¦  «         |S )Nr—   r   r˜   r‘   rÁ   )rý   rÏ   r9  Úparse_index)r   rÑ   s     r"   r8  z&BoxerOutputDrsParser._parse_index_list—  sÃ   € àˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�jŠj˜‰mŒm˜sÒ"Ð"Ø�NŠN˜4×+Ò+Ñ-Ô-Ñ.Ô.Ð.Ø�zŠz˜!‰}Œ} Ò#Ð#Ø—
’
‘”�ð �jŠj˜‰mŒm˜sÒ"Ð"ð 	�
Š
‰ŒˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Øˆr$   c                 ó¦  — |                       |                      ¦   «         d¦  «         |                       |                      ¦   «         d¦  «         t          ¦   «         }|                      d¦  «        dk    r�|                      ¦   «         }|                     |                      ¦   «         ¦  «         |                      d¦  «        dk    r|                      ¦   «          |                      d¦  «        dk    °�|                      ¦   «          |                       |                      ¦   «         d¦  «         |                       |                      ¦   «         d¦  «         g }|                      d¦  «        dk    r‚|                      ¦   «         }|                     |                      |¦  «        ¦  «         |                      d¦  «        dk    r|                      ¦   «          |                      d¦  «        dk    °‚|                      ¦   «          |                       |                      ¦   «         d¦  «         t          t          |¦  «        |¦  «        S )NrÀ   r—   r   r˜   r‘   r•   )
rý   rÏ   Úsetr8  Úaddr
  ÚextendrÓ   ÚBoxerDrsrR   )r   ÚrefsrÑ   rî   s       r"   rØ   zBoxerOutputDrsParser.parse_drs£  sØ  € ð 	×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ý‰uŒuˆØ�jŠj˜‰mŒm˜sÒ"Ð"Ø×,Ò,Ñ.Ô.ˆGØ�HŠH�T×(Ò(Ñ*Ô*Ñ+Ô+Ð+Ø�zŠz˜!‰}Œ} Ò#Ð#Ø—
’
‘”�ð	 �jŠj˜‰mŒm˜sÒ"Ð"ð
 	�
Š
‰ŒˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+ØˆØ�jŠj˜‰mŒm˜sÒ"Ð"Ø×,Ò,Ñ.Ô.ˆGØ�LŠL˜×-Ò-¨gÑ6Ô6Ñ7Ô7Ð7Ø�zŠz˜!‰}Œ} Ò#Ð#Ø—
’
‘”�ð	 �jŠj˜‰mŒm˜sÒ"Ð"ð
 	�
Š
‰ŒˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ý�˜T™
œ
 EÑ*Ô*Ð*r$   c                 óZ  ‡‡‡— |                       |                      ¦   «         d¦  «         |                      d ¦  «        Š|                       |                      ¦   «         d¦  «         |                      d ¦  «        Š|                       |                      ¦   «         d¦  «         ˆˆˆfd„S )NrÀ   r‘   r•   c                 ó    •—  ‰| |‰‰¦  «        S rI   rB   ©rì   rí   Údrs1Údrs2Úmake_callbacks     €€€r"   r  z@BoxerOutputDrsParser._handle_binary_expression.<locals>.<lambda>Â  ó   ø€ °°Ø˜ d¨Dñ1
ô 1
€ r$   ©rý   rÏ   rþ   )r   r[  rY  rZ  s    `@@r"   rÙ   z.BoxerOutputDrsParser._handle_binary_expression¼  s¨   øøø€ Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×+Ò+¨DÑ1Ô1ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×+Ò+¨DÑ1Ô1ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óÒ  ‡‡‡— |                       |                      ¦   «         d¦  «         |                      ¦   «         }|                       |                      ¦   «         d¦  «         |                      d ¦  «        Š|                       |                      ¦   «         d¦  «         |                      d ¦  «        Š|                       |                      ¦   «         d¦  «         ˆˆˆfd„S )NrÀ   r‘   r•   c                 ó    •—  ‰| |‰‰¦  «        S rI   rB   rX  s     €€€r"   r  z3BoxerOutputDrsParser._handle_alfa.<locals>.<lambda>Î  r\  r$   r]  )r   r[  r  rY  rZ  s    ` @@r"   rÛ   z!BoxerOutputDrsParser._handle_alfaÆ  sÓ   øøø€ Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø�zŠz‰|Œ|ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×+Ò+¨DÑ1Ô1ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×+Ò+¨DÑ1Ô1ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óV  ‡ ‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ˆ ˆˆfd„S )NrÀ   r‘   r•   c                 ó4   •— t          ‰j        | |‰‰¦  «        S rI   )ÚBoxerEqr9   )rì   rí   r   r  r   s     €€€r"   r  z1BoxerOutputDrsParser._handle_eq.<locals>.<lambda>Ø  s   ø€ µØÔ˜z¨<¸¸tñ1
ô 1
€ r$   r  )r   r  r   s   `@@r"   rò   zBoxerOutputDrsParser._handle_eqÒ  s¤   øøø€ Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×"Ò"Ñ$Ô$ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×"Ò"Ñ$Ô$ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óò  ‡ ‡‡‡‡— ‰                       ‰                      ¦   «         d¦  «         ‰                       ‰                      ¦   «         d¦  «         g Š‰                      d¦  «        dk    �r‰                      ¦   «         }‰                       ‰                      ¦   «         d¦  «         |dk    r(‰                     ‰                      ¦   «         ¦  «         nˆ|dk    r[‰                     d¦  «         ‰                      ¦   «         }|d	k    r‰                     d
¦  «         n=‰                     |¦  «         n'‰                     ‰                      ¦   «         ¦  «         ‰                      d¦  «        dk    �°‰                      ¦   «          ‰                       ‰                      ¦   «         d¦  «         ‰                      d ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ‰                      ¦   «         Š‰                       ‰                      ¦   «         d¦  «         ‰                      d ¦  «        Š‰                       ‰                      ¦   «         d¦  «         ˆˆˆˆˆ fd„S )NrÀ   r—   r   r˜   rÁ   ÚdesÚnumÚnumberÚcouÚcountr‘   r•   c           	      ó8   •— t          ‰j        | |‰‰‰‰¦  «        S rI   r  r  s     €€€€€r"   r  z2BoxerOutputDrsParser._handle_whq.<locals>.<lambda>÷  r  r$   )rý   rÏ   r9  rþ   r
  )r   ÚcatÚtypr  r  r  r  s   `  @@@@r"   rù   z BoxerOutputDrsParser._handle_whqÜ  s/  øøøøø€ Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×Ò˜Ÿš™œ sÑ+Ô+Ð+Øˆ	Ø�jŠj˜‰mŒm˜sÒ"Ñ"Ø—*’*‘,”,ˆCØ×Ò˜TŸZšZ™\œ\¨3Ñ/Ô/Ð/Ø�eŠ|ˆ|Ø× Ò  §¢¡¤Ñ.Ô.Ð.Ð.Ø˜’�Ø× Ò  Ñ*Ô*Ð*Ø—j’j‘l”l�Ø˜%’<�<Ø×$Ò$ WÑ-Ô-Ð-Ð-à×$Ò$ SÑ)Ô)Ð)Ð)à× Ò  §¢¡¤Ñ.Ô.Ð.ð �jŠj˜‰mŒm˜sÒ"Ñ"ð 	�
Š
‰Œˆà×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×)Ò)¨$Ñ/Ô/ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×!Ò!Ñ#Ô#ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+Ø×)Ò)¨$Ñ/Ô/ˆØ×Ò˜Ÿš™œ sÑ+Ô+Ð+ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r$   c                 óV   — t          |j        |j        z   |j        |j        z   ¦  «        S rI   ©rT  rU  rî   ©r   rì   rí   rY  rZ  s        r"   rÚ   z+BoxerOutputDrsParser._make_merge_expressionû  s$   € Ý˜œ	 D¤IÑ-¨t¬z¸D¼JÑ/FÑGÔGÐGr$   c                 ó2   — t          | j        ||||¦  «        S rI   )ÚBoxerOrr9   rn  s        r"   rð   z(BoxerOutputDrsParser._make_or_expressionþ  s   € Ý�tÔ(¨*°lÀDÈ$ÑOÔOÐOr$   c                 ó8   — t          |j        |j        |¦  «        S rI   rm  rn  s        r"   rñ   z)BoxerOutputDrsParser._make_imp_expression  s   € Ý˜œ	 4¤:¨tÑ4Ô4Ð4r$   c                 ól   — |                       ¦   «         }t          j        d|¦  «        s
J |¦   «         ‚|S )Nz^[exps]\d+$)rÏ   ÚreÚmatch©r   Úvars     r"   r
  z#BoxerOutputDrsParser.parse_variable  s4   € Ø�jŠj‰lŒlˆÝŒx˜¨Ñ,Ô,Ð1Ð1¨cÑ1Ô1Ð1Øˆ
r$   c                 óD   — t          |                      ¦   «         ¦  «        S rI   )r  rÏ   rÂ   s    r"   rO  z BoxerOutputDrsParser.parse_index	  s   € Ý�4—:’:‘<”<Ñ Ô Ð r$   c                 óž   ‡— d„ |D ¦   «         }|r.g }|D ]'Šˆfd„|D ¦   «         }|                      ‰|f¦  «         Œ(|S d„ |D ¦   «         }d|fgS )zD
        :return: list of (sent_index, word_indices) tuples
        c                 ó*   — h | ]}|d k    ¯|dz  dz
  ’ŒS )r   éè  r”   rB   ©rC   r¢   s     r"   ú	<setcomp>z>BoxerOutputDrsParser._sent_and_word_indices.<locals>.<setcomp>  s%   € ÐBÐBÐB¨1¸1Àº6¸6˜˜T™ Q™¸6¸6¸6r$   c                 ó8   •— g | ]}‰|d z  dz
  k    ¯|d z  dz
  ‘ŒS ©rz  r”   rB   )rC   r¢   rì   s     €r"   rD   z?BoxerOutputDrsParser._sent_and_word_indices.<locals>.<listcomp>  s;   ø€ ð  ð  ð  Ø'(°zÀaÈ$ÁhÐRSÁ^Ò7SÐ7S�Q˜‘X ‘NÐ7SÐ7SÐ7Sr$   c                 ó   — g | ]
}|d z  dz
  ‘ŒS r~  rB   r{  s     r"   rD   z?BoxerOutputDrsParser._sent_and_word_indices.<locals>.<listcomp>  s    € Ð<Ð<Ð<¨q˜Q ™X¨™NÐ<Ð<Ð<r$   N)r9  )r   rÑ   Úsent_indicesÚpairsrí   rì   s        @r"   rû   z+BoxerOutputDrsParser._sent_and_word_indices  sŸ   ø€ ð CÐB°ÐBÑBÔBˆØð 
	*ØˆEØ*ð 9ð 9�
ð ð  ð  ð  Ø,3ð ñ  ô  �ð —’˜j¨,Ð7Ñ8Ô8Ð8Ð8ØˆLà<Ð<°GÐ<Ñ<Ô<ˆLØ˜<Ð(Ð)Ð)r$   rI   )"r²   r³   r´   r#   r¯   rÃ   rÈ   rÌ   rÓ   rÅ   rÐ   rï   rô   rú   rõ   rö   r÷   r"  r-  r.  rø   ró   r8  rØ   rÙ   rÛ   rò   rù   rÚ   rð   rñ   r
  rO  rû   rB   r$   r"   r®   r®   P  s  € € € € € ð5ð 5ð 5ð 5ð6ð 6ð 6ð 6ð.ð .ð .ð$ð $ð $ðð ð ð
ð 
ð 
ðLð Lð Lð,
ð ,
ð ,
ð\ð ð ðð ð ð&
ð 
ð 
ðB
ð 
ð 
ð
ð 
ð 
ðð ð ðFð Fð Fð"Lð Lð Lð\ð ð ð,
ð 
ð 
ð	
ð 	
ð 	
ð
ð 
ð 
ð+ð +ð +ð2
ð 
ð 
ð

ð 

ð 

ð
ð 
ð 
ð
ð 
ð 
ð>Hð Hð HðPð Pð Pð5ð 5ð 5ðð ð ð
!ð !ð !ð*ð *ð *ð *ð *r$   r®   c                   ó8   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )
ÚBoxerDrsParserzD
    Reparse the str form of subclasses of ``AbstractBoxerDrs``
    Nc                 ó<   — t          j        | ¦  «         || _        d S rI   )r   r#   r9   r»   s     r"   r#   zBoxerDrsParser.__init__#  s!   € ÝÔ˜4Ñ Ô Ð Ø(ˆÔÐÐr$   c                 ót   — t           j        t           j        t           j        t           j        t           j        gS rI   )r   ÚOPENÚCLOSEÚCOMMAÚOPEN_BRACKETÚCLOSE_BRACKETrÂ   s    r"   rÃ   zBoxerDrsParser.get_all_symbols'  s'   € åŒNÝŒOÝŒOÝÔ"ÝÔ#ð
ð 	
r$   c                 ó   — |S rI   rB   rÊ   s      r"   rÌ   zBoxerDrsParser.attempt_adjuncts0  rÍ   r$   c           	      óî  — 	 |dk    �rá|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          t          |  
                    ¦   «         ¦  «        ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }	|                       t          j        ¦  «         t          |||||||	¦  «        S |dk    �rá|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         t          t          |  
                    ¦   «         ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }
|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }	|                       t          j        ¦  «         t          ||||||
|	¦  «        S |dk    �rî|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          t          |  
                    ¦   «         ¦  «        ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }	|                       t          j        ¦  «         t          |||||||	¦  «        S |dk    �rz|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         t          t          t          |  
                    ¦   «         ¦  «        ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t!          |||||¦  «        S |dk    rb|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t#          |¦  «        S |dk    r¢|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t%          |j        |j        |¦  «        S |dk    �rT|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          |  
                    ¦   «         ¦  «        }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t+          |||||¦  «        S |dk    �ry|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          t          |  
                    ¦   «         ¦  «        ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         t-          |||||¦  «        S |d	k    �r“|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          |  
                    ¦   «         ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }
|                       t          j        ¦  «         t/          ||||||
¦  «        S |d
k    �rÖ|                       t          j        ¦  «         | j        �| j        n|                      ¦   «         }|                       t          j        ¦  «         |                      ¦   «         }|                       t          j        ¦  «         t          t          t          |  
                    ¦   «         ¦  «        ¦  «        }|                       t          j        ¦  «         |  
                    ¦   «         }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t          |                      ¦   «         ¦  «        }|                       t          j        ¦  «         |                      d ¦  «        }|                       t          j        ¦  «         t1          |||||||¦  «        S n5# t2          $ r(}t5          | j        t9          |¦  «        ¦  «        |‚d }~ww xY wJ t;          |¦  «        ¦   «         ‚)Nrâ   rã   rä   rá   rÝ   rß   rÞ   rà   ræ   rç   )ÚassertNextTokenr   r†  r9   rÏ   rˆ  ÚnullableIntTokenrR   rS   r  Úhandle_refsr‡  r  r  r  rþ   rM  rÿ   rT  rU  rî   rp  rb  rI  r  r6   r   Ú_currentIndexrT   Úrepr)r   rÆ   rÇ   Údisc_idÚsent_idÚword_idsr  r€   r  r  r  r  r   rä   rl   rY  rZ  rv  rJ  r  Úes                        r"   rÈ   zBoxerDrsParser.handle3  s¡  € ðc	Pð �fŠ}‰}Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý¥¥C¨×)9Ò)9Ñ);Ô);Ñ <Ô <Ñ=Ô=�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜tŸzšz™|œ|Ñ,Ô,�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—z’z‘|”|�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—j’j‘l”l�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜DŸJšJ™LœLÑ)Ô)�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý  ¨'°8¸XÀtÈSÐRWÑXÔXÐXØ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜dŸjšj™lœlÑ+Ô+�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý�s D×$4Ò$4Ñ$6Ô$6Ñ7Ô7�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜tŸzšz™|œ|Ñ,Ô,�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—z’z‘|”|�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—z’z‘|”|�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜DŸJšJ™LœLÑ)Ô)�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý!Ø˜W h°¸$ÀÀeñô ð ð ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý¥¥C¨×)9Ò)9Ñ);Ô);Ñ <Ô <Ñ=Ô=�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜4Ÿ:š:™<œ<Ñ(Ô(�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜4Ÿ:š:™<œ<Ñ(Ô(�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—j’j‘l”l�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜DŸJšJ™LœLÑ)Ô)�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý ¨°(¸DÀ$ÈÈUÑSÔSÐSØ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜dŸjšj™lœlÑ+Ô+�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý¥¥C¨×)9Ò)9Ñ);Ô);Ñ <Ô <Ñ=Ô=�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜tŸzšz™|œ|Ñ,Ô,�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×2Ò2°4Ñ8Ô8�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý  ¨'°8¸XÀsÑKÔKÐKØ˜’�Ø×$Ò$¥Y¤^Ñ4Ô4Ð4Ø×2Ò2°4Ñ8Ô8�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý ‘}”}Ð$Ø˜’�Ø×$Ò$¥Y¤^Ñ4Ô4Ð4Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý ¤	¨4¬:°tÑ<Ô<Ð<Ø˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý�s D×$4Ò$4Ñ$6Ô$6Ñ7Ô7�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜w¨°¸4ÀÑFÔFÐFØ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý¥¥C¨×)9Ò)9Ñ);Ô);Ñ <Ô <Ñ=Ô=�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜4Ÿ:š:™<œ<Ñ(Ô(�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜4Ÿ:š:™<œ<Ñ(Ô(�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜w¨°¸4ÀÑFÔFÐFØ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý�s D×$4Ò$4Ñ$6Ô$6Ñ7Ô7�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜$Ÿ*š*™,œ,Ñ'Ô'�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5ØŸ
š
™œ�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø—z’z‘|”|�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý  ¨'°8¸SÀ%ÈÑNÔNÐNØ˜’‘Ø×$Ò$¥Y¤^Ñ4Ô4Ð4à)-Ô):Ð)F�DÔ%Ð%ÈDÏJÊJÉLÌLð ð ×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×/Ò/Ñ1Ô1�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý¥¥C¨×)9Ò)9Ñ);Ô);Ñ <Ô <Ñ=Ô=�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø ×,Ò,Ñ.Ô.�	Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý˜$Ÿ*š*™,œ,Ñ'Ô'�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ø×3Ò3°DÑ9Ô9�Ø×$Ò$¥Y¤_Ñ5Ô5Ð5Ý ¨°(¸IÀtÈSÐRVÑWÔWÐWð% øõ& ð 	Pð 	Pð 	PÝ,¨TÔ-?ÅÀQÁÄÑHÔHÈaÐOøøøøð	Pøøøà•d˜3‘i”iÑÔÐsW   ‚G'z+ Ç*G'z+ ÏG4z+ ×F z+ ÝA'z+ Þ0B'z+ áEz+ æ3E?z+ ì3Fz+ óGz+ ú+
{ú5#{û{c                 óX   — |                       ¦   «         }|dk    rt          |¦  «        nd S )NÚNone)rÏ   r  )r   Úts     r"   rŽ  zBoxerDrsParser.nullableIntTokenÚ  s'   € Ø�JŠJ‰LŒLˆØ˜fš˜�s�1‰vŒvˆv¨$Ð.r$   c                 ó|   — 	 |                       ¦   «         S # t          $ r}t          |j        d¦  «        |‚d }~ww xY w)NzVariable expected.)rÏ   r   rœ   )r   Údescriptionr•  s      r"   Úget_next_token_variablez&BoxerDrsParser.get_next_token_variableÞ  sO   € ð	TØ—:’:‘<”<ÐøÝ*ð 	Tð 	Tð 	TÝ-¨a¬gÐ7KÑLÔLÐRSÐSøøøøð	Tøøøs   ‚ –
; 6¶;rI   )
r²   r³   r´   rµ   r#   rÃ   rÌ   rÈ   rŽ  r›  rB   r$   r"   rƒ  rƒ    s†   € € € € € ðð ð)ð )ð )ð )ð
ð 
ð 
ðð ð ðe ð e ð e ðN/ð /ð /ðTð Tð Tð Tð Tr$   rƒ  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚAbstractBoxerDrsc                 óN   — |                       ¦   «         \  }}}|||z  z
  |||z
  fS ©zK
        :return: (set<variables>, set<events>, set<propositions>)
        )Ú
_variables)r   Ú	variablesÚeventsÚpropositionss       r"   r¡  zAbstractBoxerDrs.variablesæ  s6   € ð +/¯/ª/Ñ*;Ô*;Ñ'ˆ	�6˜<Ø˜V lÑ2Ñ3°V¸\ÈFÑ=RÐSÐSr$   c                 ón   — i }t          d|                      ¦   «         ¦  «        D ]\  }}|D ]}|||<   ŒŒ|S )N)Úzr•  r�   )rc   r¡  )r   Úvartypesr˜  ÚvarsÚvs        r"   Úvariable_typeszAbstractBoxerDrs.variable_typesí  sR   € ØˆÝ˜?¨D¯NªNÑ,<Ô,<Ñ=Ô=ð 	 ð 	 ‰GˆAˆtØð  ð  �Ø�˜‘�ð àˆr$   c                 óT   — t          ¦   «         t          ¦   «         t          ¦   «         fS rŸ  ©rQ  rÂ   s    r"   r   zAbstractBoxerDrs._variablesô  s   € õ ‘”•s‘u”u�c™eœeÐ$Ð$r$   c                 ó   — t          ¦   «         S rI   r«  rÂ   s    r"   ÚatomszAbstractBoxerDrs.atomsú  ó   € Ý‰uŒuˆr$   c                 ó   — | S rI   rB   rÂ   s    r"   ÚcleanzAbstractBoxerDrs.cleaný  ó   € Øˆr$   c                 óV   — |                      dd¦  «                              dd¦  «        S )NÚ-r3  r`   )r:  )r   r€   s     r"   Ú_clean_namezAbstractBoxerDrs._clean_name   s&   € Ø�|Š|˜C Ñ%Ô%×-Ò-¨c°3Ñ7Ô7Ð7r$   c                 ó   — | S rI   rB   ©r   rv   s     r"   Úrenumber_sentencesz#AbstractBoxerDrs.renumber_sentences  r±  r$   c                 ó"   — t          | › ¦  «        S rI   )ÚhashrÂ   s    r"   Ú__hash__zAbstractBoxerDrs.__hash__  s   € Ý�t�I‰ŒÐr$   N)r²   r³   r´   r¡  r©  r   r­  r°  r´  r·  rº  rB   r$   r"   r�  r�  å  s�   € € € € € ðTð Tð Tðð ð ð%ð %ð %ðð ð ðð ð ð8ð 8ð 8ðð ð ðð ð ð ð r$   r�  c                   óN   — e Zd Zd
d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
ej        ZdS )rT  Nc                 ód   — t                                | ¦  «         || _        || _        || _        d S rI   )r�  r#   rU  rî   Ú
consequent)r   rU  rî   r½  s       r"   r#   zBoxerDrs.__init__  s/   € Ý×!Ò! $Ñ'Ô'Ð'ØˆŒ	ØˆŒ
Ø$ˆŒˆˆr$   c                 óx  — t          ¦   «         t          ¦   «         t          ¦   «         f}| j        D ]?}t          ||                     ¦   «         ¦  «        D ]\  }}|                     |¦  «         ŒŒ@| j        �Bt          || j                             ¦   «         ¦  «        D ]\  }}|                     |¦  «         Œ|S rI   )rQ  rî   rc   r   Úupdater½  )r   r¡  rë   Úsr¨  s        r"   r   zBoxerDrs._variables  s²   € Ý‘U”U�C™EœE¥3¡5¤5Ð)ˆ	Ø”Jð 	ð 	ˆDÝ˜I t§¢Ñ'8Ô'8Ñ9Ô9ð ð ‘��1Ø—’˜‘”��ðàŒ?Ð&Ý˜I t¤×'AÒ'AÑ'CÔ'CÑDÔDð ð ‘��1Ø—’˜‘”��ØÐr$   c                 óØ   — t          t          j        d„ | j        D ¦   «         t	          ¦   «         ¦  «        }| j        �,|                     | j                             ¦   «         ¦  «         |S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rI   )r­  r,  s     r"   rK   z!BoxerDrs.atoms.<locals>.<genexpr>  s*   è è € Ð%JÐ%J°t d§j¢j¡l¤lÐ%JÐ%JÐ%JÐ%JÐ%JÐ%Jr$   )r   rP   Úor_rî   rQ  r½  r¿  r­  )r   r­  s     r"   r­  zBoxerDrs.atoms  sW   € Ý•x”|Ð%JÐ%J¸t¼zÐ%JÑ%JÔ%JÍCÉEÌEÑRÔRˆØŒ?Ð&Ø�LŠL˜œ×.Ò.Ñ0Ô0Ñ1Ô1Ð1Øˆr$   c                 ó�   — | j         r| j                              ¦   «         nd }t          | j        d„ | j        D ¦   «         |¦  «        S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rB   )r°  ©rC   rª   s     r"   rD   z"BoxerDrs.clean.<locals>.<listcomp>#  s    € Ð#BÐ#BÐ#B°! A§G¢G¡I¤IÐ#BÐ#BÐ#Br$   )r½  r°  rT  rU  rî   )r   r½  s     r"   r°  zBoxerDrs.clean!  sF   € Ø04´ÐI�T”_×*Ò*Ñ,Ô,Ð,ÀTˆ
Ý˜œ	Ð#BÐ#B°t´zÐ#BÑ#BÔ#BÀJÑOÔOÐOr$   c                 ó˜   ‡— | j         r| j                              ‰¦  «        nd }t          | j        ˆfd„| j        D ¦   «         |¦  «        S )Nc                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rB   )r·  )rC   rª   rv   s     €r"   rD   z/BoxerDrs.renumber_sentences.<locals>.<listcomp>(  s'   ø€ ÐDÐDÐD°A˜×,Ò,¨QÑ/Ô/ÐDÐDÐDr$   )r½  r·  rT  rU  rî   )r   rv   r½  s    ` r"   r·  zBoxerDrs.renumber_sentences%  sW   ø€ Ø>B¼oÐW�T”_×7Ò7¸Ñ:Ô:Ð:ÐSWˆ
ÝØŒIÐDÐDÐDÐD¸¼ÐDÑDÔDÀjñ
ô 
ð 	
r$   c                 óä   — d                      d                     d„ | j        D ¦   «         ¦  «        d                     d„ | j        D ¦   «         ¦  «        ¦  «        }| j        �d|› d| j        › d�}|S )Nzdrs([{}], [{}])ú, c              3   ó    K  — | ]	}d |z  V — Œ
dS ©ú%sNrB   ©rC   Úrs     r"   rK   z$BoxerDrs.__repr__.<locals>.<genexpr>-  s&   è è € Ð2Ð2 1�d˜Q‘hÐ2Ð2Ð2Ð2Ð2Ð2r$   c              3   ó    K  — | ]	}d |z  V — Œ
dS rÌ  rB   rÆ  s     r"   rK   z$BoxerDrs.__repr__.<locals>.<genexpr>.  s&   è è € Ð3Ð3 1�d˜Q‘hÐ3Ð3Ð3Ð3Ð3Ð3r$   zimp(r•   )r‰   r.   rU  rî   r½  )r   rÀ  s     r"   Ú__repr__zBoxerDrs.__repr__+  s€   € Ø×$Ò$Ø�IŠIÐ2Ð2¨¬	Ð2Ñ2Ô2Ñ2Ô2Ø�IŠIÐ3Ð3¨¬
Ð3Ñ3Ô3Ñ3Ô3ñ
ô 
ˆð Œ?Ð&Ø.�qÐ.Ð.˜DœOÐ.Ð.Ð.ˆAØˆr$   c                 ó.  — | j         |j         k    o…| j        |j        k    out          | j        ¦  «        t          |j        ¦  «        k    oKt	          t
          j        d„ t          | j        |j        ¦  «        D ¦   «         ¦  «        o| j        |j        k    S )Nc              3   ó(   K  — | ]\  }}||k    V — Œd S rI   rB   )rC   Úc1Úc2s      r"   rK   z"BoxerDrs.__eq__.<locals>.<genexpr>:  s*   è è € ÐTÐT©V¨R°  b¢ÐTÐTÐTÐTÐTÐTr$   )	Ú	__class__rU  rO   rî   r   rP   rQ   rc   r½  ©r   Úothers     r"   Ú__eq__zBoxerDrs.__eq__4  s�   € àŒN˜eœoÒ-ð 4Ø”	˜UœZÒ'ð4å�D”J‘”¥3 u¤{Ñ#3Ô#3Ò3ð4õ Ý”ÐTÐTµs¸4¼:ÀuÄ{Ñ7SÔ7SÐTÑTÔTñô ð4ð ” 5Ô#3Ò3ð	
r$   c                 ó   — | |k     S rI   rB   r×  s     r"   Ú__ne__zBoxerDrs.__ne__?  ó   € Ø˜5’=Ð Ð r$   rI   ©r²   r³   r´   r#   r   r­  r°  r·  rÑ  rÙ  rÛ  r�  rº  rB   r$   r"   rT  rT  
  s˜   € € € € € ð%ð %ð %ð %ðð ð ðð ð ðPð Pð Pð
ð 
ð 
ðð ð ð	
ð 	
ð 	
ð!ð !ð !ð  Ô(€H€H€Hr$   rT  c                   óL   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej        Zd	S )
rÿ   c                 óH   — t                                | ¦  «         || _        d S rI   )r�  r#   rl   r   s     r"   r#   zBoxerNot.__init__F  s!   € Ý×!Ò! $Ñ'Ô'Ð'ØˆŒˆˆr$   c                 ó4   — | j                              ¦   «         S rI   )rl   r   rÂ   s    r"   r   zBoxerNot._variablesJ  s   € ØŒx×"Ò"Ñ$Ô$Ð$r$   c                 ó4   — | j                              ¦   «         S rI   ©rl   r­  rÂ   s    r"   r­  zBoxerNot.atomsM  ó   € ØŒx�~Š~ÑÔÐr$   c                 óN   — t          | j                             ¦   «         ¦  «        S rI   )rÿ   rl   r°  rÂ   s    r"   r°  zBoxerNot.cleanP  s   € Ý˜œŸšÑ(Ô(Ñ)Ô)Ð)r$   c                 óP   — t          | j                             |¦  «        ¦  «        S rI   )rÿ   rl   r·  r¶  s     r"   r·  zBoxerNot.renumber_sentencesS  s    € Ý˜œ×3Ò3°AÑ6Ô6Ñ7Ô7Ð7r$   c                 ó   — d| j         z  S )Nznot(%s)©rl   rÂ   s    r"   rÑ  zBoxerNot.__repr__V  s   € Ø˜DœHÑ%Ð%r$   c                 óB   — | j         |j         k    o| j        |j        k    S rI   )rÖ  rl   r×  s     r"   rÙ  zBoxerNot.__eq__Y  s   € ØŒ~ ¤Ò0ÐJ°T´XÀÄÒ5JÐJr$   c                 ó   — | |k     S rI   rB   r×  s     r"   rÛ  zBoxerNot.__ne__\  rÜ  r$   NrÝ  rB   r$   r"   rÿ   rÿ   E  s“   € € € € € ðð ð ð%ð %ð %ð ð  ð  ð*ð *ð *ð8ð 8ð 8ð&ð &ð &ðKð Kð Kð!ð !ð !ð  Ô(€H€H€Hr$   rÿ   c                   ó:   — e Zd Zd„ Zd„ Zd„ Zd„ Zej        Zd„ Z	dS )ÚBoxerIndexedc                 ód   — t                                | ¦  «         || _        || _        || _        d S rI   )r�  r#   r9   rì   rí   )r   r9   rì   rí   s       r"   r#   zBoxerIndexed.__init__c  s3   € Ý×!Ò! $Ñ'Ô'Ð'Ø(ˆÔØ$ˆŒØ(ˆÔÐÐr$   c                 ó   — | hS rI   rB   rÂ   s    r"   r­  zBoxerIndexed.atomsi  s	   € Øˆvˆr$   c                 óæ   — | j         |j         k    oa| j        |j        k    oQ| j        |j        k    oA| j        |j        k    o1t	          t
          j        d„ t          | |¦  «        D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]\  }}||k    V — Œd S rI   rB   )rC   rÀ  Úos      r"   rK   z&BoxerIndexed.__eq__.<locals>.<genexpr>r  s*   è è € Ð&KÐ&K±$°!°Q q¨A¢vÐ&KÐ&KÐ&KÐ&KÐ&KÐ&Kr$   )rÖ  r9   rì   rí   r   rP   rQ   rc   r×  s     r"   rÙ  zBoxerIndexed.__eq__l  s€   € àŒN˜eœoÒ-ð MØÔ! UÔ%7Ò7ðMà” 5Ô#3Ò3ðMð Ô! UÔ%7Ò7ðMõ •x”}Ð&KÐ&K½#¸dÀEÑ:JÔ:JÐ&KÑ&KÔ&KÑLÔLð	
r$   c                 ó   — | |k     S rI   rB   r×  s     r"   rÛ  zBoxerIndexed.__ne__u  rÜ  r$   c           	      óÒ   — d                      |                      ¦   «         | j        | j        d                     d„ | j        D ¦   «         ¦  «        ¦  «        }| D ]
}|d|z  z  }Œ|dz   S )Nz{}({}, {}, [{}]rÊ  c              3   ó    K  — | ]	}d |z  V — Œ
dS rÌ  rB   )rC   Úwis     r"   rK   z(BoxerIndexed.__repr__.<locals>.<genexpr>  s&   è è € Ð<Ð< B�d˜R‘iÐ<Ð<Ð<Ð<Ð<Ð<r$   z, %sr•   )r‰   Ú_predr9   rì   r.   rí   )r   rÀ  r¨  s      r"   rÑ  zBoxerIndexed.__repr__z  sw   € Ø×$Ò$Ø�JŠJ‰LŒLØÔØŒOØ�IŠIÐ<Ð<¨$Ô*;Ð<Ñ<Ô<Ñ<Ô<ñ	
ô 
ˆð ð 	ð 	ˆAØ�˜!‘‰OˆAˆAØ�3‰wˆr$   N)
r²   r³   r´   r#   r­  rÙ  rÛ  r�  rº  rÑ  rB   r$   r"   rë  rë  b  si   € € € € € ð)ð )ð )ðð ð ð
ð 
ð 
ð!ð !ð !ð  Ô(€Hð	ð 	ð 	ð 	ð 	r$   rë  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	r  c                 óx   — t                                | |||¦  «         || _        || _        || _        || _        d S rI   )rë  r#   rv  r€   r  r  )r   r9   rì   rí   rv  r€   r  r  s           r"   r#   zBoxerPred.__init__‡  s<   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒØˆŒ	ØˆŒØˆŒ
ˆ
ˆ
r$   c                 óH   — | j         ht          ¦   «         t          ¦   «         fS rI   ©rv  rQ  rÂ   s    r"   r   zBoxerPred._variablesŽ  ó   € Ø”�
�C™EœE¥3¡5¤5Ð)Ð)r$   c           	      óh   — t          | j        | j        | j        || j        | j        | j        ¦  «        S rI   )r  r9   rì   rí   r€   r  r  ru  s     r"   Ú
change_varzBoxerPred.change_var‘  s7   € ÝØÔØŒOØÔØØŒIØŒHØŒJñ
ô 
ð 	
r$   c           	      ó˜   — t          | j        | j        | j        | j        |                      | j        ¦  «        | j        | j        ¦  «        S rI   )	r  r9   rì   rí   rv  r´  r€   r  r  rÂ   s    r"   r°  zBoxerPred.cleanœ  sG   € ÝØÔØŒOØÔØŒHØ×Ò˜TœYÑ'Ô'ØŒHØŒJñ
ô 
ð 	
r$   c           	      óˆ   —  || j         ¦  «        }t          | j        || j        | j        | j        | j        | j        ¦  «        S rI   )rì   r  r9   rí   rv  r€   r  r  )r   rv   Únew_sent_indexs      r"   r·  zBoxerPred.renumber_sentences§  sH   € Ø˜˜4œ?Ñ+Ô+ˆÝØÔØØÔØŒHØŒIØŒHØŒJñ
ô 
ð 	
r$   c                 óP   — t          | j        | j        | j        | j        f¦  «        S rI   )Úiterrv  r€   r  r  rÂ   s    r"   Ú__iter__zBoxerPred.__iter__³  s!   € Ý�T”X˜tœy¨$¬(°D´JÐ?Ñ@Ô@Ð@r$   c                 ó   — dS )Nrâ   rB   rÂ   s    r"   rõ  zBoxerPred._pred¶  ó   € Øˆvr$   N©
r²   r³   r´   r#   r   rü  r°  r·  r  rõ  rB   r$   r"   r  r  †  s€   € € € € € ðð ð ð*ð *ð *ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð

ð 

ð 

ðAð Að Aðð ð ð ð r$   r  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	r  c                 óx   — t                                | |||¦  «         || _        || _        || _        || _        d S rI   )rë  r#   rv  r€   r  r  )r   r9   rì   rí   rv  r€   r  r  s           r"   r#   zBoxerNamed.__init__»  s<   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒØˆŒ	ØˆŒ	ØˆŒ
ˆ
ˆ
r$   c                 óH   — | j         ht          ¦   «         t          ¦   «         fS rI   rù  rÂ   s    r"   r   zBoxerNamed._variablesÂ  rú  r$   c           	      óh   — t          | j        | j        | j        || j        | j        | j        ¦  «        S rI   )r  r9   rì   rí   r€   r  r  ru  s     r"   rü  zBoxerNamed.change_varÅ  s7   € ÝØÔØŒOØÔØØŒIØŒIØŒJñ
ô 
ð 	
r$   c           	      ó˜   — t          | j        | j        | j        | j        |                      | j        ¦  «        | j        | j        ¦  «        S rI   )	r  r9   rì   rí   rv  r´  r€   r  r  rÂ   s    r"   r°  zBoxerNamed.cleanÐ  sG   € ÝØÔØŒOØÔØŒHØ×Ò˜TœYÑ'Ô'ØŒIØŒJñ
ô 
ð 	
r$   c           	      ó„   — t          | j         || j        ¦  «        | j        | j        | j        | j        | j        ¦  «        S rI   )r  r9   rì   rí   rv  r€   r  r  r¶  s     r"   r·  zBoxerNamed.renumber_sentencesÛ  sC   € ÝØÔØˆAˆdŒoÑÔØÔØŒHØŒIØŒIØŒJñ
ô 
ð 	
r$   c                 óP   — t          | j        | j        | j        | j        f¦  «        S rI   )r  rv  r€   r  r  rÂ   s    r"   r  zBoxerNamed.__iter__æ  s!   € Ý�T”X˜tœy¨$¬)°T´ZÐ@ÑAÔAÐAr$   c                 ó   — dS )Nrã   rB   rÂ   s    r"   rõ  zBoxerNamed._predé  s   € Øˆwr$   Nr  rB   r$   r"   r  r  º  s€   € € € € € ðð ð ð*ð *ð *ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð	
ð 	
ð 	
ðBð Bð Bðð ð ð ð r$   r  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r  c                 óx   — t                                | |||¦  «         || _        || _        || _        || _        d S rI   )rë  r#   r  r   rä   r  )r   r9   rì   rí   r  r   rä   r  s           r"   r#   zBoxerRel.__init__î  s<   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒ	ØˆŒ	ØˆŒØˆŒ
ˆ
ˆ
r$   c                 óT   — | j         | j        ht          ¦   «         t          ¦   «         fS rI   ©r  r   rQ  rÂ   s    r"   r   zBoxerRel._variablesõ  ó    € Ø”˜DœIÐ&­©¬­s©u¬uÐ5Ð5r$   c           
      ó˜   — t          | j        | j        | j        | j        | j        |                      | j        ¦  «        | j        ¦  «        S rI   )	r  r9   rì   rí   r  r   r´  rä   r  rÂ   s    r"   r°  zBoxerRel.cleanø  sG   € ÝØÔØŒOØÔØŒIØŒIØ×Ò˜TœXÑ&Ô&ØŒJñ
ô 
ð 	
r$   c           	      ó„   — t          | j         || j        ¦  «        | j        | j        | j        | j        | j        ¦  «        S rI   )r  r9   rì   rí   r  r   rä   r  r¶  s     r"   r·  zBoxerRel.renumber_sentences  sC   € ÝØÔØˆAˆdŒoÑÔØÔØŒIØŒIØŒHØŒJñ
ô 
ð 	
r$   c                 óP   — t          | j        | j        | j        | j        f¦  «        S rI   )r  r  r   rä   r  rÂ   s    r"   r  zBoxerRel.__iter__  s!   € Ý�T”Y ¤	¨4¬8°T´ZÐ@ÑAÔAÐAr$   c                 ó   — dS )Nrä   rB   rÂ   s    r"   rõ  zBoxerRel._pred  ó   € Øˆur$   N)	r²   r³   r´   r#   r   r°  r·  r  rõ  rB   r$   r"   r  r  í  sq   € € € € € ðð ð ð6ð 6ð 6ð	
ð 	
ð 	
ð	
ð 	
ð 	
ðBð Bð Bðð ð ð ð r$   r  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
rM  c                 ó\   — t                                | |||¦  «         || _        || _        d S rI   )rë  r#   rv  rl   )r   r9   rì   rí   rv  rl   s         r"   r#   zBoxerProp.__init__  s.   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒØˆŒˆˆr$   c                 óÂ   — t          t          t          j        t	          ¦   «         t	          ¦   «         | j        hf| j                             ¦   «         ¦  «        ¦  «        S rI   )ÚtuplerS   rP   rÃ  rQ  rv  rl   r   rÂ   s    r"   r   zBoxerProp._variables  sF   € ÝÝ•”�s™uœu¥c¡e¤e¨d¬h¨ZÐ8¸$¼(×:MÒ:MÑ:OÔ:OÑPÔPñ
ô 
ð 	
r$   c                 ó   — | j         hS rI   rç  rÂ   s    r"   Úreferenced_labelszBoxerProp.referenced_labels   s   € Ø”ˆzÐr$   c                 ó4   — | j                              ¦   «         S rI   râ  rÂ   s    r"   r­  zBoxerProp.atoms#  rã  r$   c                 ó~   — t          | j        | j        | j        | j        | j                             ¦   «         ¦  «        S rI   )rM  r9   rì   rí   rv  rl   r°  rÂ   s    r"   r°  zBoxerProp.clean&  s9   € ÝØÔØŒOØÔØŒHØŒH�NŠNÑÔñ
ô 
ð 	
r$   c           	      ó’   — t          | j         || j        ¦  «        | j        | j        | j                             |¦  «        ¦  «        S rI   )rM  r9   rì   rí   rv  rl   r·  r¶  s     r"   r·  zBoxerProp.renumber_sentences/  sG   € ÝØÔØˆAˆdŒoÑÔØÔØŒHØŒH×'Ò'¨Ñ*Ô*ñ
ô 
ð 	
r$   c                 ó8   — t          | j        | j        f¦  «        S rI   )r  rv  rl   rÂ   s    r"   r  zBoxerProp.__iter__8  s   € Ý�T”X˜tœxÐ(Ñ)Ô)Ð)r$   c                 ó   — dS )Nrá   rB   rÂ   s    r"   rõ  zBoxerProp._pred;  r  r$   N)r²   r³   r´   r#   r   r  r­  r°  r·  r  rõ  rB   r$   r"   rM  rM    sŒ   € € € € € ðð ð ð

ð 
ð 
ð
ð ð ð ð  ð  ð
ð 
ð 
ð
ð 
ð 
ð*ð *ð *ðð ð ð ð r$   rM  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )rb  c                 ó\   — t                                | |||¦  «         || _        || _        d S rI   )rë  r#   r  r   )r   r9   rì   rí   r  r   s         r"   r#   zBoxerEq.__init__@  ó.   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒ	ØˆŒ	ˆ	ˆ	r$   c                 óT   — | j         | j        ht          ¦   «         t          ¦   «         fS rI   r  rÂ   s    r"   r   zBoxerEq._variablesE  r  r$   c                 ó   — t          ¦   «         S rI   r«  rÂ   s    r"   r­  zBoxerEq.atomsH  r®  r$   c                 ól   — t          | j         || j        ¦  «        | j        | j        | j        ¦  «        S rI   )rb  r9   rì   rí   r  r   r¶  s     r"   r·  zBoxerEq.renumber_sentencesK  ó9   € ÝØÔØˆAˆdŒoÑÔØÔØŒIØŒIñ
ô 
ð 	
r$   c                 ó8   — t          | j        | j        f¦  «        S rI   )r  r  r   rÂ   s    r"   r  zBoxerEq.__iter__T  ó   € Ý�T”Y ¤	Ð*Ñ+Ô+Ð+r$   c                 ó   — dS )Nrà   rB   rÂ   s    r"   rõ  zBoxerEq._predW  ó   € Øˆtr$   N)	r²   r³   r´   r#   r   r­  r·  r  rõ  rB   r$   r"   rb  rb  ?  sn   € € € € € ðð ð ð
6ð 6ð 6ðð ð ð
ð 
ð 
ð,ð ,ð ,ðð ð ð ð r$   rb  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )rI  c                 ój   — t                                | |||¦  «         || _        || _        || _        d S rI   )rë  r#   rv  rJ  r  )r   r9   rì   rí   rv  rJ  r  s          r"   r#   zBoxerCard.__init__\  s5   € Ý×Ò˜d L°*¸lÑKÔKÐKØˆŒØˆŒ
ØˆŒ	ˆ	ˆ	r$   c                 óH   — | j         ht          ¦   «         t          ¦   «         fS rI   rù  rÂ   s    r"   r   zBoxerCard._variablesb  rú  r$   c                 óx   — t          | j         || j        ¦  «        | j        | j        | j        | j        ¦  «        S rI   )rI  r9   rì   rí   rv  rJ  r  r¶  s     r"   r·  zBoxerCard.renumber_sentencese  s>   € ÝØÔØˆAˆdŒoÑÔØÔØŒHØŒJØŒIñ
ô 
ð 	
r$   c                 óD   — t          | j        | j        | j        f¦  «        S rI   )r  rv  rJ  r  rÂ   s    r"   r  zBoxerCard.__iter__o  s   € Ý�T”X˜tœz¨4¬9Ð5Ñ6Ô6Ð6r$   c                 ó   — dS )Nræ   rB   rÂ   s    r"   rõ  zBoxerCard._predr  r  r$   N)r²   r³   r´   r#   r   r·  r  rõ  rB   r$   r"   rI  rI  [  s_   € € € € € ðð ð ð*ð *ð *ð
ð 
ð 
ð7ð 7ð 7ðð ð ð ð r$   rI  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	rp  c                 ó\   — t                                | |||¦  «         || _        || _        d S rI   )rë  r#   rY  rZ  )r   r9   rì   rí   rY  rZ  s         r"   r#   zBoxerOr.__init__w  r%  r$   c                 ó®   — t          t          t          j        | j                             ¦   «         | j                             ¦   «         ¦  «        ¦  «        S rI   )r  rS   rP   rÃ  rY  r   rZ  rÂ   s    r"   r   zBoxerOr._variables|  s:   € Ý•S�œ t¤y×';Ò';Ñ'=Ô'=¸t¼y×?SÒ?SÑ?UÔ?UÑVÔVÑWÔWÐWr$   c                 óh   — | j                              ¦   «         | j                             ¦   «         z  S rI   ©rY  r­  rZ  rÂ   s    r"   r­  zBoxerOr.atoms  ó%   € ØŒy�ŠÑ Ô  4¤9§?¢?Ñ#4Ô#4Ñ4Ð4r$   c                 ó¢   — t          | j        | j        | j        | j                             ¦   «         | j                             ¦   «         ¦  «        S rI   )rp  r9   rì   rí   rY  r°  rZ  rÂ   s    r"   r°  zBoxerOr.clean‚  sC   € ÝØÔØŒOØÔØŒI�OŠOÑÔØŒI�OŠOÑÔñ
ô 
ð 	
r$   c                 ól   — t          | j         || j        ¦  «        | j        | j        | j        ¦  «        S rI   )rp  r9   rì   rí   rY  rZ  r¶  s     r"   r·  zBoxerOr.renumber_sentences‹  r)  r$   c                 ó8   — t          | j        | j        f¦  «        S rI   )r  rY  rZ  rÂ   s    r"   r  zBoxerOr.__iter__”  r+  r$   c                 ó   — dS )NrÞ   rB   rÂ   s    r"   rõ  zBoxerOr._pred—  r-  r$   N©
r²   r³   r´   r#   r   r­  r°  r·  r  rõ  rB   r$   r"   rp  rp  v  s€   € € € € € ðð ð ð
Xð Xð Xð5ð 5ð 5ð
ð 
ð 
ð
ð 
ð 
ð,ð ,ð ,ðð ð ð ð r$   rp  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	r  c                 óx   — t                                | |||¦  «         || _        || _        || _        || _        d S rI   )rë  r#   r  rY  r  rZ  )r   r9   rì   rí   r  rY  r  rZ  s           r"   r#   zBoxerWhq.__init__œ  s>   € õ 	×Ò˜d L°*¸lÑKÔKÐKØ"ˆŒØˆŒ	Ø ˆŒØˆŒ	ˆ	ˆ	r$   c           	      óò   — t          t          t          j        | j        ht          ¦   «         t          ¦   «         f| j                             ¦   «         | j                             ¦   «         ¦  «        ¦  «        S rI   )	r  rS   rP   rÃ  r  rQ  rY  r   rZ  rÂ   s    r"   r   zBoxerWhq._variables¥  s^   € ÝÝÝ”Ø”-�¥#¡%¤%­©¬Ð/Ø”	×$Ò$Ñ&Ô&Ø”	×$Ò$Ñ&Ô&ñ	ô ñ
ô 
ð 	
r$   c                 óh   — | j                              ¦   «         | j                             ¦   «         z  S rI   r8  rÂ   s    r"   r­  zBoxerWhq.atoms¯  r9  r$   c           
      óº   — t          | j        | j        | j        | j        | j                             ¦   «         | j        | j                             ¦   «         ¦  «        S rI   )	r  r9   rì   rí   r  rY  r°  r  rZ  rÂ   s    r"   r°  zBoxerWhq.clean²  sM   € ÝØÔØŒOØÔØŒNØŒI�OŠOÑÔØŒMØŒI�OŠOÑÔñ
ô 
ð 	
r$   c           	      ó„   — t          | j         || j        ¦  «        | j        | j        | j        | j        | j        ¦  «        S rI   )r  r9   rì   rí   r  rY  r  rZ  r¶  s     r"   r·  zBoxerWhq.renumber_sentences½  sC   € ÝØÔØˆAˆdŒoÑÔØÔØŒNØŒIØŒMØŒIñ
ô 
ð 	
r$   c                 ó‚   — t          dd                     | j        ¦  «        z   dz   | j        | j        | j        f¦  «        S )Nr—   r‘   r˜   )r  r.   r  rY  r  rZ  rÂ   s    r"   r  zBoxerWhq.__iter__È  s>   € ÝØ�3—8’8˜DœNÑ+Ô+Ñ+¨cÑ1°4´9¸d¼mÈTÌYÐWñ
ô 
ð 	
r$   c                 ó   — dS )Nrç   rB   rÂ   s    r"   rõ  zBoxerWhq._predÍ  r  r$   Nr>  rB   r$   r"   r  r  ›  s}   € € € € € ðð ð ð
ð 
ð 
ð5ð 5ð 5ð	
ð 	
ð 	
ð	
ð 	
ð 	
ð
ð 
ð 
ð
ð ð ð ð r$   r  c                   ó   — e Zd Zd„ ZdS )ÚPassthroughBoxerDrsInterpreterc                 ó   — |S rI   rB   )r   Úexs     r"   r=   z(PassthroughBoxerDrsInterpreter.interpretÒ  s   € Øˆ	r$   N)r²   r³   r´   r=   rB   r$   r"   rH  rH  Ñ  s#   € € € € € ðð ð ð ð r$   rH  c                   ó(   — e Zd Zdd„Zd„ Zd„ Zd„ ZdS )r   Fc                 ó   — || _         d S rI   )Ú_occur_index)r   Úoccur_indexs     r"   r#   z#NltkDrtBoxerDrsInterpreter.__init__×  s   € Ø'ˆÔÐÐr$   c           	      óL  — t          |t          ¦  «        rlt          d„ |j        D ¦   «         t	          t          | j        |j        ¦  «        ¦  «        ¦  «        }|j        �|                      |j        ¦  «        |_        |S t          |t          ¦  «        r't          |                      |j        ¦  «        ¦  «        S t          |t          ¦  «        r@|                      |j        › d|j        › �|¦  «        }|                      ||j        ¦  «        S t          |t$          ¦  «        rA|                      d|j        › d|j        › �|¦  «        }|                      ||j        ¦  «        S t          |t(          ¦  «        r?|                      d|j        z  |¦  «        }|                      ||j        |j        ¦  «        S t          |t0          ¦  «        r:t3          t5          |j        ¦  «        |                      |j        ¦  «        ¦  «        S t          |t6          ¦  «        rNt9          t;          t5          |j        ¦  «        ¦  «        t;          t5          |j        ¦  «        ¦  «        ¦  «        S t          |t<          ¦  «        rA|                      d|j        › d|j        › �|¦  «        }|                      ||j        ¦  «        S t          |t@          ¦  «        r@tC          |                      |j"        ¦  «        |                      |j#        ¦  «        ¦  «        S t          |tH          ¦  «        r^|                      |j"        ¦  «        }|                      |j#        ¦  «        }t          |j        |j        z   |j        |j        z   ¦  «        S J |j%        j&        › d|› �¦   «         ‚)	zT
        :param ex: ``AbstractBoxerDrs``
        :return: ``DrtExpression``
        c                 ó,   — g | ]}t          |¦  «        ‘ŒS rB   )r   rÎ  s     r"   rD   z8NltkDrtBoxerDrsInterpreter.interpret.<locals>.<listcomp>á  s   € Ð.Ð.Ð. •˜!‘”Ð.Ð.Ð.r$   Nr3  Úne_rÍ  Úcard_Fz: )'Ú
isinstancerT  r   rU  rR   rS   r=   rî   r½  rÿ   r
   rl   r  Ú_add_occur_indexingr  r€   rC  rv  r  r  r  rä   r  r   rM  r   r   rb  r	   r   rI  rJ  rp  r   rY  rZ  r  rÖ  r²   )r   rJ  rl   râ   rY  rZ  s         r"   r=   z$NltkDrtBoxerDrsInterpreter.interpretÚ  s)  € õ
 �b�(Ñ#Ô#ð !	GÝØ.Ð. b¤gÐ.Ñ.Ô.µµS¸¼ÈÌÑ5RÔ5RÑ0SÔ0Sñô ˆCð Œ}Ð(Ø!%§¢°´Ñ!>Ô!>�”ØˆJÝ˜�HÑ%Ô%ð 	GÝ'¨¯ª°r´vÑ(>Ô(>Ñ?Ô?Ð?Ý˜�IÑ&Ô&ð 	GØ×+Ò+¨r¬vÐ,AÐ,A¸¼Ð,AÐ,AÀ2ÑFÔFˆDØ—?’? 4¨¬Ñ0Ô0Ð0Ý˜�JÑ'Ô'ð 	GØ×+Ò+Ð,E°"´'Ð,EÐ,E¸B¼GÐ,EÐ,EÀrÑJÔJˆDØ—?’? 4¨¬Ñ0Ô0Ð0Ý˜�HÑ%Ô%ð 	GØ×+Ò+¨D°B´F©O¸RÑ@Ô@ˆDØ—?’? 4¨¬°"´'Ñ:Ô:Ð:Ý˜�IÑ&Ô&ð 	GÝ!¥(¨2¬6Ñ"2Ô"2°D·N²NÀ2Ä6Ñ4JÔ4JÑKÔKÐKÝ˜�GÑ$Ô$ð 	GÝ(Ý%¥h¨r¬wÑ&7Ô&7Ñ8Ô8Ý%¥h¨r¬wÑ&7Ô&7Ñ8Ô8ñô ð õ ˜�IÑ&Ô&ð 	GØ×+Ò+Ð,H°B´GÐ,HÐ,H¸b¼hÐ,HÐ,HÈ"ÑMÔMˆDØ—?’? 4¨¬Ñ0Ô0Ð0Ý˜�GÑ$Ô$ð 	GÝ" 4§>¢>°"´'Ñ#:Ô#:¸D¿NºNÈ2Ì7Ñ<SÔ<SÑTÔTÐTÝ˜�HÑ%Ô%ð 	GØ—>’> "¤'Ñ*Ô*ˆDØ—>’> "¤'Ñ*Ô*ˆDÝ�t”y 4¤9Ñ,¨d¬j¸4¼:Ñ.EÑFÔFÐFØ6˜œÔ.Ð6Ð6°"Ð6Ð6Ñ6Ô6Ð6r$   c           	      óœ   — t          t          |¦  «        ¦  «        }|D ],}t          |t          t          |¦  «        ¦  «        ¦  «        }Œ-|S rI   )r   r   r   )r   râ   rd   rÒ   r#  s        r"   rC  z%NltkDrtBoxerDrsInterpreter._make_atom  sP   € Ý%¥h¨t¡n¤nÑ5Ô5ˆØð 	ð 	ˆCÝ,ØÕ,­X°c©]¬]Ñ;Ô;ñô ˆEˆEð ˆr$   c                 ó¤   — | j         rH|j        �A|j        r|d|j        z  z  }|d|j        z  z  }|dt          |j        ¦  «        d         z  z  }|S )Nz_%sz_s%sz_w%sr   )rM  rì   r9   Úsortedrí   )r   ÚbaserJ  s      r"   rT  z.NltkDrtBoxerDrsInterpreter._add_occur_indexing  sc   € ØÔð 	8 ¤Ð!:ØŒð 0Ø˜ ¤Ñ/Ñ/�Ø�F˜Rœ]Ñ*Ñ*ˆDØ�F�V B¤OÑ4Ô4°QÔ7Ñ7Ñ7ˆDØˆr$   Nr±   )r²   r³   r´   r#   r=   rC  rT  rB   r$   r"   r   r   Ö  sV   € € € € € ð(ð (ð (ð (ð'7ð '7ð '7ðRð ð ðð ð ð ð r$   r   c                   ó   — e Zd ZdS )ÚUnparseableInputExceptionN)r²   r³   r´   rB   r$   r"   rZ  rZ    s   € € € € € Ø€Dr$   rZ  Ú__main__zusage: %prog TEXT [options]z	--verbosez-vzdisplay verbose logsÚ
store_trueFr    )ÚhelpÚactionÚdefaultÚdestz--folz-fz
output FOLÚfolz
--questionz-qzinput is a questionr:   z--occurz-ozoccurrence indexrN  r”   zincorrect number of arguments)rN  z\n)r:   r    )Crµ   rP   r+   rs  r†   ro   Ú	functoolsr   Úoptparser   Únltk.internalsr   Únltk.sem.drtr   r   r	   r
   r   r   r   r   r   Únltk.sem.logicr   r   r   r   r   r®   rƒ  r�  rT  rÿ   rë  r  r  r  rM  rb  rI  rp  r  rH  r   r6   rZ  r²   ÚoptsÚ
add_optionÚ
parse_argsÚoptionsrd   rO   ÚerrorrN  Úinterpreterr?   rš   r:   r    rl   r…   ÚsimplifyÚeliminate_equalityra  Ú	normalizeÚpretty_printrB   r$   r"   ú<module>rq     s-  ððð ð* €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à &Ð &Ð &Ð &Ð &Ð &ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð ð ð ðRYð RYð RYð RYð RYñ RYô RYð RYðjK*ð K*ð K*ð K*ð K*˜9ñ K*ô K*ð K*ð\DTð DTð DTð DTð DT�Yñ DTô DTð DTðN"ð "ð "ð "ð "ñ "ô "ð "ðJ8)ð 8)ð 8)ð 8)ð 8)Ðñ 8)ô 8)ð 8)ðv)ð )ð )ð )ð )Ðñ )ô )ð )ð:!ð !ð !ð !ð !Ð#ñ !ô !ð !ðH1ð 1ð 1ð 1ð 1�ñ 1ô 1ð 1ðh0ð 0ð 0ð 0ð 0�ñ 0ô 0ð 0ðf%ð %ð %ð %ð %ˆ|ñ %ô %ð %ðP'ð 'ð 'ð 'ð '�ñ 'ô 'ð 'ðTð ð ð ð ˆlñ ô ð ð8ð ð ð ð �ñ ô ð ð6"ð "ð "ð "ð "ˆlñ "ô "ð "ðJ3ð 3ð 3ð 3ð 3ˆ|ñ 3ô 3ð 3ðlð ð ð ð ñ ô ð ð
;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð|	ð 	ð 	ð 	ð 	 	ñ 	ô 	ð 	ð ˆzÒÑØˆ<Ð5Ñ6Ô6€DØ‡O‚OØØØ#ØØØð ñ ô ð ð 	‡O‚OØ�˜L°ÀuÐSXð ñ ô ð ð 	‡O‚OØØØ"ØØØð ñ ô ð ð 	‡O‚OØØØØØØð ñ ô ð ð —o’oÑ'Ô'�O€Wˆdà
€sˆ4�y„y�A‚~€~Ø�
Š
Ð2Ñ3Ô3Ð3à,Ð,¸Ô9LÐMÑMÔM€KØ
ˆ%�Ñ
Ô
×
,Ò
,ØˆQŒ�Š�eÑÔ wÔ'7ÀÄð -ñ ô €Cð €{Øˆˆd‰Œˆˆˆà�lŠl‰nŒn×/Ò/Ñ1Ô1ˆØŒ;ð 	ØˆE�#—'’'‘)”)×%Ò%Ñ'Ô'Ñ(Ô(Ð(Ð(Ð(à×ÒÑÔÐÐÐð[ Ðr$   