Heray-Was-Here
Server : Apache
System : Linux vps37394.inmotionhosting.com 3.10.0-1160.119.1.vz7.224.4 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User : jasonp18 ( 1000)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /proc/2/root/proc/3/root/lib/rads/venv/lib64/python3.13/site-packages/pygments/lexers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/2/root/proc/3/root/lib/rads/venv/lib64/python3.13/site-packages/pygments/lexers/apl.py
"""
    pygments.lexers.apl
    ~~~~~~~~~~~~~~~~~~~

    Lexers for APL.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
"""

from pygments.lexer import RegexLexer
from pygments.token import Comment, Operator, Keyword, Name, String, \
    Number, Punctuation, Whitespace

__all__ = ['APLLexer']


class APLLexer(RegexLexer):
    """
    A simple APL lexer.
    """
    name = 'APL'
    url = 'https://en.m.wikipedia.org/wiki/APL_(programming_language)'
    aliases = ['apl']
    filenames = [
        '*.apl', '*.aplf', '*.aplo', '*.apln',  
        '*.aplc', '*.apli', '*.dyalog',
    ]
    version_added = '2.0'

    tokens = {
        'root': [
            # Whitespace
            # ==========
            (r'\s+', Whitespace),
            #
            # Comment
            # =======
            # 'ā' is traditional; '#' is supported by GNU APL and NGN (but not Dyalog)
            (r'[ā#].*$', Comment.Single),
            #
            # Strings
            # =======
            (r'\'((\'\')|[^\'])*\'', String.Single),
            (r'"(("")|[^"])*"', String.Double),  # supported by NGN APL
            #
            # Punctuation
            # ===========
            # This token type is used for diamond and parenthesis
            # but not for bracket and ; (see below)
            (r'[ā‹„ā—‡()]', Punctuation),
            #
            # Array indexing
            # ==============
            # Since this token type is very important in APL, it is not included in
            # the punctuation token type but rather in the following one
            (r'[\[\];]', String.Regex),
            #
            # Distinguished names
            # ===================
            # following IBM APL2 standard
            (r'āŽ•[A-Za-zĪ”āˆ†ā™][A-Za-zĪ”āˆ†ā™_ĀÆ0-9]*', Name.Function),
            #
            # Labels
            # ======
            # following IBM APL2 standard
            # (r'[A-Za-zĪ”āˆ†ā™][A-Za-zĪ”āˆ†ā™_ĀÆ0-9]*:', Name.Label),
            #
            # Variables
            # =========
            # following IBM APL2 standard (with a leading _ ok for GNU APL and Dyalog)
            (r'[A-Za-zĪ”āˆ†ā™_][A-Za-zĪ”āˆ†ā™_ĀÆ0-9]*', Name.Variable),     
            #
            # Numbers
            # =======
            (r'ĀÆ?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+ĀÆ]?[0-9]+)?|ĀÆ|āˆž)'
             r'([Jj]ĀÆ?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+ĀÆ]?[0-9]+)?|ĀÆ|āˆž))?',
             Number),
            #
            # Operators
            # ==========
            (r'[\.\\\/āŒæā€ĀØā£āØā ā¤āˆ˜āŒø&⌶@āŒŗā„ā›ā¢]', Name.Attribute),  # closest token type
            (r'[+\-Ć—Ć·āŒˆāŒŠāˆ£|ā³?*āŸā—‹!⌹<≤=>ā‰„ā‰ ā‰”ā‰¢āˆŠā·āˆŖāˆ©~āˆØāˆ§ā±ā²ā“,āŖāŒ½āŠ–ā‰ā†‘ā†“āŠ‚āŠƒāŒ·ā‹ā’āŠ¤āŠ„ā•āŽāŠ£āŠ¢āā‚ā‰ˆāŒøāÆā†—āŠ†āŠ‡āøāˆšāŒ¾ā€¦ā®]',
             Operator),
            #
            # Constant
            # ========
            (r'ā¬', Name.Constant),
            #
            # Quad symbol
            # ===========
            (r'[āŽ•āž]', Name.Variable.Global),
            #
            # Arrows left/right
            # =================
            (r'[←→]', Keyword.Declaration),
            #
            # D-Fn
            # ====
            (r'[āŗāµā¶ā¹āˆ‡:]', Name.Builtin.Pseudo),
            (r'[{}]', Keyword.Type),
        ],
    }

Hry