ó
    ´OÂfÂ	  ã                   ó`   • S SK r S SKrS SKJr  S	S jrS rS rSrS
S jr\	S:X  a  \" 5         gg)é    N)ÚNonterminalc                 óÄ   • U(       d  U R                  5       nUc  [        R                  " 5       S-  S-
  n[        X/U5      nU(       a  [        R
                  " XC5      nU$ )aQ  
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        Ú5/usr/lib/python3/dist-packages/nltk/parse/generate.pyÚgenerater      sU   € ö Ø—‘“ˆØ�}ä×&Ò&Ó(¨AÑ-°Ñ2ˆä˜ '¨5Ó1€DæÜ×Ò Ó(ˆà€Kó    c              #   óÆ   #   • U(       a4   [        XS   U5       H  n[        XSS  U5       H	  nX4-   v •  M     M!     g / v •  g ! [         a  n[        S5      UeS nAff = f7f)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	   )   ss   é € Þð		Ü& w°a±¸%Ö@�Ü*¨7¸!¸"°I¸uÖE�EØ™-Ô'ó Fò Að ‹øô ó 	äðHóð ðûð	üs'   ‚A!‹2A ½A!Á
AÁAÁAÁA!c              #   óÊ   #   • US:”  aW  [        U[        5      (       a<  U R                  US9 H(  n[        XR	                  5       US-
  5       S h  v•N   M*     g U/v •  g g  N7f)Nr   )Úlhsr   )Ú
isinstancer   Úproductionsr	   Úrhs)r   Úitemr   Úprods       r   r   r   9   s_   é € ØˆqƒyÜ�dœK×(Ñ(Ø×+Ñ+°Ð+Ó5�Ü(¨·(±(³*¸eÀa¹iÓH×HÒHò 6ð �&‹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                 óì   • SSK Jn  [        SU 4-  5        [        [        5        UR	                  [        5      n[        [        X S9S5       H$  u  p4[        SUSR                  U5      4-  5        M&     g )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   s]   € Ý ä	Ð
?À1À$Ñ
FÔGÜ	Œ,ÔØ�n‰nœ\Ó*€GÜœX gÑ3°QÖ7‰ˆÜˆi˜1˜cŸh™h t›nÐ-Ñ-Ö.ò 8r   Ú__main__)NNN)é   )
r
   r   r&   r   r   r	   r   r(   r.   Ú__name__© r   r   Ú<module>r3      s?   ðó Û 
å $ôò0ò ð€ô/ð ˆzÓÙ…Fð r   