diff options
author | Marc 'BlackJack' Rintsch <marc@rintsch.de> | 2012-07-04 17:34:03 +0200 |
---|---|---|
committer | Marc 'BlackJack' Rintsch <marc@rintsch.de> | 2012-07-04 17:34:03 +0200 |
commit | 893009eee607ecde75977c4919880a6ea5fd0559 (patch) | |
tree | 3c09e449e99c92df10f254601d59a6bb3a9ac48c | |
parent | 43318e3c4bdd5936e3fb53903e50d31cbff43fb5 (diff) | |
parent | 0b274e8e0f611761060b4a68250fd81ecde9d158 (diff) | |
download | pygments-893009eee607ecde75977c4919880a6ea5fd0559.tar.gz |
Merge main development.
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | pygments/lexers/_mapping.py | 1 | ||||
-rw-r--r-- | pygments/lexers/agile.py | 57 | ||||
-rw-r--r-- | pygments/lexers/web.py | 4 |
4 files changed, 35 insertions, 28 deletions
@@ -11,6 +11,7 @@ Version 1.6 - Lexers added: * Julia (PR#61) + * Croc (new name for MiniD) - Fix Template Haskell highlighting (PR#63) diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py index f5177cfa..f3867555 100644 --- a/pygments/lexers/_mapping.py +++ b/pygments/lexers/_mapping.py @@ -62,6 +62,7 @@ LEXERS = { 'CoqLexer': ('pygments.lexers.functional', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)), 'CppLexer': ('pygments.lexers.compiled', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx'), ('text/x-c++hdr', 'text/x-c++src')), 'CppObjdumpLexer': ('pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)), + 'CrocLexer': ('pygments.lexers.agile', 'Croc', ('croc',), ('*.croc',), ('text/x-crocsrc',)), 'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), (), ('text/css+django', 'text/css+jinja')), 'CssErbLexer': ('pygments.lexers.templates', 'CSS+Ruby', ('css+erb', 'css+ruby'), (), ('text/css+ruby',)), 'CssGenshiLexer': ('pygments.lexers.templates', 'CSS+Genshi Text', ('css+genshitext', 'css+genshi'), (), ('text/css+genshi',)), diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py index 024ab8d5..61b05f93 100644 --- a/pygments/lexers/agile.py +++ b/pygments/lexers/agile.py @@ -22,7 +22,7 @@ from pygments import unistring as uni __all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer', 'Python3Lexer', 'Python3TracebackLexer', 'RubyLexer', 'RubyConsoleLexer', 'PerlLexer', 'LuaLexer', 'MoonScriptLexer', - 'MiniDLexer', 'IoLexer', 'TclLexer', 'FactorLexer', 'FancyLexer'] + 'CrocLexer', 'MiniDLexer', 'IoLexer', 'TclLexer', 'FactorLexer', 'FancyLexer'] # b/w compatibility from pygments.lexers.functional import SchemeLexer @@ -1189,16 +1189,14 @@ class MoonScriptLexer(LuaLexer): yield index, token, value - -class MiniDLexer(RegexLexer): +class CrocLexer(RegexLexer): """ - For `MiniD <http://www.dsource.org/projects/minid>`_ (a D-like scripting - language) source. + For `Croc <http://jfbillingsley.com/croc>`_ source. """ - name = 'MiniD' - filenames = ['*.md'] - aliases = ['minid'] - mimetypes = ['text/x-minidsrc'] + name = 'Croc' + filenames = ['*.croc'] + aliases = ['croc'] + mimetypes = ['text/x-crocsrc'] tokens = { 'root': [ @@ -1206,35 +1204,32 @@ class MiniDLexer(RegexLexer): (r'\s+', Text), # Comments (r'//(.*?)\n', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'/\+', Comment.Multiline, 'nestedcomment'), + (r'/\*', Comment.Multiline, 'nestedcomment'), # Keywords - (r'(as|assert|break|case|catch|class|continue|coroutine|default' + (r'(as|assert|break|case|catch|class|continue|default' r'|do|else|finally|for|foreach|function|global|namespace' - r'|if|import|in|is|local|module|return|super|switch' + r'|if|import|in|is|local|module|return|scope|super|switch' r'|this|throw|try|vararg|while|with|yield)\b', Keyword), (r'(false|true|null)\b', Keyword.Constant), # FloatLiteral - (r'([0-9][0-9_]*)?\.[0-9_]+([eE][+\-]?[0-9_]+)?', Number.Float), + (r'([0-9][0-9_]*)(?=[.eE])(\.[0-9][0-9_]*)?([eE][+\-]?[0-9_]+)?', Number.Float), # IntegerLiteral # -- Binary - (r'0[Bb][01_]+', Number), - # -- Octal - (r'0[Cc][0-7_]+', Number.Oct), + (r'0[bB][01][01_]*', Number), # -- Hexadecimal - (r'0[xX][0-9a-fA-F_]+', Number.Hex), + (r'0[xX][0-9a-fA-F][0-9a-fA-F_]*', Number.Hex), # -- Decimal - (r'(0|[1-9][0-9_]*)', Number.Integer), + (r'([0-9][0-9_]*)(?![.eE])', Number.Integer), # CharacterLiteral - (r"""'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-9]{1,3}""" + (r"""'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-9]{1,3}""" r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'""", String.Char ), # StringLiteral # -- WysiwygString (r'@"(""|[^"])*"', String), - # -- AlternateWysiwygString - (r'`(``|.)*`', String), + (r'@`(``|[^`])*`', String), + (r"@'(''|[^'])*'", String), # -- DoubleQuotedString (r'"(\\\\|\\"|[^"])*"', String), # Tokens @@ -1247,14 +1242,24 @@ class MiniDLexer(RegexLexer): (r'[a-zA-Z_]\w*', Name), ], 'nestedcomment': [ - (r'[^+/]+', Comment.Multiline), - (r'/\+', Comment.Multiline, '#push'), - (r'\+/', Comment.Multiline, '#pop'), - (r'[+/]', Comment.Multiline), + (r'[^*/]+', Comment.Multiline), + (r'/\*', Comment.Multiline, '#push'), + (r'\*/', Comment.Multiline, '#pop'), + (r'[*/]', Comment.Multiline), ], } +class MiniDLexer(CrocLexer): + """ + For MiniD source. MiniD is now known as Croc. + """ + name = 'MiniD' + filenames = ['*.md'] + aliases = ['minid'] + mimetypes = ['text/x-minidsrc'] + + class IoLexer(RegexLexer): """ For `Io <http://iolanguage.com/>`_ (a small, prototype-based diff --git a/pygments/lexers/web.py b/pygments/lexers/web.py index 5ac56c19..6b788e82 100644 --- a/pygments/lexers/web.py +++ b/pygments/lexers/web.py @@ -1797,8 +1797,8 @@ class CoffeeScriptLexer(RegexLexer): tokens = { 'commentsandwhitespace': [ (r'\s+', Text), - (r'###.*?###', Comment.Multiline), - (r'#.*?\n', Comment.Single), + (r'###[^#].*?###', Comment.Multiline), + (r'#(?!##[^#]).*?\n', Comment.Single), ], 'multilineregex': [ include('commentsandwhitespace'), |