+
    j,i                    n    R t ^ RIHt ^ RIHt ^ RIHtHtHt ^ RI	H
t
 ^RIHtHt R.t ! R R]4      tR# )	z"
Completer for a regular grammar.
)annotations)Iterable)CompleteEvent	Completer
Completion)Document)Match_CompiledGrammarGrammarCompleterc                  J    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
t	R# )r
   aN  
Completer which can be used for autocompletion according to variables in
the grammar. Each variable can have a different autocompleter.

:param compiled_grammar: `GrammarCompleter` instance.
:param completers: `dict` mapping variable names of the grammar to the
                   `Completer` instances to be used for each variable.
c               $    V ^8  d   QhRRRRRR/# )   compiled_grammarr	   
completerszdict[str, Completer]returnNone )formats   "U/usr/lib/python3/dist-packages/prompt_toolkit/contrib/regular_languages/completion.py__annotate__GrammarCompleter.__annotate__   s$     % % 0%>R%	%    c                	    Wn         W n        R # Nr   r   )selfr   r   s   &&&r   __init__GrammarCompleter.__init__   s     !1$r   c               $    V ^8  d   QhRRRRRR/# )r   documentr   complete_eventr   r   Iterable[Completion]r   )r   s   "r   r   r   #   s$       2?	r   c              #  	   "   V P                   P                  VP                  4      pV'       d+   V P                  V P	                  W24      4       R j  xL
  R # R #  L5ir   )r   match_prefixtext_before_cursor_remove_duplicates_get_completions_for_match)r   r   r    ms   &&& r   get_completions GrammarCompleter.get_completions#   sV      !!..x/J/JK..//B   s   AAA	Ac               $    V ^8  d   QhRRRRRR/# )r   matchr   r    r   r   r!   r   )r   s   "r   r   r   -   s$     $ $$,9$	$r   c           	   #  r  "   VP                  4        EF  pVP                  pVP                  pV P                  P	                  V4      pV'       g   KA  VP
                  pV P                  P                  WG4      p\        V\        V4      4      p	VP                  W4       F  p
VR\        V4      V
P                  ,            V
P                  ,           p\        V P                  P                  WK4      V\        VP                  4      ,
          V
P                   V
P"                  R7      x  K  	  EK   	  R# 5i)z
Yield all the possible completions for this input string.
(The completer assumes that the cursor position was at the end of the
input string.)
N)textstart_positiondisplaydisplay_meta)	end_nodesvarnamestartr   getvaluer   unescaper   lenr(   r.   r-   r   escapestringr/   r0   )r   r+   r    match_variabler2   r3   	completerr-   unwrapped_textr   
completionnew_texts   &&&         r   r&   +GrammarCompleter._get_completions_for_match-   s     $oo/N$,,G"((E++G4Iy%++ "&!6!6!?!?!N $NC4GH #,";";H"UJ&'NTZ5N5N)NO$//*  %!2299'L',s5<</@'@ * 2 2%/%<%<	  #V! 0s   AD7C#D7c                    V ^8  d   QhRRRR/# )r   itemsr!   r   r   )r   s   "r   r   r   S   s     ! !(< !AU !r   c              #     "   R R lp\        4       pV F(  pV! V4      pWS9  g   K  VP                  V4       Vx  K*  	  R# 5i)z
Remove duplicates, while keeping the order.
(Sometimes we have duplicates, because the there several matches of the
same grammar, each yielding similar completions.)
c                    V ^8  d   QhRRRR/# )r   r=   r   r   ztuple[str, int]r   )r   s   "r   r   9GrammarCompleter._remove_duplicates.<locals>.__annotate__Z   s     	> 	>
 	> 	>r   c                2    V P                   V P                  3# r   )r-   r.   )r=   s   &r   hash_completion<GrammarCompleter._remove_duplicates.<locals>.hash_completionZ   s    ??J$=$===r   N)setadd)r   rA   rF   yielded_so_farr=   
hash_values   &&    r   r%   #GrammarCompleter._remove_duplicatesS   sA     	> 03uJ(4J/"":.    s
   !AAr   N)
__name__
__module____qualname____firstlineno____doc__r   r(   r&   r%   __static_attributes__r   r   r   r
   r
      s!    %$L! !r   N)rQ   
__future__r   typingr   prompt_toolkit.completionr   r   r   prompt_toolkit.documentr   compilerr   r	   __all__r
   r   r   r   <module>rY      s8    #  J J , - 
Q!y Q!r   