
    /hhz#                         S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	   " S S5      r
 " S S	\R                  5      r\S
:X  a  \R                  " SS9  gg)    )HyperParserN)requires)TkText)EditorWindowc                   J    \ rS rSrS r\R                  r\R                  rSrg)DummyEditwin	   c                 H    Xl         SU l        SU l        SU l        SU l        g )N   >>>)2   i  i  )textindentwidthtabwidthprompt_last_linenum_context_lines)selfr   s     K/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_hyperparser.py__init__DummyEditwin.__init__
   s&    	 %!.    )r   r   r   r   r   N)	__name__
__module____qualname____firstlineno__r   r   _build_char_in_string_funcis_char_in_string__static_attributes__ r   r   r	   r	   	   s!    / ".!H!H$66r   r	   c                   t    \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rSrg)HyperParserTest   u#  """This is a module docstring"""
# this line is a comment
x = "this is a string"
y = 'this is also a string'
l = [i for i in range(10)]
m = [py*py for # comment
       py in l]
x.__len__
z = ((r'asdf')+('a')))
[x for x in
for = False
cliché = "this is a string with unicode, what a cliché"c                     [        S5        [        5       U l        U R                  R                  5         [	        U R                  5      U l        [        U R
                  5      U l        g )Ngui)r   r   rootwithdrawr   r   r	   editwinclss    r   
setUpClassHyperParserTest.setUpClass%   sA    4>"388,r   c                 D    U ? U ?U R                  R                  5         U ?g N)r   r(   r&   destroyr)   s    r   tearDownClassHyperParserTest.tearDownClass-   s     HckHr   c                 P    U R                   R                  SU R                  5        g )Ninsert)r   r3   coder   s    r   setUpHyperParserTest.setUp3   s    		499-r   c                 ^    U R                   R                  SS5        SU R                  l        g )N1.0endr   )r   deleter(   r   r5   s    r   tearDownHyperParserTest.tearDown6   s"    		&(-%r   c                 .    [        U R                  U5      $ r.   )r   r(   )r   indexs     r   
get_parserHyperParserTest.get_parser:   s     4<<//r   c                 L   U R                  [        5       nU R                  R                  SSS5        U R	                  S5      nS S S 5        U R                  S[        WR                  5      5        SU R                  l	        U R	                  S5      nU R                  UR                  U R                  R                  SS5      5        U R                  R                  SU R                  R                  SS5      S-  5        U R	                  S	5      ng ! , (       d  f       N= f)
Nconsoler9   z1.endz1.5precedes r:      z54.5)assertRaises
ValueErrorr   tag_addr@   assertInstr	exceptionr(   r   assertEqualrawtextgetr3   )r   veps      r   	test_initHyperParserTest.test_init@   s     z*bIIi8&A + 	j#bll"34 )+% OOE"DIIMM%$?@ 					eU ;A =>OOF# +*s   /D
D#c                 >   U R                   nU" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        g )Nr9   z1.4z2.3z3.3z3.7z4.6z12.54)r@   assertFalseis_in_string
assertTruer   rO   rQ   s      r   test_is_in_string!HyperParserTest.test_is_in_stringT   s    ooJ)*J()J)*J)*J()J()L()r   c                    U R                   nU" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        U" S5      nU R                  UR                  5       5        g )Nr9   z1.1z2.5z3.4z3.6z4.14)r@   rW   
is_in_coderU   rX   s      r   test_is_in_codeHyperParserTest.test_is_in_codef   s    ooJ'J(J(J'J(K(r   c                 f   U R                   nS nS nU" S5      nU R                  U" U5      5        U R                  U" U5      5        U" S5      nU R                  U" U5      S5        U R                  U" U5      U" U5      5        U" S5      nU R                  U" U5      S5        U R                  U" U5      U" U5      5        U" S5      nU R                  U" U5      S	5        U R                  U" U5      5        U" S
5      nU R                  U" U5      5        U R                  U" U5      5        g )Nc                      U R                  SS9$ )NF	mustcloseget_surrounding_bracketsparsers    r   without_mustcloseGHyperParserTest.test_get_surrounding_bracket.<locals>.without_mustclosey   s     22U2CCr   c                      U R                  SS9$ )NTra   rc   re   s    r   with_mustcloseDHyperParserTest.test_get_surrounding_bracket.<locals>.with_mustclose~   s     22T2BBr   z3.2z5.6)z5.45.25z5.23)z5.21z5.24z6.15)z6.4z6.endz9.end)r@   assertIsNoneassertTupleEqual)r   rO   rg   rj   rQ   s        r   test_get_surrounding_bracket,HyperParserTest.test_get_surrounding_bracketv   s!   oo	D
	C
 J.+,+A./J/2OD/2N14EFK/24DE/2N14EFK/24DE.+,L.+,+A./r   c                    U R                   nU" S5      nU R                  UR                  5       S5        U" S5      nU R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        U" S5      nU R                  UR                  5       S5        U" S5      nU R                  UR                  5       S5        U" S	5      nU R                  UR                  5       S
5        U" S5      nU R                  UR                  5       S5        U" S5      nU R                  UR                  5       S5        U" S5      nU R                  UR                  5       S5        U" S5      nU R                  [        5       nUR                  5         S S S 5        U R                  S[        UR                  5      5        U" S5      nU R                  UR                  5       S
5        U" S5      nU R                  UR                  5       S
5        U" S5      nU R                  UR                  5       S
5        U" S5      nU R                  UR                  5       S
5        U" S5      nU R                  UR                  5       S5        U" S5      nU R                  UR                  5       S5        g ! , (       d  f       GNp= f! , (       d  f       GN7= f)Nz4.2zy z4.7zis inside a coderl   z	range(10)z6.7pyz6.8rE   z7.9z8.endz	x.__len__z9.13zr'asdf'z9.17z10.0z10.6z10.11z11.3z11.11Falsez12.6   cliché)r@   rM   get_expressionrG   rH   rJ   rK   rL   )r   rO   rQ   rP   s       r   test_get_expression#HyperParserTest.test_get_expression   s\   ooJ))+T2Jz*b +(#bll*;<K))+[9J))+T2J))+R0J))+T2L))+[9K))+Y7Kz*b +(#bll*;<K))+R0K))+R0L))+R0K))+R0L))+W5K))+Y7W +*. +*s   KK
K
K-c                    S nU R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S	5      5        U R                  U" S
5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  [        R                  " SSS5      [        S5      5        U R                  [        R                  " SSS5      [        S5      5        U R                  [        R                  " SSS5      [        S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S 5      5        U R                  U" S!5      5        g )"Nc                     [         R                  " U S[        U 5      5      nU[        U 5      :X  a  gUS:X  a  gSR                  U[        U 5      5      n[	        U5      e)Nr   TFz'Unexpected result: {} (expected 0 or {})r   _eat_identifierlenformat	Exception)	candidateresulterr_msgs      r   is_valid_id8HyperParserTest.test_eat_identifier.<locals>.is_valid_id   sY     00As9~NFY'1CJJC	N  ((r   2notidvalid_id	_valid_id	valid_id_
_2valid_idTruers   Noneforimportreturnclichert   u   a٢2au   ٢au   a²z+ varr      varz+varrF   z.var+ :?^\"z
"a string")rU   rW   rM   r   rz   r{   )r   r   s     r   test_eat_identifier#HyperParserTest.test_eat_identifier   sG   
	) 	X./ 	J/0K01K01L12 	F+,G,-F+, 	U+,X./X./ 	H-.I./E*+ 	T*+U+,U+, 	44WaCSZP44VQBCJO44VQBCJO 	S)*S)*S)*S)*S)*T*+S)*\23r   c           	         [         R                  n[        SS5       GH-  nU R                  U" SU-  SU5      U5        U R                  U" SU-  SU5      U5        U R                  U" SSUS-
  -  -   SU5      U5        U R                  U" SSUS-
  -  -   SU5      U5        U R                  U" SSUS-
  -  -   SU5      U5        U R                  U" SUS-
  -  S-   SU5      U5        U R                  U" SU-  SU5      S5        U R                  U" SSUS-
  -  -   SU5      S5        U R                  U" SSUS-
  -  -   SU5      S5        GM0     g )N   r#   ar      é2r   )r   rz   rangerM   )r   eat_idlengths      r   #test_eat_identifier_various_lengths3HyperParserTest.test_eat_identifier_various_lengths  s^   ,,ArlFVC&L!V<fEVD6M1f=vFVC#!*<$<aH&QVD3&1*+=$=q&I6RVD3&1*+=$=q&I6RVDFQJ$7#$=q&I6RVC&L!V<a@VC#!*<$<aH!LVC$&1**=$=q&I1M #r   r    N)r   r   r   r   r4   classmethodr+   r0   r6   r<   r@   rR   rY   r]   ro   rv   r   r   r   r    r   r   r"   r"      sk    H 	 - -  
..0$(*$) 0B28h74rNr   r"   __main__   )	verbosity)idlelib.hyperparserr   unittesttest.supportr   tkinterr   r   idlelib.editorr   r	   TestCaser"   r   mainr    r   r   <module>r      sR    ,  !  '	7 	7{Nh'' {N| zMMA r   