
    [g|                     0    S SK Jr  S SKJr   " S S5      rg)    )TokenSet)BaseLunrExceptionc                   ,    \ rS rSrS rS rS rS rSrg)TokenSetBuilder   c                 L    SU l         [        5       U l        / U l        0 U l        g )N )previous_wordr   rootunchecked_nodesminimized_nodesselfs    8/usr/lib/python3/dist-packages/lunr/token_set_builder.py__init__TokenSetBuilder.__init__   s#    J	!!    c                 .   XR                   :  a  [        S5      eSn[        [        [	        U5      [	        U R                   5      5      5       H  nX   U R                   U   :w  a    O	US-  nM!     U R                  U5        U R                  (       d  U R                  OU R                  S   S   n[        U[	        U5      5       H?  n[        5       nX   nXTR                  U'   U R                  R                  XFUS.5        UnMA     SUl        Xl         g )NzOut of order word insertionr      child)parentcharr   T)r
   r   rangeminlenminimizer   r   r   edgesappendfinal)r   wordcommon_prefixinode	next_noder   s          r   insertTokenSetBuilder.insert   s   $$$#$ABBs3t9c$*<*<&=>?Aw$,,Q//QM	 @ 	m$ "11DIIt7K7KB7OPW7X 	 }c$i0A 
I7D(JJt  ''	B D 1 
!r   c                 &    U R                  S5        g )Nr   )r   r   s    r   finishTokenSetBuilder.finish,   s    ar   c                 f   [        [        U R                  5      S-
  US-
  S5       H  nU R                  U   n[        US   5      nX@R                  ;   a#  U R                  U   US   R
                  US   '   OXCS   l        US   U R                  U'   U R                  R                  5         M     g )Nr   r   r   r   r   )r   r   r   strr   r   _strpop)r   down_tor#   r$   	child_keys        r   r   TokenSetBuilder.minimize/   s    s4//014gk2FA''*DDM*I000595I5I)5TX$$T&\2%.W"26w-$$Y/  $$& Gr   )r   r
   r   r   N)	__name__
__module____qualname____firstlineno__r   r&   r)   r   __static_attributes__ r   r   r   r      s    ""@'r   r   N)lunr.token_setr   lunr.exceptionsr   r   r7   r   r   <module>r:      s    # -5' 5'r   