view pygments_lexer_pseudocode2/uniprops.py @ 207:76053daf813e

Extend the note in "Customized Lexers in Sphinx" somewhat
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 13 May 2026 15:18:27 +0200
parents cec52d83869a
children
line wrap: on
line source

# -*- coding: utf-8 -*-
# :-
# SPDX-FileCopyrightText: © 2026 Franz Glasner
# SPDX-License-Identifier: MIT
# :-
r"""A somewhat changed variant of :mod:`pygments.unistring`.

We handle ASCII characters mostly ourself.

"""

__all__ = []


import pygments.unistring


def _remove_ascii(s):
    """Remove the characters in the ASCII range from `s` and return the
    adjusted string.

    Assumes that in `s` the ASCII chars are sorted before the Unicode
    codepoints as in :mod:`pygments.unistring`.

    """
    idx = 0
    while ord(s[idx]) < 0x80:
        idx += 1
    if idx > 0:
        return s[idx:]
    else:
        # nothing changed
        return s


Pc = _remove_ascii(pygments.unistring.Pc)
Pd = _remove_ascii(pygments.unistring.Pd)
Pe = _remove_ascii(pygments.unistring.Pe)
Ps = _remove_ascii(pygments.unistring.Ps)
Pi = _remove_ascii(pygments.unistring.Pi)
Pf = _remove_ascii(pygments.unistring.Pf)
Po = _remove_ascii(pygments.unistring.Po)
Sc = _remove_ascii(pygments.unistring.Sc)
So = _remove_ascii(pygments.unistring.So)
Sm = _remove_ascii(pygments.unistring.Sm)
Zl = _remove_ascii(pygments.unistring.Zl)
Zp = _remove_ascii(pygments.unistring.Zp)
Zs = _remove_ascii(pygments.unistring.Zs)