
    |e&                     |    d Z ddlmZ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dgZ G d de      Z G d de      Zy)	z
    pygments.lexers.smalltalk
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Smalltalk and related languages.

    :copyright: Copyright 2006-2023 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                   D   e Zd ZdZdZdZdgZg dZdgZd e	e
ee
e
      f ed       ed	       ed
      d e	eej                  e      f ed      defde
fgd e	ej                   e
ej                        fd e	ej                   e
      fd e	ej                   e
ej                  e
      fg ed	      d e	ee
ej                        fdedf ed      gdedfdej&                  dfdej(                  dfde
dfdedfg ed	      defdej(                  fdefdej&                  fdej(                  dfgdej(                  df ed       gdej(                  df ed       gd!e
fd"efgd#e
d$fd%e
dfd&ej.                  j0                  dfd'ej2                  dfd(ej                  dfd)ej(                  df ed*      gd+edf ed	      d,ej.                  dfd-ej.                  fd.edfd/ej                   dfd0ej                   fd1ej                   dfd2edfd3efd4e
fd5e
dfgd6efd7efd8 e	eej2                  eeee
e      fd9 e	eej2                  eee      fd: e	ej2                  eej(                  eeeeeeeee      fd; e	ej2                  eee      fd< e	ee
e      fd+efgd=Zy>)?r   z
    For Smalltalk syntax.
    Contributed by Stefan Matthias Aust.
    Rewritten by Nils Winter.

    .. versionadded:: 0.10
    	Smalltalkzhttp://www.smalltalk.org/z*.st)	smalltalksqueakstztext/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"   r   r   r   r   r   r   r   N)__name__
__module____qualname____doc__nameurl	filenamesaliases	mimetypesr   r   r
   r   r	   r   VariableFunctionr   r   CharSymbolr   r   BuiltinPseudoClassr   tokens     ;/usr/lib/python3/dist-packages/pygments/lexers/smalltalk.pyr   r      s    D
%CI+G#$I "8D'4#FG$%M"'(!8HdmmX#NOI8$D!

 *dmmT4==9;)8DMM4+HI7dmmT4==$?A
 M"hdmm46Hf%FO
 fm4V[[-0V]]I.D-(-v}E
 M"-v6(&--8f%V[[!fmm_5
 FMM#:;%&	
 FMM6*%&
 TNg&
 D*+D-(;\\  -1!4::}=!4==-@;]]M+J

 gv&M"H\\6#-&)7.*DMM6BK(;f%
" ((G$**gvwgVXI$**gvwGI(
 WfmmWfg&'67LM FWfg>@!8GT7#CDg%
kiFr6   c                      e Zd ZdZdZdZdgZdgZdgZde	j                  fdefd	 ee	j                  eej                  e      fd
e	fd eej                   eej"                        fd eej$                  ee      fdej*                  f ed       ed      g	dej0                  fdej2                  fdej"                  fd eej"                  e      fdej                   fdej"                  fdefdefdefdefdef ed       ed      gdefdefdej6                  fdej6                  fdej6                  fgd efd!efgd"Zy#)$r   z9
    For Newspeak syntax.

    .. versionadded:: 1.1
    Newspeakzhttp://newspeaklanguage.org/z*.ns2newspeakztext/x-newspeakz\b(Newsqueak2)\bz'[^']*'z\b(class)(\s+)(\w+)(\s*)z>\b(mixin|self|super|private|public|protected|nil|true|false)\bz(\w+\:)(\s*)([a-zA-Z_]\w+)z(\w+)(\s*)(=)z<\w+>expressionstat
whitespacez(\d+\.\d*|\.\d+|\d+[fF])[fF]?z\d+z:\w+z	(\w+)(::)z\w+:z\w+z\(|\)z\[|\]z\{|\}z)(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)z\.|;r"   r   z#'[^']*'z#\w+:?z&#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+r    z"[^"]*")r   r;   r"   r<   N)r$   r%   r&   r'   r(   r)   r*   r+   r,   r
   Declarationr   r   r   r   r3   r.   r-   	Attributer	   r   Specialr   r   FloatIntegerr   r0   r4   r5   r6   r7   r   r      s   
 D
(C	InG"#I !'"5"56 (g))4TBDN*dmmT4==9;dnndH57w'$%L!
" .v||<V^^$dmm$8DMM8<=dmm$T]]#{#{#{#98Dk"L!J
" V &--(&6F
 TN!
Q,Fr6   N)r'   pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   __all__r   r   r5   r6   r7   <module>rE      sI    B A   _
-wZ wt8J 8r6   