U
    luf                     @   sf   d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ dgZG dd deZdS )z
    pygments.lexers.carbon
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Carbon programming language.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerbygroupswords)	TextCommentOperatorKeywordNameStringNumberPunctuation
WhitespaceCarbonLexerc                   @   s   e Zd ZdZdZdZdgZdgZdgZe	j
e	jB Zddefd	efd
efdejfdejfdejfdejfedddefdejfdejfdejfdejfdejfdejfdejfdejfdefdej fde!fde"fde#j$fgiZ%dd  Z&d!S )"r   z8
    For Carbon source.

    .. versionadded:: 2.15
    ZCarbonz.https://github.com/carbon-language/carbon-langz*.carbonZcarbonztext/x-carbonrootz\nz\s+z\\\nz	//(.*?)\nz/(\\\n)?[*].*?[*](\\\n)?/z((package|import|api|namespace|library)\bzg(abstract|alias|fn|class|interface|let|var|virtual|external|base|addr|extends|choice|constraint|impl)\b)asornotandbreakcontinueZcasedefaultifelseZ
destructorforforallwhilewhereZtheninisreturnZreturnedZfriendpartialprivateZ	protectedobserveSelfoverridefinalmatchtypelikez\b)suffixz(self)\bz(true|false)\bzA(auto|bool|string|i8|i16|i32|i64|u8|u16|u32|u64|f8|f16|f32|f64)\bz[0-9]*[.][0-9]+z0b[01]+z0o[0-7]+z0x[0-9a-fA-F]+z[0-9]+z"(\\.|[^"\\])*"z\'(\\.|[^\'\\])\'zm<<=|>>=|<<|>>|<=|>=|\+=|-=|\*=|/=|\%=|\|=|&=|\^=|&&|\|\||&|\||\+\+|--|\%|\^|\~|==|!=|::|[.]{3}|->|=>|[+\-*/&]z[|<>=!()\[\]{}.,;:\?]z
[^\W\d]\w*c                 C   s   d}d| kr|d7 }d| kr$|d7 }d| kr4|d7 }d| krD|d7 }d| krT|d7 }d| krd|d7 }d	| krt|d7 }d
| kr|d7 }d| kr|d7 }d| kr|d7 }|S )Nr   r   g?r'   r#   r"   packagelibrarychoiceaddr
constraintimpl )textresultr0   r0   :/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/carbon.pyanalyse_textJ   s,    zCarbonLexer.analyse_textN)'__name__
__module____qualname____doc__nameurl	filenamesaliases	mimetypesre	MULTILINEDOTALLflagsr   r   r   SingleZ	Multiliner   	NamespaceZDeclarationr   ZPseudoConstantTyper   DoubleZBinOctZHexZIntegerr
   Charr   r   r	   ZOthertokensr4   r0   r0   r0   r3   r      sT   ))r8   r>   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   r0   r0   r0   r3   <module>   s
   	,