Ë
    çÍ:jÂ	  ã                   óZ   — 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«        yy)é    N)ÚNonterminalc                 ó®   — |s| j                  «       }|€t        j                  «       dz  dz
  }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ÚgetrecursionlimitÚ_generate_allÚ	itertoolsÚislice)Úgrammarr   ÚdepthÚnÚiters        úh/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/parse/generate.pyÚgenerater      sY   € ñ Ø—‘“ˆØ€}ä×&Ñ&Ó(¨AÑ-°Ñ2ˆä˜ 5 '¨5Ó1€DáÜ×Ñ  aÓ(ˆà€Kó    c              #   ó¸   K  — |r3	 t        | |d   |«      D ]  }t        | |dd  |«      D ]	  }||z   –— Œ Œ  y g –— y # t        $ r}t        d«      |‚d }~ww xY w­w)Nr   é   z}The grammar has rule(s) that yield infinite recursion!
Eventually use a lower 'depth', or a higher 'sys.setrecursionlimit()'.)Ú_generate_oner	   ÚRecursionErrorÚRuntimeError)r   Úitemsr   Úfrag1Úfrag2Úerrors         r   r	   r	   )   s‚   è ø€ Ùð		Ü& w°°a±¸%Ó@ò (�Ü*¨7°E¸!¸"°I¸uÓEò (�EØ %™-Ó'ñ(ñ(ð ‹øô ò 	äðHóð ðûð	üs%   ‚A†1= ·A½	AÁAÁAÁAc              #   óÂ   K  — |dkD  rTt        |t        «      r>| j                  |¬«      D ](  }t        | |j	                  «       |dz
  «      E d {  –—†  Œ* y |g–— y y 7 Œ­w)Nr   )Úlhsr   )Ú
isinstancer   Úproductionsr	   Úrhs)r   Úitemr   Úprods       r   r   r   9   sf   è ø€ Øˆq‚yÜ�dœKÔ(Ø×+Ñ+°Ð+Ó5ò I�Ü(¨°$·(±(³*¸eÀa¹iÓH×HÑHñIð �&‹Lð ð Iús   ‚AAÁAÁA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        «       |j	                  t        «      }t        t        || ¬«      d«      D ]$  \  }}t        d|dj                  |«      fz  «       Œ& y )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.   M   sf   € Ý ä	Ð
?À1À$Ñ
FÔGÜ	Œ,ÔØ�n‰nœ\Ó*€GÜœX g°Ô3°QÓ7ò /‰ˆˆ4Üˆi˜1˜cŸh™h t›nÐ-Ñ-Õ.ñ/r   Ú__main__)NNN)é   )
r
   r   r&   r   r   r	   r   r(   r.   Ú__name__© r   r   ú<module>r3      s?   ðó Û 
å $óò0ò ð€ó/ð ˆzÒÙ…Fð r   