File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/oberon.cpython-310.pyc
o
���as � @ sb d Z ddlZddlmZmZmZ ddlmZmZm Z m
Z
mZmZm
Z
mZ dgZG dd� de�ZdS )z�
pygments.lexers.oberon
~~~~~~~~~~~~~~~~~~~~~~
Lexers for Oberon family languages.
:copyright: Copyright 2006-2021 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 @ s8 e Zd ZdZdZddgZddgZdgZej ej
B Zed�ed �ed
�ed�ed�ed
�ed�ed�gde
fde
fgdejfgdefgdejfdejfdejfdejfdejfgdefdefgdefdefdefdefdefd efd!efd"efd#efg d$efged%d&d'�ejfed(d&d'�ejfd)ejfgd*� Zd+d,� Zd-S ).r
zp
For `Component Pascal <http://www.oberon.ch/pdf/CP-Lang.pdf>`_ source code.
.. versionadded:: 2.1
zComponent Pascal�componentpascal�cpz*.cpz*.cpsztext/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 C sH d}d| v r
|d7 }d| v r|d7 }d| v r|d7 }d| v r"|d7 }|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: rV � )�text�resultrd rd �8/usr/lib/python3/dist-packages/pygments/lexers/oberon.py�analyse_textj s z!ComponentPascalLexer.analyse_textN)�__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�tokensrh rd rd rd rg r
st ���������� � �
��I)rl rq �pygments.lexerr r r �pygments.tokenr r r r r r
r r �__all__r
rd rd rd rg �<module> s
(