U
    ]gr                     @   sb   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 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                   @   s@  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B 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(d)ejfed*d(d)ejfd+ejfgd,	Zd-d. Z d/S )0r   z+
    For Component Pascal source code.
    zComponent PascalZ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$]*))ZANYPTRZANYRECZBOOLEANZBYTEZCHARZINTEGERZLONGINTZREALZSET	SHORTCHARSHORTINTZ	SHORTREALz\b)suffix)>ZABSZABSTRACTARRAYZASHASSERTBEGINZBITSZBYZCAPZCASEZCHRZCLOSEZCONSTZDECZDIVZDOELSEZELSIFZEMPTYENDZENTIERZEXCLZEXITZ
EXTENSIBLEZFORZHALTZIFZIMPORTINZINCZINCLZISZLENZLIMITEDLONGZLOOPMAXZMINZMODMODULEZNEWZODDZOFORZORDZOUTPOINTER	PROCEDURERECORDREPEATZRETURNZSHORTr   r   ZSIZEZTHENZTYPEZTOZUNTILZVARZWHILEZWITHz(TRUE|FALSE|NIL|INF)\b)	rootr   r   r   r   r   r   r   r   c                 C   sH   d}d| kr|d7 }d| kr$|d7 }d| kr4|d7 }d| krD|d7 }|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    r'    )textresultr+   r+   :/tmp/pip-unpacked-wheel-zak7uw41/pygments/lexers/oberon.pyanalyse_textj   s    z!ComponentPascalLexer.analyse_textN)!__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlZversion_addedre	MULTILINEDOTALLflagsr   r   r   Z	Multiliner   r   ZHexZFloatZIntegerr
   r   r	   r   r   TypeZReservedConstanttokensr/   r+   r+   r+   r.   r      sv   		
I)r3   r9   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   __all__r   r+   r+   r+   r.   <module>   s
   
(