annotate src/capnproto-0.6.0/doc/_plugins/capnp_lexer.py @ 148:b4bfdf10c4b3

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