3

V'ícIã@sbdZddlZddlmZmZmZddlmZmZm	Z	m
Z
mZmZm
Z
mZdgZGdd„deƒZdS)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ÚComponentPascalLexercH@s8eZdZdZdZddgZddgZdgZej	ej
BZedƒed	ƒed
ƒedƒedƒed
ƒedƒedƒgde
fde
fgdejfgdefgdejfdejfdejfdejfdejfgdefdefgdefdefdefdefdefd efd!efd"efd#efg	d$efgedtd1d2ejfedud1d2ejfdoejfgdpœ	Zdqdr„ZdsS)vr
zF
    For Component Pascal source code.

    .. versionadded:: 2.1
    zComponent PascalZcomponentpascalÚ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ÚSHORTÚSIZEÚTHENÚTYPEÚTOÚUNTILÚVARÚWHILEÚWITHz(TRUE|FALSE|NIL|INF)\b)	ÚrootrrrrrrrrcCsHd}d|kr|d7}d|kr$|d7}d|kr4|d7}d|krD|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.rr+g{®Gáz„?r9rU©)ÚtextÚresultrcrcú:/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/oberon.pyÚanalyse_textjsz!ComponentPascalLexer.analyse_textN)rrrrrrrr r!r"r#r$)>r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYr"r#rZr[r\r]r^r_r`ra)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚDOTALLÚflagsrrrZ	MultilinerrZHexZFloatZIntegerr
rr	rrÚTypeZReservedÚConstantÚtokensrgrcrcrcrfr
sf

)rkrpZpygments.lexerrrrZpygments.tokenrrrrr	r
rrÚ__all__r
rcrcrcrfÚ<module>	s
(