
    c'f                        d dl mZ d dlmZ d dlZej
                  d    dk  rd dlZg dZd Ze	Z
neZd ZeZ
dZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:d5Z;d6Z<d7Z=d8Z>d9Z?d:Z@e.ZAd;ZBe3e4e5e9e:e;e<e=hZCd<ZDe6e3e7e4e8e5iZEe3d=e6d=e4d>e7d>e5de8diZFeeeee4e3e5hZG G d? d@eH      ZI G dA dBeI      ZJ G dC dDeK      ZLdEdFdGddHdIdJdKddLd'dMZM G dN dOeK      ZNy)P    )unicode_literals)digitsN   (g  )    ~   )      )   iw  )iz  i  )i  i  )  r   )i  i  )i  i/  )i1  iV  )iY  i_  )ia  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  iJ  )iM  i  )i  i  )i   i-  )i0  i>  )i@  i[  )^  r   )i  i  )i  i	  )i	  i	  )i	  i	  )i	  i	  )i	  i	  )	  r   )i	  i	  )i	  i	  )i	  i	  )i	  i	  )	  r   )i	  i	  )i	  i	  )i	  i	  )i
  i
  )i
  i

  )i
  i
  )i
  i(
  )i*
  i0
  )i2
  i3
  )i5
  i6
  )i8
  i9
  )<
  r   )i>
  iB
  )iG
  iH
  )iK
  iM
  )Q
  r   )iY
  i\
  )^
  r   )if
  iu
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )i
  i
  )
  r   )i
  i
  )i
  i
  )
  r   )i  i  )i  i  )i  i  )i  i(  )i*  i0  )i2  i3  )i5  i9  )i<  iD  )iG  iH  )iK  iM  )iV  iW  )i\  i]  )i_  ic  )if  iw  )i  i  )i  i  )i  i  )i  i  )i  i  )  r   )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )  r   )  r   )i  i  )i   i  )i  i  )i  i  )i  i(  )i*  i9  )i=  iD  )iF  iH  )iJ  iM  )iU  iV  )iX  iZ  )i`  ic  )if  io  )ix  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )  r   )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i:  )i=  iD  )iF  iH  )iJ  iN  )W  r   )i_  ic  )if  iu  )iy  i  )i  i  )i  i  )i  i  )i  i  )  r   )i  i  )  r   )i  i  )  r   )i  i  )i  i  )i  i  )i  i:  )i?  i[  )i  i  )  r   )i  i  )  r   )  r   )i  i  )i  i  )i  i  )  r   )  r    )i  i  )i  i  )i  i  )i  i  )  r!   )i  i  )i  i  )i  i  )i   iG  )iI  il  )iq  i  )i  i  )i  i  )i  i  )i   i  )  r"   )  r#   )i  iH  )iJ  iM  )iP  iV  )X  r$   )iZ  i]  )i`  i  )i  i  )i  i  )i  i  )i  i  )  r%   )i  i  )i  i  )i  i  )i  i  )i  iZ  )i]  i|  )i  i  )i  i  )i  i  )i   i  )i  i  )i  i  )i   i  )i  i  )i   i6  )i@  iS  )i`  il  )in  ip  )ir  is  )i  i  )i  i  )i  i  )i   i  )i  i  )i   iw  )i  i  )i  i  )i   i  )i   i+  )i0  i;  )@  r&   )iD  im  )ip  it  )i  i  )i  i  )i  i  )i  i  )i  i^  )i`  i|  )i  i  )i  i  )i  i  )i  i  )i   iK  )iP  i|  )i  i  )i  i7  )i;  iI  )iM  i  )i  i  )i  i  )i  i  )i   i  )i  i  )i  i  )i   iE  )iH  iM  )iP  iW  )Y  r'   )[  r(   )]  r)   )i_  i}  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i   i'   )i0   i^   )ip   iq   )it   i   )i   i   )i   i   )i   i   )i !  i!  )i!  i#  )i $  i&$  )i@$  iJ$  )i`$  is+  )iv+  i+  )i+  i+  )i+  i+  )i+  i+  )i+  i+  )i ,  i.,  )i0,  i^,  )i`,  i,  )i,  i%-  )'-  r*   )--  r+   )i0-  ig-  )io-  ip-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  i-  )i-  iB.  )i.  i.  )i.  i.  )i /  i/  )i/  i/  )i0  i?0  )iA0  i0  )i0  i0  )i1  i-1  )i11  i1  )i1  i1  )i1  i1  )i1  i2  )i 2  i2  )i 3  iM  )iM  i՟  )i   i  )i  iƤ  )iФ  i+  )i@  i  )i   i  )i  i  )i  i+  )i0  i9  )i@  iw  )i  iĨ  )iΨ  i٨  )i  i  )i   iS  )i_  i|  )i  iͩ  )iϩ  i٩  )iީ  i  )i   i6  )i@  iM  )iP  iY  )i\  iª  )i۪  i  )i  i  )i	  i  )i  i  )i   i&  )i(  i.  )i0  ie  )ip  i  )i  i  )i   i  )i  i  )i  i  )i   im  )ip  i  )i   i  )i  i  )i  i6  )i8  i<  )>  r,   )i@  iA  )iC  iD  )iF  i  )i  i?  )iP  i  )i  i  )i  i  )i   i  )i   iR  )iT  if  )ih  ik  )ip  it  )iv  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i  i  )i   i  )i  i&  )i(  i:  )i<  i=  )i?  iM  )iP  i]  )i  i  )i  i )i i3 )i7 i )i i ) r-   )i i )i i )i i )i i )i  i# )i0 iJ )iP iz )i i )i i )i i )i  i )i i )i  i' )i0 ic )o r.   )i  i6 )i@ iU )i` ig )i  i ) r/   )i
 i5 )i7 i8 )< r0   )i? iU )iW i )i i )i i )i i )i i	 )i	 i9	 )?	 r1   )i	 i	 )i	 i	 )i	 i
 )i
 i
 )i
 i
 )i
 i
 )i
 i3
 )i8
 i:
 )i?
 iG
 )iP
 iX
 )i`
 i
 )i
 i
 )i
 i
 )i  i5 )i9 iU )iX ir )ix i )i i )i i )i  iH )i i )i i )i i )i` i~ )i  iM )iR io )i i )i i )i i )i i )i  i4 )i6 iC )iP iv )i i )i i )i i )i  i )i i= )i i ) r2   )i i )i i )i i )i i )i i )i  i )i i )i i )i i( )i* i0 )i2 i3 )i5 i9 )i< iD )iG iH )iK iM )P r3   )W r4   )i] ic )if il )ip it )i i )i i )i i )i i )i  iD )iP iY )i i )i i )i  i )i i+ )i0 i? )i i ) r5   )i i )i   i# )i $ in$ )ip$ it$ )i$ iC% )i 0 i.4 )i D iFF )i h i8j )i@j i^j )i`j iij )inj ioj )ij ij )ij ij )i k iEk )iPk iYk )i[k iak )ick iwk )i}k ik )i o iDo )iPo i~o )io io )i  i )i  ij )ip i| )i i )i i )i i )i  i )i  i& )i) ir )i{ i )i  iE )i  iV )i` iq )i  iT )iV i )i i ) r6   )i i )i i )i i ) r7   )i i )i i )i i
 )i i )i i )i i9 )i; i> )i@ iD )F r8   )iJ iP )iR i )i i )i i )i i )i i )i  i )i i )i  i )i i )i! i" )$ r9   )' r:   )i) i2 )i4 i7 )9 r;   ); r<   )B r=   )G r>   )I r?   )K r@   )iM iO )iQ iR )T rA   )W rB   )Y rC   )[ rD   )] rE   )_ rF   )ia ib )d rG   )ig ij )il ir )it iw )iy i| )~ rH   )i i )i i )i i )i i )i i )i i )i  i+ )i0 i )i i )i i )i i )i i )i  i )i i. )i0 ik )ip i )i i )i i: )i@ iH )iP iQ )i  iy )i{ i )i i )i i )i i )i  is )i i )i  i )i iG )iP iY )i` i )i i )i i )i i ) rI   )i   i֦ )i  i4 )i@ i )i  i )i  i )i  i c                     t        |       }t        j                  t        ||f      }|t	        t              k\  r|dz  }t        |   \  }}|dkD  r||k  rt        |dz
     \  }}||cxk  xr |k  S c S )N   r   )ordbisectbisect_rightPRINTABLE_RANGESlen)cocilohis        \/var/www/html/tulostaulu.pesapallolive.fi/venv/lib/python3.12/site-packages/config/tokens.pyis_printablerW   w  sy    V 02r(;$%%FA!!$Bq5R"W%a!e,FBR~2~~    c                 "    | j                         S N)isprintable)rQ   s    rV   <lambda>r\     s    Q]]_ rX   a01j" 
{}[]()<>z<=>=z===z!=z<>z<<z>>.,:@+-*z**/~z//%`$truefalsenullTrueFalseNoneisinnotandor&|^5ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_z:-+*/%,.{}[]()@$<>!~&|^TFc                       e Zd Zy)RecognizerErrorN)__name__
__module____qualname__ rX   rV   r   r     s    rX   r   c                       e Zd ZdZy)TokenizerErrorN)r   r   r   locationr   rX   rV   r   r     s    HrX   r   c                   (    e Zd ZdxZZddZd Zd Zy)TokenNc                 .    || _         || _        || _        y rZ   kindtextvalue)selfr   r   r   s       rV   __init__zToken.__init__  s    		
rX   c                 V    d| j                   d| j                  d| j                  dS )NzToken(rp   ri   r   r   s    rV   __repr__zToken.__repr__  s    $(IItyy$**EErX   c                     t        |t              sy| j                  |j                  k(  xr | j                  |j                  k(  S )NF)
isinstancer   r   r   )r   others     rV   __eq__zToken.__eq__  s4    %'		UZZ'HdjjEKK.GHrX   rZ   )r   r   r   startendr   r   r   r   rX   rV   r   r     s    EC
FIrX   r   	\')r]   bfnrtvr   ra   r   ru   c                   ^    e Zd ZdZdZeZeZee	z   Z
d Zed        Zd Zd Zd Zd Zd	 ZeZy
)	Tokenizerz 	
z'"c                     || _         dx| _        | _        dx| _        | _        t        |dd      | _        g | _        g | _        y )NrK   filenamez<unknown filename>)	streamlinenocharlinecolnocharcolgetattrr   pbcharspbtokens)r   r   s     rV   r   zTokenizer.__init__  sD    &''dm$%%
T\
4HIrX   c                 t    | j                   j                         }| j                   j                         }||d  S rZ   )r   getvaluetell)r   sps      rV   	remainingzTokenizer.remaining  s1    KK  "KKurX   c                 n    |r3| j                   j                  || j                  | j                  f       y y rZ   )r   appendr   r   )r   rQ   s     rV   	push_backzTokenizer.push_back  s+    LLDMM4<< @A rX   c                    | j                   rB| j                   j                         }|d   }|d   x| _        | _        |d   x| _        | _        n=| j                  | _        | j
                  | _        | j                  j                  d      }|r8|dk7  r| xj
                  dz  c_        |S | xj                  dz  c_        d| _        |S )z
        Get the next char from the stream. Update line and column numbers
        appropriately.

        :return: The next character from the stream.
        :rtype: str
        r   rK      rc   )r   popr   r   r   r   r   read)r   r   rQ   s      rV   get_charzTokenizer.get_char  s     <<  "A!A*+A$.DMDK()!,DL4: KKDM::DL  #ADy

a
  q 
rX   c                      j                   r j                   j                         S  j                  }dx}}t        } j                   fd}fd}d}	         } j
                  x}	 j                  x}
|snZ|dk(  rQ|j                           xj                  dz  c_        d _	         j                   j                  dz
  }
}	t        x}}n|dk(  r% j                   j                  dz
  }
}	t        x}}n|d	k(  r?        }|dk7  r j                  |       t        x}} j
                   j                  }
}	n|d
k(  rP        }|dk7  r*t        d      } j
                   j                  f|_        | j
                   j                  }
}	A| j                  v rQ|dk(  r|x}}t        } j
                   j                  }
}		         }|sn^t!        |      s/t        d||fz        } j
                   j                  f|_        |||z  } j
                   j                  }
}	||k(  rnh|st        d|z        }f|_        |n| j"                  v rR|} j
                   j                  }
}	|}t$        }d}d}        } j
                   j                  f}||k7  r j                  |       nL        }||k7  r4 j                  |       |s|\   _         _         j                  |       nd}||z  }||z  }|}	         }|sn||z  } j
                   j                  }
}	||k(  r/|s-|r*t'        |      dk\  r|j)                  |dd       r	|d   d
k7  rn/|d
k(  r'        }|dk(  r|dd }s j                  |       | }nd}|st        d|z        }f|_        |n#| j*                  v r|} j
                   j                  }
}	t,        }        }|rC| j.                  v r5||z  } j
                   j                  }
}	        }|r| j.                  v r5 j                  |       |t0        v r	t0        |   }|t2        v rt4        j7                  |      }|}n|}nc|t8        v r ||      \  }}}}	}
nK|dk(  rC        }|dk(  r ||z   } j
                   j                  }
}	|}n|x}} j                  |       n| j:                  v r|x}} j
                   j                  }
}	|dk(  r:        }|r|t8        vr j                  |       nw||z  } ||      \  }}}}	}
n|dk(  r?        }|rS|t8        v s|dk(  r||z  } ||      \  }}}}	}
n1 j                  |       n|dv r        }d}|dk(  r5|dv r||z  } j
                   j                  }
}	|t<        k7  r|nt>        }d}n|dv r7||k(  r2||z  } j
                   j                  }
}	|dk(  rt@        }ntB        }d}n|dk(  r&|dv r||z  } j
                   j                  }
}	|}d}n]|dk(  r.|dk(  r"||z  } j
                   j                  }
}	|}d}n1tD        }n*|d v r&||k(  r!||z  } j
                   j                  }
}	|}d}|r j                  |       n6t        d!tG        |      z        } j
                   j                  f|_        ||t$        t        fv rDt'        |      }|d"v sJ |jI                  |      sJ |j)                  |      sJ 	  ||||        }tK        |||      }f|_&        |	|
f|_'        |S # t        $ r}f|_        |d}~ww xY w)#z
        Get a token from the stream. The return value is (token_type, token_value).

        Multiline string tokenizing is thanks to David Janes (BlogMatrix)

        :return: The next token.
        :rtype: A token tuple.
        rb   c                 l   t         }d}d}| j                  d      dk\  }| d   j                         }j                  j                  }}	         }|dk(  rd}|sn|dk(  rR|r | |z  } d}j                  j                  }}:t        d| z  |z         }	j                  j                  f|	_        |	d}|dk(  r/d|cxk  rd	k  r$n n!| |z  } d}j                  j                  }}n|d
k(  r/d|cxk  rdk  r$n n!| |z  } d}j                  j                  }}n|dk(  r/d|cxk  rdk  r$n n!| |z  } d}j                  j                  }}n|dk(  rId|cxk  rd	k  sn d|cxk  rdk  sn d|cxk  rdk  r$n n!| |z  } d}j                  j                  }}n<|dv r4| dk(  r/|dv rd}n	|dv rd}nd
}| |z  } j                  j                  }}n|dk(  rf|dk7  s| j                  d      dk\  s|r-t        d|z        }	j                  j                  f|	_        |	| |z  } j                  j                  }}n|dk(  r:|dk(  r5| j                  dd      dk  r |r| |z  } j                  j                  }}nZ|dk(  rT|dv rP| j                  d      dk  r<| j                  d      dk  r(| d   dk7  r | |z  } j                  j                  }}d}nn| d   dk(  r0t        d| z        }	j                  j                  dz
  f|	_        |	|r|dk(  r(|dv r$| |z  } j                  j                  }}t        }nT|dk7  r"|j                         sj                  |       n-t        d|z        }	j                  j                  f|	_        |		 | j                  dd      }
|rt        |
d
d  |      }nA| d   dv rt        |
      }n.|s|rt        |
      }t        }n|
d   dk(  rdnd}t        |
|      }|| |||fS # t        $ r# t        d t!        |       z        }	f|	_        |	w xY w)!NFr   rn   T_zInvalid '_' in number: %sr^   9r   r_      7   r]   r   AFOXoxBbOoXxzInvalid character in number: %crs   rK   eEeEz Invalid '_' at end of number: %sjJrb   
   zBadly-formed number: %r)INTEGERfindisdigitr   r   r   r   COMPLEXisalnumr   replaceintcomplexfloatFLOAT
ValueErrorstr)tokenttin_exponentradixdot_seenlast_was_digitendlineendcolrQ   r   r   r   r   r   startcol	startlines               rV   
get_numberz'Tokenizer.get_token.<locals>.get_number<  sD   BKEzz#!+H"2Y..0N"mmT\\VGJ8#H8%
).*.-- &'Du'Lq'PQA"&--!>AJG!&QJSA__QJE%)N&*mmT\\VGqjsa3QJE%)N&*mmT\\VGqjsa3QJE%)N&*mmT\\VGrkA__#/c/sa3QJE%)N&*mmT\\VG(]u|Dy !d " !QJE&*mmT\\VG#X
uzz#!';{*+Lq+PQ&*mmT\\%B

*.--aZc

3*Q.#QJE&*mmT\\VGaZdC1,C1,rc)QJE&*mmT\\VG"&KM R RyC"#G%#OP"mmT\\A-=>
QJAIQJE&*mmT\\VG BCx		q)*+Lq+PQ&*mmT\\%B
MM#r*!"u-E2Y$&#AJE H!!HEB!"1A"E5ME ueWf44  "#<s5z#IJ'2
	s   A%P ,P3c                    | j                  d      }|dk  r| }|S g }d}|dk\  rt        |       }|dkD  r|j                  | d |        | |dz      }|t        v r|j                  t        |          |dz  }no|dv rh|dv rd}n	|d	k(  rd
nd}||z   |kD  rd}nl| |dz   ||z    }	 t	        |d      }d|cxk  rdk  sn |dk\  rd}n?|j                  t        |             ||z  }nd}n| |d  } | j                  d      }|dk\  r|rt        d|| fz        }	
f|	_        |	|j                  |        dj                  |      }|S # t        $ r d}Y Nw xY w)Nr   r   FrK   r   xXuUxX   u   r   Tr   i   i  i   z'Invalid escape sequence at index %d: %srb   )
r   rP   r   ESCAPESr   unichrr   r   r   join)r   rS   resultfailedr   rQ   slenr   dr   r   r   s             rV   parse_escapesz*Tokenizer.get_token.<locals>.parse_escapes  s   tA1uZ MW 1fAA1uae,!a%AG|gaj1Qf9#$D()S1bDH>%)F!a!ea$h/	" #Ar
A &! 5v 5!x-)- %"MM&)4IA
 "&!"AtAA 1fB &AQFJA #,X!6AJGa M!  * "%)F!"s   " E E EENT#rK   rc   r   r   zUnexpected character: \rx   z!Invalid char %c in `-string: '%s'zUnterminated `-string: '%s'Fr   r   r   zUnterminated quoted string: %rrm   rn   rs   )rj   rk   !rt   ru   r   r   rj   z<>=)r   r   r   rk   rl   r  z*/=zUnexpected character: %r)rK   r   )(r   r   r   EOFr   r   r   readliner   r   NEWLINEr   r   r   
whitespaceBACKTICKrW   quotesSTRINGrP   endswith	wordcharsWORD
identchars
PYKEYWORDSKEYWORDSKEYWORD_VALUESgetr   punctALT_NEQNEQANDORNOTr   
startswithr   r   r   )r   r   r   quoterr   r   r  r   rQ   r   r   r   quoteescaped	multilinec1c1locc2ncpbr   r   r   r   r   s   `                     @@@rV   	get_tokenzTokenizer.get_token+  s    ====$$&&==q	5h0	d 
A"&--/I $,Hvc!q 
"&++tzzA~$$Ud"&++tzzA~$$UdJ9NN1%$$U"&--dJ9&'ABA!%!<AJG"&--doo%c!"""&-- 
A'?*AQJN '+mmT\\%B
QJE&*mmT\\VGF{  &'F'NOA"+X!6AJGdkk!"&--!	Z5;NN2&!BU{r*!:?7DM4<r*$(	 
AQJE&*mmT\\VGU
G(J!O %uRay 9 %b	T 1!Dy%Z:$)#2JE$ NN2.*1kG"'- . &'G%'OPA"+X!6AJGdnn$"&--JQ$//1QJE&*mmT\\VG 
A Q$//1 q!J&&u-EH$*..u5EB!Ef4>qM1E5'6cZ9FE&*mmT\\VGB!"NBNN2&djj"&--8 
AF? NN1-!QJE@J5@Q=Bugv!#X 
A;!s(!QJE@J5@Q=Bugv NN1-AA 
AB|:!QJE.2mmT\\VG*/7*:B!&B*,e
*.--8!$B!#B"#9!QJE.2mmT\\VG!&B!&B#8!QJE.2mmT\\VG!&B!&B!$B%:!QJE.2mmT\\VG!&B!&Bq)"#=A#FG"mmT\\:
&(##FA;##F++>>&))%eAqbk2 r5%(!8,v&
 " '2
s   %] 	]+]&&]+c                     | S rZ   r   r   s    rV   __iter__zTokenizer.__iter__  s    rX   c                 X    | j                         }|j                  t        k(  rt        |S rZ   )r%  r   r  StopIteration)r   r   s     rV   nextzTokenizer.next  s%    !;;#rX   N)r   r   r   r	  r  PUNCTr  	WORDCHARSr  r   r  r   propertyr   r   r   r%  r'  r*  __next__r   rX   rV   r   r     s\    JFEIV#J  
B2Sj HrX   r   )O
__future__r   stringr   sysversion_inforM   rO   rW   unicode	text_typechrr   r   r  r   r   r   r  r  r  LCURLYRCURLYLBRACKRBRACKLPARENRPARENLTGTLEGEEQASSIGNr  r  LSHIFTRSHIFTDOTCOMMACOLONATPLUSMINUSSTARPOWERSLASHTILDE
SLASHSLASHMODULOr
  DOLLARTRUEFALSENONEPYTRUEPYFALSEPYNONEISINr  r  r  BITANDBITORBITXORBITNOTr,  r  r+  r  r  SCALAR_TOKENS	Exceptionr   r   objectr   r   r   r   rX   rV   <module>r`     s  
 (  
Ah	T IF,LI


	
										

			


			
							C	%r2sC4!dGUFD9
 	$
D	5U$
D %%tD	i 	_ IF I& 
						


	R RrX   