File: //lib/python3/dist-packages/pygments/lexers/__pycache__/smalltalk.cpython-311.pyc
�
�E�c& � � � d Z ddlmZmZmZmZ ddlmZmZm Z m
Z
mZmZm
Z
mZ ddgZ G d� de� � Z G d� de� � ZdS ) z�
pygments.lexers.smalltalk
~~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for Smalltalk and related languages.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�include�bygroups�default)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�SmalltalkLexer�
NewspeakLexerc � � e Zd ZdZdZdZdgZg d�ZdgZd e e
ee
e
� � f ed� � ed � � ed
� � d e e
ej e
� � f ed� � d
e
fde
fgd e ej e
ej � � fd e ej e
� � fd e ej e
ej e
� � fg ed � � d e e
e
ej � � fde
df ed� � gdedfdej dfdej dfde
dfdedfg ed � � defdej fdefdej fdej dfgdej df ed � � gdej df ed � � gd!e
fd"efgd#e
d$fd%e
dfd&ej j dfd'ej dfd(ej dfd)ej df ed*� � gd+edf ed � � d,ej dfd-ej fd.e
dfd/ej dfd0ej fd1ej dfd2edfd3efd4e
fd5e
dfgd6efd7efd8 e eej eeee
e� � fd9 e eej eee� � fd: e ej eej eeeeeeeee� � fd; e ej eee� � fd< e ee
e� � fd+efgd=�Zd>S )?r z�
For Smalltalk syntax.
Contributed by Stefan Matthias Aust.
Rewritten by Nils Winter.
.. versionadded:: 0.10
� Smalltalkzhttp://www.smalltalk.org/z*.st)� smalltalk�squeak�stztext/x-smalltalkz(<)(\w+:)(.*?)(>)�squeak fileout�whitespaces�method definitionz(\|)([\w\s]*)(\|)�objectsz \^|\:=|\_z
[\]({}.;!]z([a-zA-Z]+\w*:)(\s*)(\w+)z^(\b[a-zA-Z]+\w*\b)(\s*)$z'^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$z
(:)(\s*)(\w+)z\|z#popz'(''|[^'])*'�afterobject�\$.z#\(�parenthz\)z(\d+r)?-?\d+(\.\d+)?(e-?\d+)?z[-+*/\\~<>=|&#!?,@%\w:]+z#*\(�
inner_parenth)�rootr �_parenth_helper�\s+z"(""|[^"])*"z\[�blockvariablesz\]z+\b(self|super|true|false|nil|thisContext)\bz\b[A-Z]\w*(?!:)\bz\b[a-z]\w*(?!:)\bz+#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)�literalsz! !$z8\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)z\b(new\b(?!:))z\:=|\_z\b[a-zA-Z]+\w*:z\b[a-zA-Z]+\w*z\w+:?|[-+*/\\~<>=|&!?,@%]+z\.�;z[\])}]z[\[({]z^"(""|[^"])*"!z^'(''|[^'])*'!z7^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)z9^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)z�^(\w+)( subclass: )(#\w+)(\s+instanceVariableNames: )(.*?)(\s+classVariableNames: )(.*?)(\s+poolDictionaries: )(.*?)(\s+category: )(.*?)(!)z5^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)z(!\n)(\].*)(! !)$)r r r! r"