Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
bare.py102 linesDownload Raw Back to lexers
1"""2    pygments.lexers.bare3    ~~~~~~~~~~~~~~~~~~~~4 5    Lexer for the BARE schema.6 7    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.8    :license: BSD, see LICENSE for details.9"""10 11from pygments.lexer import RegexLexer, words, bygroups12from pygments.token import Text, Comment, Keyword, Name, Literal, Whitespace13 14__all__ = ['BareLexer']15 16 17class BareLexer(RegexLexer):18    """19    For BARE schema source.20    """21    name = 'BARE'22    url = 'https://baremessages.org'23    filenames = ['*.bare']24    aliases = ['bare']25    version_added = '2.7'26 27    keywords = [28        'type',29        'enum',30        'u8',31        'u16',32        'u32',33        'u64',34        'uint',35        'i8',36        'i16',37        'i32',38        'i64',39        'int',40        'f32',41        'f64',42        'bool',43        'void',44        'data',45        'string',46        'optional',47        'map',48    ]49 50    tokens = {51        'root': [52            (r'(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)(\{)',53             bygroups(Keyword, Whitespace, Name.Class, Whitespace, Text), 'struct'),54            (r'(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)(\()',55             bygroups(Keyword, Whitespace, Name.Class, Whitespace, Text), 'union'),56            (r'(type)(\s+)([A-Z][a-zA-Z0-9]+)(\s+)',57             bygroups(Keyword, Whitespace, Name, Whitespace), 'typedef'),58            (r'(enum)(\s+)([A-Z][a-zA-Z0-9]+)(\s+\{)',59             bygroups(Keyword, Whitespace, Name.Class, Whitespace), 'enum'),60            (r'#.*?$', Comment),61            (r'\s+', Whitespace),62        ],63        'struct': [64            (r'\{', Text, '#push'),65            (r'\}', Text, '#pop'),66            (r'([a-zA-Z0-9]+)(:)(\s*)',67             bygroups(Name.Attribute, Text, Whitespace), 'typedef'),68            (r'\s+', Whitespace),69        ],70        'union': [71            (r'\)', Text, '#pop'),72            (r'(\s*)(\|)(\s*)', bygroups(Whitespace, Text, Whitespace)),73            (r'[A-Z][a-zA-Z0-9]+', Name.Class),74            (words(keywords), Keyword),75            (r'\s+', Whitespace),76        ],77        'typedef': [78            (r'\[\]', Text),79            (r'#.*?$', Comment, '#pop'),80            (r'(\[)(\d+)(\])', bygroups(Text, Literal, Text)),81            (r'<|>', Text),82            (r'\(', Text, 'union'),83            (r'(\[)([a-z][a-z-A-Z0-9]+)(\])', bygroups(Text, Keyword, Text)),84            (r'(\[)([A-Z][a-z-A-Z0-9]+)(\])', bygroups(Text, Name.Class, Text)),85            (r'([A-Z][a-z-A-Z0-9]+)', Name.Class),86            (words(keywords), Keyword),87            (r'\n', Text, '#pop'),88            (r'\{', Text, 'struct'),89            (r'\s+', Whitespace),90            (r'\d+', Literal),91        ],92        'enum': [93            (r'\{', Text, '#push'),94            (r'\}', Text, '#pop'),95            (r'([A-Z][A-Z0-9_]*)(\s*=\s*)(\d+)',96             bygroups(Name.Attribute, Text, Literal)),97            (r'([A-Z][A-Z0-9_]*)', bygroups(Name.Attribute)),98            (r'#.*?$', Comment),99            (r'\s+', Whitespace),100        ],101    }102 
codekingpro/portable-devtools · Team Ai