o
    ‡ÎÖaÌ  ã                   @   sn   d Z ddlZdgZddlmZ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mZ G dd„ deƒZdS )an  
    pygments.lexers.cddl
    ~~~~~~~~~~~~~~~~~~~~

    Lexer for the Concise data definition language (CDDL), a notational
    convention to express CBOR and JSON data structures.

    More information:
    https://datatracker.ietf.org/doc/rfc8610/

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    NÚ	CddlLexer)Ú
RegexLexerÚbygroupsÚincludeÚwords)
ÚCommentÚErrorÚKeywordÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespacec                   @   sî  e Zd ZdZdZdgZdgZdgZg d¢Zg d¢Z	dZ
d	Zd
e ZejejB Zdefdejfgedƒdjed�ejfdjed�eeeeƒfdefdefdefee	dd�ejfdje
d�efd e
¡efdefdefdefdeejejƒdfdeejejƒdfd ejd!fd"je
d#�eeeeƒfeed$d%d&�e j!fe
e j"fd'ej#fd(ej$fd)ej%fd*ej%fd+jed,�ej&feej'fd-ej(fgd ejd.fedƒd/ej)fd0ejfd1e*fgd ejd.fedƒd/ej)fd2ejfd1e*fgd ejd.fd/ej)fd3ejfgd4œZ+d5S )6r   z@
    Lexer for CDDL definitions.

    .. versionadded:: 2.8
    ÚCDDLÚcddlz*.cddlztext/x-cddl)(ÚanyÚ	b64legacyÚb64urlÚbigfloatÚbigintÚbignintÚbiguintÚboolÚbstrÚbyteszcbor-anyÚdecfracÚeb16Ú
eb64legacyÚeb64urlzencoded-cborÚfalseÚfloatÚfloat16z
float16-32Úfloat32z
float32-64Úfloat64ÚintÚintegerzmime-messageÚnilÚnintÚnullÚnumberÚregexpÚtdateÚtextÚtimeÚtrueÚtstrÚuintÚ	undefinedÚunsignedÚuri)z.andz.bitsz.cborz.cborseqz.defaultz.eqz.gez.gtz.lez.ltz.nez.regexpz.sizez.withinz8[$@A-Z_a-z](?:[\-\.]+(?=[$@0-9A-Z_a-z])|[$@0-9A-Z_a-z])*z+(?:0b[01]+|0x[0-9a-fA-F]+|[1-9]\d*|0(?!\d))z-?z\s+z;.+$Úcommentsandwhitespacez#(\d\.{uint})?)r2   z({uint})?(\*)({uint})?z\?|\+z\^z(\.\.\.|\.\.)z\b)Úsuffixz&(?=\s*({groupname}|\()))Ú	groupnamez
~(?=\s*{})z	//|/(?!/)z=>|/==|/=|=z[\[\]{}\(\),<>:]z(b64)(')Ú
bstrb64urlz(h)(')Úbstrhú'r   z({bareword})(\s*)(:))Úbarewordz(?![\-_$@])\bz\b(?![\-_$@]))Úprefixr7   z0b[01]+z0o[0-7]+z(0x[0-9a-fA-F]+(\.[0-9a-fA-F]+)?p[+-]?\d+z0x[0-9a-fA-F]+z0{int}(?=(\.\d|e[+-]?\d))(?:\.\d+)?(?:e[+-]?\d+)?)r&   z"(\\\\|\\"|[^"])*"z#popz\\.z[0-9a-zA-Z\-_=]+Ú.z[0-9a-fA-F]+z[^'\\]+)r6   Úrootr9   r:   r   N),Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚ_prelude_typesÚ	_controlsÚ_re_idÚ_re_uintÚ_re_intÚreÚUNICODEÚ	MULTILINEÚflagsr   r   ÚSingler   Úformatr	   ÚTyper   r   r   r   ÚWordr   r   ÚAffixr
   ÚBuiltinÚClassÚBinÚOctÚHexÚFloatÚIntegerÚDoubleÚEscaper   Útokens© r`   r`   ú6/usr/lib/python3/dist-packages/pygments/lexers/cddl.pyr   "   s‚    +ÿ	

þ


þþ
þÏ
4û
	û
ý
¼)rC   rM   Ú__all__Úpygments.lexerr   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   r   r   r`   r`   r`   ra   Ú<module>   s    0