diff options
author | gbrandl <devnull@localhost> | 2007-01-25 18:37:55 +0100 |
---|---|---|
committer | gbrandl <devnull@localhost> | 2007-01-25 18:37:55 +0100 |
commit | 5a601958211a13dcff8f82ad122c48393a0b40c3 (patch) | |
tree | 528118926f4d558fa30359cbb10a4d48daec332e | |
parent | 19d8c509bee3216d68419d27f34d00d151454e92 (diff) | |
download | pygments-5a601958211a13dcff8f82ad122c48393a0b40c3.tar.gz |
[svn] Add Dylan lexer by Tim Hatch.
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | pygments/lexers/_mapping.py | 1 | ||||
-rw-r--r-- | pygments/lexers/compiled.py | 46 |
3 files changed, 47 insertions, 1 deletions
@@ -17,6 +17,7 @@ Version 0.7 * Trac Wiki markup * Python tracebacks * ReStructuredText + * Dylan * and the Befunge esoteric programming language (yay!) - Added Mako lexers by Ben Bangert. diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py index a482e5b0..bf2dad76 100644 --- a/pygments/lexers/_mapping.py +++ b/pygments/lexers/_mapping.py @@ -33,6 +33,7 @@ LEXERS = { 'DelphiLexer': ('pygments.lexers.compiled', 'Delphi', ('delphi', 'pas', 'pascal', 'objectpascal'), ('*.pas',), ('text/x-pascal',)), 'DiffLexer': ('pygments.lexers.text', 'Diff', ('diff',), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch')), 'DjangoLexer': ('pygments.lexers.templates', 'Django/Jinja', ('django', 'jinja'), (), ('application/x-django-templating', 'application/x-jinja')), + 'DylanLexer': ('pygments.lexers.compiled', 'DylanLexer', ('dylan',), ('*.dylan',), ('text/x-dylan',)), 'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)), 'GenshiLexer': ('pygments.lexers.templates', 'Genshi', ('genshi', 'kid', 'xml+genshi', 'xml+kid'), ('*.kid',), ('application/x-genshi', 'application/x-kid')), 'GenshiTextLexer': ('pygments.lexers.templates', 'Genshi Text', ('genshitext',), (), ('application/x-genshi-text', 'text/x-genshi')), diff --git a/pygments/lexers/compiled.py b/pygments/lexers/compiled.py index 6c33b10b..de48bd36 100644 --- a/pygments/lexers/compiled.py +++ b/pygments/lexers/compiled.py @@ -24,7 +24,7 @@ from pygments.token import \ Error -__all__ = ['CLexer', 'CppLexer', 'DelphiLexer', 'JavaLexer'] +__all__ = ['CLexer', 'CppLexer', 'DelphiLexer', 'JavaLexer', 'DylanLexer'] class CLexer(RegexLexer): @@ -738,3 +738,47 @@ class JavaLexer(RegexLexer): (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop') ] } + + +class DylanLexer(RegexLexer): + """ + For the `Dylan <http://www.opendylan.org/>` language. + + *New in Pygments 0.7.* + """ + + name = 'DylanLexer' + aliases = ['dylan'] + filenames = ['*.dylan'] + mimetypes = ['text/x-dylan'] + + flags = re.DOTALL + + tokens = { + 'root': [ + (r'\b(subclass|abstract|block|c(on(crete|stant)|lass)|domain' + r'|ex(c(eption|lude)|port)|f(unction(|al))|generic|handler' + r'|i(n(herited|line|stance|terface)|mport)|library|m(acro|ethod)' + r'|open|primary|sealed|si(deways|ngleton)|slot' + r'|v(ariable|irtual))\b', Name.Builtin), + (r'<\w+>', Keyword.Type), + (r'#?"(?:\\.|[^"])+?"', String.Double), + (r'//.*?\n', Comment), + (r'/\*[\w\W]*?\*/', Comment.Multiline), + (r'\'.*?\'', String.Single), + (r'=>|\b(a(bove|fterwards)|b(e(gin|low)|y)|c(ase|leanup|reate)' + r'|define|else(|if)|end|f(inally|or|rom)|i[fn]|l(et|ocal)|otherwise' + r'|rename|s(elect|ignal)|t(hen|o)|u(n(less|til)|se)|wh(en|ile))\b', Keyword), + (r'([ \t])([!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*:)', + bygroups(Text, Name.Variable)), + (r'([ \t]*)(\S+[^:])([ \t]*)(\()([ \t]*)', + bygroups(Text, Name.Function, Text, Punctuation, Text)), + (r'-?[0-9.]+', Number), + (r'[(),;]', Punctuation), + (r'\$[a-zA-Z0-9-]+', Name.Constant), + (r'[!$%&*/:<>=?~^.+\[\]{}-]+', Operator), + (r'\s+', Text), + (r'#[a-zA-Z0-9-]+', Keyword), + (r'[a-zA-Z0-9-]+', Name.Variable), + ], + } |