
    Mhr                     p    d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZ dgZ G d de          ZdS )z
    pygments.lexers.oberon
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Oberon family languages.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludewords)TextCommentOperatorKeywordNameStringNumberPunctuationComponentPascalLexerc                   &   e Zd ZdZdZddgZddgZdgZdZd	Z	e
j        e
j        z  Z ed
           ed           ed           ed           ed           ed           ed           ed          gdefdefgdej        fgdefgdej        fdej        fdej        fdej        fdej        fgdefdefgdefdefdefd efd!efd"efd#efd$efd%efg	d&efg ed'd()          ej        f ed*d()          ej        fd+ej        fgd,	Zd- Z d.S )/r   z+
    For Component Pascal source code.
    zComponent Pascalcomponentpascalcpz*.cpz*.cpsztext/x-component-pascalzhttps://blackboxframework.orgz2.1
whitespacecommentspunctuationnumliteralsstrings	operatorsbuiltinsidentifiersz\n+z\s+z\(\*([^$].*?)\*\)z[()\[\]{},.:;|]z[0-9A-F]+X\bz[0-9A-F]+[HL]\bz[0-9]+\.[0-9]+E[+-][0-9]+z[0-9]+\.[0-9]+z[0-9]+z	'[^\n']*'z	"[^\n"]*"z[+-]z[*/]z[=#<>]z\^&~z:=z\.\.z\$z([a-zA-Z_$][\w$]*))ANYPTRANYRECBOOLEANBYTECHARINTEGERLONGINTREALSET	SHORTCHARSHORTINT	SHORTREALz\b)suffix)>ABSABSTRACTARRAYASHASSERTBEGINBITSBYCAPCASECHRCLOSECONSTDECDIVDOELSEELSIFEMPTYENDENTIEREXCLEXIT
EXTENSIBLEFORHALTIFIMPORTININCINCLISLENLIMITEDLONGLOOPMAXMINMODMODULENEWODDOFORORDOUTPOINTER	PROCEDURERECORDREPEATRETURNSHORTr%   r&   SIZETHENTYPETOUNTILVARWHILEWITHz(TRUE|FALSE|NIL|INF)\b)	rootr   r   r   r   r   r   r   r   c                 R    d}d| v r|dz  }d| v r|dz  }d| v r|dz  }d| v r|dz  }|S )zThe only other lexer using .cp is the C++ one, so we check if for
        a few common Pascal keywords here. Those are unfortunately quite
        common across various business languages as well.r   r.   g{Gz?r<   rX    )textresults     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/oberon.pyanalyse_textz!ComponentPascalLexer.analyse_textj   sX     d??dNFD==dNF$dNFD==dNF    N)!__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedre	MULTILINEDOTALLflagsr   r   r   	Multiliner   r   HexFloatIntegerr   r   r
   r   r	   TypeReservedConstanttokensrk   rg   rl   rj   r   r      s6         D $'G!I*+I
)CML29$E GL!!GJGM""GM""GIGK  GJGM""	
 TNTN

 "7#45

  -
 fj),)6<8-'
 6"6"
 hh!H88HhH!
& #D)
 U   ! ! ! #*,0 U 	  	! 	! 	! #*"2	4 '(89
mG GFR    rl   )rp   rw   pygments.lexerr   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   __all__r   rg   rl   rj   <module>r      s     
			 5 5 5 5 5 5 5 5 5 5                    "
"d d d d d: d d d d drl   