
    kj                     $    S SK Jr   " S S5      rg)    )Callablec                      \ rS rSrS\SS4S jrS\4S jrS\4S jr	SS\S\4S	 jjr
S\4S
 jrS\S\4S jrS\S\4S jrS\\/\4   S\4S jrS\\/\4   S\4S jrSS\SS4S jjrS\SS4S jrS\\/\4   SS4S jrSrg)Lexer   textreturnNc                     Xl         SU l        g )Nr   )r   position)selfr   s     B/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Meta/Utils/lexer.py__init__Lexer.__init__   s    	    c                     U R                   $ N)r
   r   s    r   tell
Lexer.tell   s    }}r   c                 F    U R                   [        U R                  5      :  $ r   r
   lenr   r   s    r   is_eofLexer.is_eof   s    }}DII..r   offsetc                 r    U R                   U-   nU[        U R                  5      :  a  gU R                  U   $ )N r   )r   r   r
   s      r   peek
Lexer.peek   s2    ==6)s499~%yy""r   c                     U R                  5       (       a  gU R                  U R                     nU =R                  S-  sl        U$ )Nr      )r   r   r
   r   chs     r   consumeLexer.consume   s5    ;;==YYt}}%	r   stringc                     U R                   R                  XR                  5      (       a  U =R                  [        U5      -  sl        gg)NTF)r   
startswithr
   r   r   r%   s     r   consume_specificLexer.consume_specific#   s3    9966MMS[(Mr   c                 L    U R                   R                  XR                  5      $ r   )r   r'   r
   r(   s     r   next_isLexer.next_is)   s    yy##FMM::r   	predicatec                    U R                   nU R                   [        U R                  5      :  a  U" U R                  U R                      5      (       d^  U =R                   S-  sl         U R                   [        U R                  5      :  a&  U" U R                  U R                      5      (       d  M^  U R                  X R                    $ Nr    r   r   r.   starts      r   consume_untilLexer.consume_until,   s    mmc$))n,Ytyy?W5X5XMMQM mmc$))n,Ytyy?W5X5Xyy//r   c                    U R                   nU R                   [        U R                  5      :  a  U" U R                  U R                      5      (       a^  U =R                   S-  sl         U R                   [        U R                  5      :  a&  U" U R                  U R                      5      (       a  M^  U R                  X R                    $ r0   r   r1   s      r   consume_whileLexer.consume_while2   s    mmc$))n,499T]];S1T1TMMQM mmc$))n,499T]];S1T1Tyy//r   countc                 f    [        U R                  U-   [        U R                  5      5      U l        g r   )minr
   r   r   )r   r8   s     r   ignoreLexer.ignore8   s!    DMME13tyy>Br   r"   c                 8   U R                   [        U R                  5      :  aw  U R                  U R                      U:w  aY  U =R                   S-  sl         U R                   [        U R                  5      :  a   U R                  U R                      U:w  a  MW  g g g g r0   r   r!   s     r   ignore_untilLexer.ignore_until;   sk    mmc$))n,4==1IR1OMMQM mmc$))n,4==1IR1O,1O,r   c                 T   U R                   [        U R                  5      :  a  U" U R                  U R                      5      (       a`  U =R                   S-  sl         U R                   [        U R                  5      :  a'  U" U R                  U R                      5      (       a  M^  g g g g r0   r   )r   r.   s     r   ignore_whileLexer.ignore_while?   sq    mmc$))n,499T]];S1T1TMMQM mmc$))n,499T]];S1T1T,1T,r   )r
   r   )r   )r    )__name__
__module____qualname____firstlineno__strr   intr   boolr   r   r#   r)   r,   r   r3   r6   r;   r>   rA   __static_attributes__ r   r   r   r      s    S T c / /#3 #s # s t ;c ;d ;0xt'< 0 00xt'< 0 0CC C Cs t hud{&;  r   r   N)typingr   r   rK   r   r   <module>rM      s    6 6r   