�
|�e� � �X � d Z ddlmZmZmZ ddlmZmZmZm Z m
Z
mZ dgZ G d� de� Z
y)z�
pygments.lexers.bare
~~~~~~~~~~~~~~~~~~~~
Lexer for the BARE schema.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�words�bygroups)�Text�Comment�Keyword�Name�Literal�
Whitespace� BareLexerc � � e Zd ZdZdZdZdgZdgZg d�Zd e e
eej ee� dfd e e
eej ee� d
fd e e
eee� dfd
e e
eej e� dfdefdefgdedfdedfd e ej ee� dfdefgdedfd e eee� fdej f ee� e
fdefgdefdedfd e eee� fdefded
fd e ee
e� fd e eej e� fdej f ee� e
fd edfdedfdefd!efg
dedfdedfd" e ej ee� fd# e ej � fdefdefgd$�Zy%)&r z<
For BARE schema source.
.. versionadded:: 2.7
�BAREzhttps://baremessages.orgz*.bare�bare)�type�enum�u8�u16�u32�u64�uint�i8�i16�i32�i64�int�f32�f64�bool�void�data�string�optional�mapz'(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)(\{)�structz'(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)(\()�unionz#(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)�typedefz%(enum)(\s+)([A-Z][a-zA-Z0-9]+)(\s+\{)r z#.*?$z\s+z\{z#pushz\}z#popz([a-zA-Z0-9]+)(:)(\s*)z\)z(\s*)(\|)(\s*)z[A-Z][a-zA-Z0-9]+z\[\]z
(\[)(\d+)(\])z<|>z\(z(\[)([a-z][a-z-A-Z0-9]+)(\])z(\[)([A-Z][a-z-A-Z0-9]+)(\])z([A-Z][a-z-A-Z0-9]+)z\nz\d+z([A-Z][A-Z0-9_]*)(\s*=\s*)(\d+)z([A-Z][A-Z0-9_]*))�rootr$ r% r& |