�
|�e� � �d � d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
dgZ G d� de� Zy)z�
pygments.lexers.scdoc
~~~~~~~~~~~~~~~~~~~~~
Lexer for scdoc, a simple man page generator.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�include�bygroups�using�this)�Text�Comment�Keyword�String�Generic�
ScdocLexerc
�� � e Zd ZdZdZdZddgZddgZej Z
d ee� fd ee
j e� fd ee
j e� fd
eeee eed�� � fd
eee eed�� � fd eee
j( � fd eeee� f ed� gdefd eee
j( e� fd eee
j. e� fdej0 fdefdefgd�Zd� Zy)r
zm
`scdoc` is a simple man page generator for POSIX systems written in C99.
.. versionadded:: 2.5
�scdocz!https://git.sr.ht/~sircmpwn/scdoc�scdz*.scdz*.scdocz^(;.+\n)z^(#)([^#].+\n)z
^(#{2})(.+\n)z^(\s*)([*-])(\s)(.+\n)�inline)�statez^(\s*)(\.+\.)( .+\n)z^(\s*>\s)(.+\n)z^(```\n)([\w\W]*?)(^```$)z\\.z(\s)(_[^_]+_)(\W|\n)z(\s)(\*[^*]+\*)(\W|\n)z`[^`]+`z[^\\\s]+�.)�rootr c � � d}d| v r|dz
}d| v r|dz
}| j d� d }d}t j ||� r|dz
}|S )z�We checks for bold and underline text with * and _. Also
every scdoc file must start with a strictly defined first line.r �*g{�G�z�?�_�
z^.*\([1-7]\)( "[^"]+"){0,2}$g �?)� partition�re�search)�text�result�
first_line�scdoc_preamble_patterns �7/usr/lib/python3/dist-packages/pygments/lexers/scdoc.py�analyse_textzScdocLexer.analyse_textD sa � � ���$�;��d�N�F��$�;��d�N�F� �^�^�D�)�!�,�
�!@��
�9�9�+�Z�8��c�M�F��
� N)�__name__�
__module__�__qualname__�__doc__�name�url�aliases� filenamesr � MULTILINE�flagsr r r �Headingr �
Subheadingr
r r �Emphr r �Strong�Backtick�tokensr! � r" |