File: //opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/__pycache__/prolog.cpython-311.pyc
�
�;fB2 � � � d Z ddlZddlmZmZ ddlmZmZmZm Z m
Z
mZmZm
Z
ddgZ G d� de� � Z G d� de� � ZdS ) z�
pygments.lexers.prolog
~~~~~~~~~~~~~~~~~~~~~~
Lexers for Prolog and Prolog-like languages.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�bygroups)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�PrologLexer�LogtalkLexerc � � e Zd ZdZdZdgZg d�ZdgZdZdZ de
j d fd
e
j fde
j fdej fd
ej fdej fdej fdej fdej fdefdefde
j fde
j fdefdefdefdefd eej e� � fd eej ee� � fd eej ee� � fde
j fde
j fdej fd efgd!e
j d"fde
j d#fd$e
j fd%e
j fgd&�Z d'� Z!d(S ))r
z!
Lexer for Prolog files.
�Prolog�prolog)z*.eclz*.prologz*.proz*.plz
text/x-prologz$https://en.wikipedia.org/wiki/Prolog� z/\*�nested-commentz%.*z0\'.�0b[01]+�0o[0-7]+�0x[0-9a-fA-F]+z\d\d?\'[a-zA-Z0-9]+z%(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?z\d+z[\[\](){}|.,;!]z:-|-->z`"(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\[0-7]+\\|\\["\\abcefnrstv]|[^\\"])*"z'(?:''|[^'])*'zis\bz5(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])z(mod|div|not)\b�_z([a-z]+)(:)zh([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef][\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)(\s*)(:-|-->)zd([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef][\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)(\s*)(\()zY[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef][\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*z/[#&*+\-./:<=>?@\\^~\u00a1-\u00bf\u2010-\u303f]+z [A-Z_]\w*z&\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]z\*/�#popz#pushz[^*/]+z[*/])�rootr c � � d| v rdS dS )z,Competes with IDL and Visual Prolog on *.proz:-g �?r � ��texts �I/opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/prolog.py�analyse_textzPrologLexer.analyse_textR s � ��4�<�<��3��1� N)"�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypes�url�
version_addedr � Multiline�Singler
�Charr �Bin�Oct�Hex�Integer�Floatr �Double�Atomr r r r � Namespace�Functionr �Variable�tokensr r r r r
r
s� � � � � � �� � �D��j�G�6�6�6�I� �!�I�
0�C��M� �W�&�(8�9�
�W�^�$�
�f�k�"�
���$�
�&�*�%�
��
�+�
#�V�^�4�
5�v�|�D�
�V�^�$�
��-�
��$�7�8>�
�
G�
���,� �h��
E�
�
�
��*�
�7�O�
�X�X�d�n�k�B�B�C�� �X�d�m�T�8�
4�
4�
6�� �X�d�m�T�;�
7�
7�
9�>�
�[�
� @�
�[�
�
�4�=�)�
6��=�Q)
�V �W�&��/�
�W�&��0�
��)�*�
�g�'�(�
�W1� 1�F�f� � � � r c �^ � e Zd ZdZdZdZdgZddgZdgZdZ g d e
d
f�def�def�d
ef�def�de
f�de
j f�de
j f�de
j f�de
f�dej f�def�def�def�def�def�def�def�def�def�def�def�d ef�d!ef�d"ef�d#ef�d$ef�d%ef�d&ef�d'ef�d(ef�d)ef�d*ef�d+ef�d,ef�d-ef�d.ef�d/ef�d0ef�d1ef�d2ef�d3ef�d4ef�d5ef�d6ef�d7ef�d8ef�d9ef�d:ef�d;ef�d<ef�d=ef�d>ef�d?ef�d@ef�dAef�dBef�dCef�dDef�dEef�dFef�dGef�dHef�dIef�dJef�dKef�dLef�dMef�dNef�dOef�dPef�dQef�dRef�dSef�dTef�dUef�dVef�dWef�dXef�dYef�dZef�d[ed\f�d]ed^f�d_efd[ed`fdaej fdbefdcefgddefd]ed`fdaej fdeefdcefgdfedgfdhedgfdiedjfdkedgfdledgfdmedgfdnedgfdoedgfdpedgfdqedgfdredgfdsedgfdtedgfg
duefde
fde
j fde
j fde
j fde
fdej fdZefd[ed\fd]ed^fdvedgfdwefdYefdefdefd
efdefgdx�Zdy� ZdzS ){r z"
For Logtalk source code.
�Logtalkzhttp://logtalk.org/�logtalkz*.lgtz *.logtalkztext/x-logtalkz0.10z^\s*:-\s� directivez%.*?\nz/\*(.|\n)*?\*/z\nz\s+z0'[\\]?.r r r z\d+\.?\d*((e|E)(\+|-)?\d+)?z([A-Z_][a-zA-Z0-9_]*)z(after|before)(?=[(])zforward(?=[(])z+(context|parameter|this|se(lf|nder))(?=[(])z-(current_predicate|predicate_property)(?=[(])z8(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])z;(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])z*(object|protocol|category)_property(?=[(])z.co(mplements_object|nforms_to_protocol)(?=[(])z)extends_(object|protocol|category)(?=[(])z*imp(lements_protocol|orts_category)(?=[(])z%(instantiat|specializ)es_class(?=[(])z.(current_event|(abolish|define)_events)(?=[(])z((create|current|set)_logtalk_flag(?=[(])zMlogtalk_(compile|l(ibrary_path|oad|oad_context)|make(_target_action)?)(?=[(])z\blogtalk_make\bz(clause|retract(all)?)(?=[(])za(bolish|ssert(a|z))(?=[(])z(ca(ll|tch)|throw)(?=[(])z0(fa(il|lse)|true|(instantiation|system)_error)\bzi(uninstantiation|type|domain|existence|permission|representation|evaluation|resource|syntax)_error(?=[(])z!((bag|set)of|f(ind|or)all)(?=[(])zBthreaded(_(ca(ll|ncel)|once|ignore|exit|peek|wait|notify))?(?=[(])zRthreaded_engine(_(create|destroy|self|next|next_reified|yield|post|fetch))?(?=[(])z.(subsumes_term|unify_with_occurs_check)(?=[(])z8(functor|arg|copy_term|numbervars|term_variables)(?=[(])z%(div|rem|m(ax|in|od)|abs|sign)(?=[(])z)float(_(integer|fractional)_part)?(?=[(])z*(floor|t(an|runcate)|round|ceiling)(?=[(])z6(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])zZ(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|ground|acyclic_term)(?=[(])zcompare(?=[(])z(curren|se)t_(in|out)put(?=[(])z(open|close)(?=[(])zflush_output(?=[(])z!(at_end_of_stream|flush_output)\bz=(stream_property|at_end_of_stream|set_stream_position)(?=[(])z,(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])z\bnl\bzread(_term)?(?=[(])z"write(q|_(canonical|term))?(?=[(])z(current_)?op(?=[(])z!(current_)?char_conversion(?=[(])z(atom_(length|c(hars|o(ncat|des)))(?=[(])z(char_code|sub_atom)(?=[(])znumber_c(har|ode)s(?=[(])z(se|curren)t_prolog_flag(?=[(])z\bhalt\bzhalt(?=[(])z(::|:|\^\^)z[{}]z(ignore|once)(?=[(])z
\brepeat\bz(key)?sort(?=[(])z(>>|<<|/\\|\\\\|\\)z\bas\bz\bis\bz(=:=|=\\=|<|=<|>=|>)z=\.\.z(=|\\=)z(==|\\==|@=<|@<|@>=|@>)z(//|[-+*/])z\b(e|pi|div|mod|rem)\bz\b\*\*\bz-->z ([!;]|->)z\\+z[?@]z\^z[()\[\],.|]z[a-z][a-zA-Z0-9_]*�'�quoted_atom�"�double_quoted_termz''r z+\\([\\abfnrtv"\']|(x[a-fA-F0-9]+|[0-7]+)\\)z [^\\'\n]+z\\z""z [^\\"\n]+z(el)?if(?=[(])r z(e(lse|ndif))(?=[.])z!(category|object|protocol)(?=[(])�entityrelationsz'(end_(category|object|protocol))(?=[.])z!(public|protected|private)(?=[(])z%e(n(coding|sure_loaded)|xport)(?=[(])z in(clude|itialization|fo)(?=[(])z/(built_in|dynamic|synchronized|threaded)(?=[.])zz(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])z op(?=[(])z:(c(alls|oinductive)|module|reexport|use(s|_module))(?=[(])z[a-z][a-zA-Z0-9_]*(?=[(])z[a-z][a-zA-Z0-9_]*(?=[.])zH(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])z([)]\.)z(::))r r>