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/task/2/root/usr/lib/imh-scan/venv/lib64/python3.13/site-packages/pygments/lexers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/2/task/2/root/usr/lib/imh-scan/venv/lib64/python3.13/site-packages/pygments/lexers/soong.py
"""
    pygments.lexers.soong
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for Soong (Android.bp Blueprint) files.

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

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

__all__ = ['SoongLexer']

class SoongLexer(RegexLexer):
    name = 'Soong'
    version_added = '2.18'
    url = 'https://source.android.com/docs/setup/reference/androidbp'
    aliases = ['androidbp', 'bp', 'soong']
    filenames = ['Android.bp']

    tokens = {
        'root': [
            # A variable assignment
            (r'(\w*)(\s*)(\+?=)(\s*)',
             bygroups(Name.Variable, Whitespace, Operator, Whitespace),
             'assign-rhs'),

            # A top-level module
            (r'(\w*)(\s*)(\{)',
             bygroups(Name.Function, Whitespace, Punctuation),
             'in-rule'),

            # Everything else
            include('comments'),
            (r'\s+', Whitespace),  # newlines okay
        ],
        'assign-rhs': [
            include('expr'),
            (r'\n', Whitespace, '#pop'),
        ],
        'in-list': [
            include('expr'),
            include('comments'),
            (r'\s+', Whitespace),  # newlines okay in a list
            (r',', Punctuation),
            (r'\]', Punctuation, '#pop'),
        ],
        'in-map': [
            # A map key
            (r'(\w+)(:)(\s*)', bygroups(Name, Punctuation, Whitespace)),

            include('expr'),
            include('comments'),
            (r'\s+', Whitespace),  # newlines okay in a map
            (r',', Punctuation),
            (r'\}', Punctuation, '#pop'),
        ],
        'in-rule': [
            # Just re-use map syntax
            include('in-map'),
        ],
        'comments': [
            (r'//.*', Comment.Single),
            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
        ],
        'expr': [
            (r'(true|false)\b', Name.Builtin),
            (r'0x[0-9a-fA-F]+', Number.Hex),
            (r'\d+', Number.Integer),
            (r'".*?"', String),
            (r'\{', Punctuation, 'in-map'),
            (r'\[', Punctuation, 'in-list'),
            (r'\w+', Name),
        ],
    }

Hry