§
    �zIfM	  ã                   óf   — d dl Z d dlZd dlmZ d
d„Zd„ Zd„ ZdZdd„Ze	d	k    r e¦   «          dS dS )é    N)ÚNonterminalc                 ó    — |s|                       ¦   «         }|€t          j        }t          | |g|¦  «        }|rt	          j        ||¦  «        }|S )am  
    Generates an iterator of all sentences from a CFG.

    :param grammar: The Grammar used to generate sentences.
    :param start: The Nonterminal from which to start generate sentences.
    :param depth: The maximal depth of the generated tree.
    :param n: The maximum number of sentences to return.
    :return: An iterator of lists of terminal tokens.
    )ÚstartÚsysÚmaxsizeÚ_generate_allÚ	itertoolsÚislice)Úgrammarr   ÚdepthÚnÚiters        úG/var/www/piapp/venv/lib/python3.11/site-packages/nltk/parse/generate.pyÚgenerater      sW   € ð ð  Ø—’‘”ˆØ€}Ý”ˆå˜ 5 '¨5Ñ1Ô1€Dàð )ÝÔ  aÑ(Ô(ˆà€Kó    c              #   óÚ   K  — |rb	 t          | |d         |¦  «        D ]%}t          | |dd …         |¦  «        D ]	}||z   V — Œ
Œ&d S # t          $ r}t          d¦  «        |‚d }~ww xY wg V — d S )Nr   é   z6The grammar has rule(s) that yield infinite recursion!)Ú_generate_oner   ÚRecursionErrorÚRuntimeError)r   Úitemsr   Úfrag1Úfrag2Úerrors         r   r   r   '   s¿   è è € Øð ð	Ý& w°°a´¸%Ñ@Ô@ð (ð (�Ý*¨7°E¸!¸"¸"´I¸uÑEÔEð (ð (�EØ %™-Ð'Ð'Ð'Ð'ð(ð(ð (øõ ð 	ð 	ð 	åØHñô àðøøøøð	øøøð ˆˆˆˆˆs   †=A Á
A$ÁAÁA$c              #   óÜ   K  — |dk    rct          |t          ¦  «        rG|                      |¬¦  «        D ].}t          | |                     ¦   «         |dz
  ¦  «        E d {V —† Œ/d S |gV — d S d S )Nr   )Úlhsr   )Ú
isinstancer   Úproductionsr   Úrhs)r   Úitemr   Úprods       r   r   r   6   sš   è è € Øˆq‚y€yÝ�d�KÑ(Ô(ð 	Ø×+Ò+°Ð+Ñ5Ô5ð Ið I�Ý(¨°$·(²(±*´*¸eÀa¹iÑHÔHÐHÐHÐHÐHÐHÐHÐHÐHðIð Ið �&ˆLˆLˆLˆLˆLð €yr   zš
  S -> NP VP
  NP -> Det N
  PP -> P NP
  VP -> 'slept' | 'saw' NP | 'walked' PP
  Det -> 'the' | 'a'
  N -> 'man' | 'park' | 'dog'
  P -> 'in' | 'with'
é   c                 ó,  — ddl m} t          d| fz  ¦  «         t          t          ¦  «         |                     t          ¦  «        }t          t          || ¬¦  «        d¦  «        D ],\  }}t          d|d                     |¦  «        fz  ¦  «         Œ-d S )Nr   )ÚCFGz3Generating the first %d sentences for demo grammar:)r   r   z%3d. %sú )Únltk.grammarr$   ÚprintÚdemo_grammarÚ
fromstringÚ	enumerater   Újoin)ÚNr$   r   r   Úsents        r   Údemor.   J   s¢   € Ø Ð Ð Ð Ð Ð å	Ð
?À1À$Ñ
FÑGÔGÐGÝ	�,ÑÔÐØ�nŠn�\Ñ*Ô*€GÝ�X g°Ð3Ñ3Ô3°QÑ7Ô7ð /ð /‰ˆˆ4Ýˆi˜1˜cŸhšh t™nœnÐ-Ñ-Ñ.Ô.Ð.Ð.ð/ð /r   Ú__main__)NNN)r"   )
r	   r   r&   r   r   r   r   r(   r.   Ú__name__© r   r   ú<module>r2      sŸ   ðð Ð Ð Ð Ø 
€
€
€
à $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð.ð ð ðð ð ð€ð/ð /ð /ð /ð ˆzÒÐØ€D�F„F€F€F€Fð Ðr   