annotate src/capnproto-git-20161025/doc/_plugins/capnp_lexer.py @ 157:570d27da3fb5

Update exclusion list
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 25 Jan 2019 13:49:22 +0000
parents 1ac99bfc383d
children
rev   line source
cannam@133 1 #! /usr/bin/env python
cannam@133 2
cannam@133 3 from pygments.lexer import RegexLexer
cannam@133 4 from pygments.token import *
cannam@133 5
cannam@133 6 class CapnpLexer(RegexLexer):
cannam@133 7 name = "Cap'n Proto lexer"
cannam@133 8 aliases = ['capnp']
cannam@133 9 filenames = ['*.capnp']
cannam@133 10
cannam@133 11 tokens = {
cannam@133 12 'root': [
cannam@133 13 (r'#.*?$', Comment.Single),
cannam@133 14 (r'@[0-9a-zA-Z]*', Name.Decorator),
cannam@133 15 (r'=', Literal, 'expression'),
cannam@133 16 (r':', Name.Class, 'type'),
cannam@133 17 (r'\$', Name.Attribute, 'annotation'),
cannam@133 18 (r'(struct|enum|interface|union|import|using|const|annotation|extends|in|of|on|as|with|from|fixed)\b',
cannam@133 19 Token.Keyword),
cannam@133 20 (r'[a-zA-Z0-9_.]+', Token.Name),
cannam@133 21 (r'[^#@=:$a-zA-Z0-9_]+', Text),
cannam@133 22 ],
cannam@133 23 'type': [
cannam@133 24 (r'[^][=;,(){}$]+', Name.Class),
cannam@133 25 (r'[[(]', Name.Class, 'parentype'),
cannam@133 26 (r'', Name.Class, '#pop')
cannam@133 27 ],
cannam@133 28 'parentype': [
cannam@133 29 (r'[^][;()]+', Name.Class),
cannam@133 30 (r'[[(]', Name.Class, '#push'),
cannam@133 31 (r'[])]', Name.Class, '#pop'),
cannam@133 32 (r'', Name.Class, '#pop')
cannam@133 33 ],
cannam@133 34 'expression': [
cannam@133 35 (r'[^][;,(){}$]+', Literal),
cannam@133 36 (r'[[(]', Literal, 'parenexp'),
cannam@133 37 (r'', Literal, '#pop')
cannam@133 38 ],
cannam@133 39 'parenexp': [
cannam@133 40 (r'[^][;()]+', Literal),
cannam@133 41 (r'[[(]', Literal, '#push'),
cannam@133 42 (r'[])]', Literal, '#pop'),
cannam@133 43 (r'', Literal, '#pop')
cannam@133 44 ],
cannam@133 45 'annotation': [
cannam@133 46 (r'[^][;,(){}=:]+', Name.Attribute),
cannam@133 47 (r'[[(]', Name.Attribute, 'annexp'),
cannam@133 48 (r'', Name.Attribute, '#pop')
cannam@133 49 ],
cannam@133 50 'annexp': [
cannam@133 51 (r'[^][;()]+', Name.Attribute),
cannam@133 52 (r'[[(]', Name.Attribute, '#push'),
cannam@133 53 (r'[])]', Name.Attribute, '#pop'),
cannam@133 54 (r'', Name.Attribute, '#pop')
cannam@133 55 ],
cannam@133 56 }
cannam@133 57
cannam@133 58 if __name__ == "__main__":
cannam@133 59 from setuptools import setup, find_packages
cannam@133 60 setup(name = "CapnpPygmentsLexer",
cannam@133 61 version = "0.1",
cannam@133 62 packages = find_packages(),
cannam@133 63 py_modules = [ 'capnp_lexer' ],
cannam@133 64 entry_points = {'pygments.lexers': 'capnp = capnp_lexer:CapnpLexer'})