File: //lib/python3/dist-packages/pygments/lexers/__pycache__/objective.cpython-311.pyc
�
�E�c�Y � � � d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZm
Z
mZmZmZmZmZmZmZ ddlmZmZ g d�Zd� Z G d� d ee� � � � Z G d
� d ee� � � � Z G d� d
e� � Z G d� de� � ZdS )z�
pygments.lexers.objective
~~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for Objective-C family languages.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�include�bygroups�using�this�words�inherit�default) �Text�Keyword�Name�String�Operator�Number�Punctuation�Literal�Comment)�CLexer�CppLexer)�ObjectiveCLexer�ObjectiveCppLexer�
LogosLexer�
SwiftLexerc � � ��� t j d� � �t j d� � � G ��� fd�d� � � }|S )z^
Generate a subclass of baselexer that accepts the Objective-C syntax
extensions.
z @(?:end|implementation|protocol)z<\[\s*[a-zA-Z_]\w*\s+(?:[a-zA-Z_]\w*\s*\]|(?:[a-zA-Z_]\w*)?:)c � �� e Zd ZdZdedfdefdej fdej fdej fdej fd ej fd
ej
fdedfd
edfdedf edd�� � e
f edd�� � e
j fdej fdej fde
j fdej fd ee
e� � dfd ee
e� � dfdefegd eej eej ee� � dfd eej eej � � d!fd" eej eej ee� � dfd# eej eej � � d!fd$ eej ee� � dfd%ej d!fgd& eej e� � d'fd( eej e� � d!fg ed)� � ed*� � d+efd,ed-fd.ed!fgd/ eee ee� � eej � � d0feg ed)� � d1efd2efd3 e ee� � eej � � fd4ej fd+ed!fd,ed5f ed!� � gd6ed7fd8ed!f ed9� � gd6ed-fd8ed!f ed9� � gd:ed;fd<ed!f ed9� � gd:ed-fd<ed!f ed9� � gd.ed!f ed9� � gd=�Z� �fd>�ZdB�fd@� ZdAS )C�-objective.<locals>.GeneratedObjectiveCVariantzU
Implements Objective-C syntax on top of an existing C family lexer.
�@"�stringz @(YES|NO)z3@'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z&@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z@(\d+\.\d*|\.\d+|\d+[fF])[fF]?z@0x[0-9a-fA-F]+[Ll]?z
@0[0-7]+[Ll]?z @\d+[Ll]?z@\(�literal_numberz@\[�
literal_arrayz@\{�literal_dictionary)*z @selectorz@privatez
@protectedz@publicz@encodez
@synchronizedz@tryz@throwz@catchz@finallyz@endz @propertyz@synthesize�__bridge�__bridge_transfer�__autoreleasing�__block�__weak�__strong�weak�strong�copy�retain�assign�unsafe_unretained�atomic� nonatomic�readonly� readwrite�setter�getter�typeof�in�out�inout�release�classz@dynamicz @optionalz @requiredz@autoreleasepoolz@import�\b��suffix) �id�instancetype�Class�IMP�SEL�BOOL�IBOutlet�IBAction�unicharz@(true|false|YES|NO)\nz(YES|NO|nil|self|super)\bz3(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\bz(TRUE|FALSE)\bz!(@interface|@implementation)(\s+))�#pop�oc_classnamez(@class|@protocol)(\s+))rF �oc_forward_classname�@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{))rF �oc_ivars�.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?rF z6([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)z-([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))z([a-zA-Z$_][\w$]*)(\s*)(\{)�([a-zA-Z$_][\w$]*)z([a-zA-Z$_][\w$]*)(\s*,\s*)rH z([a-zA-Z$_][\w$]*)(\s*;?)�
whitespace�
statements�;z\{�#pushz\}z/^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)�method�,z\.\.\.z (\(.*?\))(\s*)([a-zA-Z$_][\w$]*)z[a-zA-Z$_][\w$]*:�function�\(�literal_number_inner�\)� statementz\[�literal_array_innerz\])rN rG rH rJ �rootrQ r rU r rX r! c � �� �� | � � rdS d| v rdS t j d| � � rdS �� | � � rdS dS )N� �?r g�������?z@[0-9]+gffffff�?r )�search�re)�text�_oc_keywords�_oc_messages ���;/usr/lib/python3/dist-packages/pygments/lexers/objective.py�analyse_textz:objective.<locals>.GeneratedObjectiveCVariant.analyse_text� se �� ��"�"�4�(�(�
��s������s���9�d�+�+�
��s��#�#�D�)�)�
��s��1� �rY c 3 �� �K � ddl m}m}m} � � | ||� � D ]A\ }}}|t
u s|t
j u r||v s||v s||v rt
j j }|||fV � �Bd S �Nr )�COCOA_INTERFACES�COCOA_PROTOCOLS�COCOA_PRIMITIVES) �pygments.lexers._cocoa_builtinsrg rh ri �get_tokens_unprocessedr
r? �Builtin�Pseudo)
�selfr^ �stackrg rh ri �index�token�value� baselexers
�ra rk zDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessed� s� �� � � �
2�
2�
2�
2�
2�
2�
2�
2�
2�
2� �4�4�T�4��G�G�
*�
*�#��u�e��D�=�=�E�T�Z�$7�$7�� 0�0�0�E�_�4L�4L��#3�3�3� $�� 3���U�E�)�)�)�)�)�
*�
*rc N)rd ) �__name__�
__module__�__qualname__�__doc__r r �Char�Float�Hex�Oct�Integerr r r �Typer
rl r r r r r? �Labelr r r �Function�Variabler
�tokensrb rk )r_ r` rs s ���ra �GeneratedObjectiveCVariantr * sU �� � � � � � � � ���)��v�&�G���U�:�F�L�I�2�F�L�A�(�&�*�5�!�6�:�.��v�~�.���"2�3���/�2���"6�7��� @� IN�O� O� O� � � �� ;�CH�J� J� J���� +�D�L�9�-�t�|�<�G���V�"�D�L�1�5�x�x���7N�7N�)�+�+�X�X�g�t�-D�-D�1�3� �{�#��K&�R L���$�*�d�D�J��k�J�J�%�'� C���$�*�d�D�J�7�7��A� K���$�*�d�D�J��k�J�J�%�'� B���$�*�d�D�J�7�7��A� 0���$�*�d�K�8�8�:N�P�&��
�F�;�!�&