§
    £E±cI  ã                   ó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-2022 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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   zF
    For Component Pascal source code.

    .. versionadded:: 2.1
    zComponent PascalÚcomponentpascalÚcpz*.cpz*.cpsztext/x-component-pascalÚ
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 )zÄThe 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{®Gáz„?r<   rX   © )ÚtextÚresults     ú8/usr/lib/python3/dist-packages/pygments/lexers/oberon.pyÚanalyse_textz!ComponentPascalLexer.analyse_textj   sX   € ð ˆØ�dˆ?ˆ?Ø�d‰NˆFØ�Dˆ=ˆ=Ø�d‰NˆFØ˜$ÐÐØ�d‰NˆFØ�Dˆ=ˆ=Ø�d‰NˆFàˆó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚDOTALLÚflagsr   r   r   Ú	Multiliner   r   ÚHexÚFloatÚIntegerr   r   r
   r   r	   ÚTypeÚReservedÚConstantÚtokensrk   rg   rl   rj   r   r      s,  € € € € € ðð ð
 €DØ  $Ð'€GØ˜Ð!€IØ*Ð+€IàŒL˜2œ9Ñ$€Eð ˆG�LÑ!Ô!ØˆG�JÑÔØˆG�MÑ"Ô"ØˆG�MÑ"Ô"ØˆG�IÑÔØˆG�KÑ Ô ØˆG�JÑÔØˆG�MÑ"Ô"ð	
ð �TˆNØ�TˆNð
ð
 " 7Ô#4Ð5ð
ð
   Ð-ð
ð ˜fœjÐ)Ø ¤Ð,Ø)¨6¬<Ð8Ø ¤Ð-Ø˜œÐ'ð
ð ˜6Ð"Ø˜6Ð"ð
ð �hÐØ�hÐà˜Ð!à�HÐà�8Ðà�8Ðà�HÐà�hÐØ�HÐð!
ð& # DÐ)ð
ð ˆUð ð  ð!ñ !ô !ð #*¤,ð0ð ˆUð 	ð  ð	!ñ 	!ô 	!ð #*Ô"2ð	4ð '¨Ô(8Ð9ð
ðmGð G€FðRð ð ð ð rl   )rp   ru   Ú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   