summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc 'BlackJack' Rintsch <marc@rintsch.de>2012-07-04 17:34:03 +0200
committerMarc 'BlackJack' Rintsch <marc@rintsch.de>2012-07-04 17:34:03 +0200
commit893009eee607ecde75977c4919880a6ea5fd0559 (patch)
tree3c09e449e99c92df10f254601d59a6bb3a9ac48c
parent43318e3c4bdd5936e3fb53903e50d31cbff43fb5 (diff)
parent0b274e8e0f611761060b4a68250fd81ecde9d158 (diff)
downloadpygments-893009eee607ecde75977c4919880a6ea5fd0559.tar.gz
Merge main development.
-rw-r--r--CHANGES1
-rw-r--r--pygments/lexers/_mapping.py1
-rw-r--r--pygments/lexers/agile.py57
-rw-r--r--pygments/lexers/web.py4
4 files changed, 35 insertions, 28 deletions
diff --git a/CHANGES b/CHANGES
index de9e0389..0bf10329 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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'),