+
    TBir                     j    R t ^ RIt^ RIHtHtHt ^ RIHtHtH	t	H
t
HtHtHtHt R.t ! R R]4      tR# )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                     a  ] tR t^t o RtRtRR.tRR.tR.tRt	R	t
]P                  ]P                  ,          tR
]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      .RR]3R]3.RR]P$                  3.RR]3.RR]P*                  3R]P*                  3R]P,                  3R]P,                  3R]P.                  3.RR]3R]3.RR]3R]3R ]3R!]3R"]3R#]3R$]3R%]3R&]3.	RR']3.R]! R.R(R)7      ]P:                  3]! R/R(R)7      ]P<                  3R*]P>                  3./	t R+ t!R,t"V t#R-# )0r   z#
For Component Pascal source code.
zComponent Pascalcomponentpascalcpz*.cpz*.cpsztext/x-component-pascalzhttps://blackboxframework.orgz2.1root
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\b)suffixz(TRUE|FALSE|NIL|INF)\bc                    ^ pRV 9   d
   VR,          pRV 9   d
   VR,          pRV 9   d
   VR,          pRV 9   d
   VR,          pV# )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.BEGINg{Gz?END	PROCEDURE )textresults   & ;/usr/lib/python3.14/site-packages/pygments/lexers/oberon.pyanalyse_text!ComponentPascalLexer.analyse_textj   sO     d?dNFD=dNF$dNFD=dNF    r!   N)ANYPTRANYRECBOOLEANBYTECHARINTEGERLONGINTREALSET	SHORTCHARSHORTINT	SHORTREAL)>ABSABSTRACTARRAYASHASSERTr   BITSBYCAPCASECHRCLOSECONSTDECDIVDOELSEELSIFEMPTYr   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POINTERr    RECORDREPEATRETURNSHORTr1   r2   SIZETHENTYPETOUNTILVARWHILEWITH)$__name__
__module____qualname____firstlineno____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tokensr%   __static_attributes____classdictcell__)__classdict__s   @r$   r   r      s     D $'G!I*+I
)CMLL299$E 	L!JM"M"IK JM"	
 	TNTN
 	!7#4#45
 	-
 	fjj),)6<<8-'
 	6"6"
 	hh!H88HhH!
$ 	"D)
 	   ! #*,,0  	  	! #*"2"2	4 '(8(89
mGFR r'   )rq   rx   pygments.lexerr   r   r   pygments.tokenr   r   r   r   r	   r
   r   r   __all__r   r!   r'   r$   <module>r      s<    
 5 5   "
"d: dr'   