summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps <info@camilstaps.nl>2016-02-16 21:23:32 +0100
committerCamil Staps <info@camilstaps.nl>2016-02-16 21:23:32 +0100
commit06f7bf67a0ae45d0ee2aeefa572c4c2068ca05ee (patch)
tree6c0734eddc19a759a89344c64c9882d9710dffe0
parenta943ba5c2fec8f4000b97dd9e1f72a7fd7e58aac (diff)
downloadpygments-06f7bf67a0ae45d0ee2aeefa572c4c2068ca05ee.tar.gz
Fixes & cleanup Clean lexer as per PR discussion
-rw-r--r--AUTHORS1
-rw-r--r--pygments/lexers/clean.py40
-rw-r--r--pygments/lexers/functional.py1
3 files changed, 21 insertions, 21 deletions
diff --git a/AUTHORS b/AUTHORS
index d4d85bb7..c9e0d3ff 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -151,6 +151,7 @@ Other contributors, listed alphabetically, are:
* Alexander Smishlajev -- Visual FoxPro lexer
* Steve Spigarelli -- XQuery lexer
* Jerome St-Louis -- eC lexer
+* Camil Staps -- Clean lexer
* James Strachan -- Kotlin lexer
* Tom Stuart -- Treetop lexer
* Tiberius Teng -- default style overhaul
diff --git a/pygments/lexers/clean.py b/pygments/lexers/clean.py
index a29233c3..2d3313d1 100644
--- a/pygments/lexers/clean.py
+++ b/pygments/lexers/clean.py
@@ -1,16 +1,16 @@
# -*- coding: utf-8 -*-
"""
- pygments.lexers.make
+ pygments.lexers.clean
~~~~~~~~~~~~~~~~~~~~
- Lexers for Makefiles and similar.
+ Lexer for the Clean language.
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
+ :copyright: Copyright 2016 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
-from pygments.lexer import ExtendedRegexLexer, bygroups, words, include
-from pygments.token import *
+from pygments.lexer import ExtendedRegexLexer, bygroups, words, include, default
+from pygments.token import Comment, Keyword, Literal, Name, Number, Operator, Punctuation, String, Text, Whitespace
__all__ = ['CleanLexer']
@@ -120,7 +120,7 @@ class CleanLexer(ExtendedRegexLexer):
(words(('class','instance','where','with','let','let!','with','in',
'case','of','infix','infixr','infixl','generic','derive',
'otherwise', 'code', 'inline'),
- prefix=r'(?s)^', suffix=r'(?=\s)'), Keyword),
+ prefix=r'^', suffix=r'(?=\s)'), Keyword),
# Function definitions
(r'(?=\{\|)', Whitespace, 'genericfunction'),
@@ -136,10 +136,10 @@ class CleanLexer(ExtendedRegexLexer):
(r'\'\\?.(?<!\\)\'', String.Char),
(r'\'\\\d+\'', String.Char),
(r'\'\\\\\'', String.Char), # (special case for '\\')
- (r'[\+\-~]?\s*?\d+\.\d+(E[+-~]?\d+)?\b', Number.Float),
- (r'[\+\-~]?\s*?0[0-7]\b', Number.Oct),
- (r'[\+\-~]?\s*?0x[0-9a-fA-F]\b', Number.Hex),
- (r'[\+\-~]?\s*?\d+\b', Number.Integer),
+ (r'[\+\-~]?\s*\d+\.\d+(E[+-~]?\d+)?\b', Number.Float),
+ (r'[\+\-~]?\s*0[0-7]\b', Number.Oct),
+ (r'[\+\-~]?\s*0x[0-9a-fA-F]\b', Number.Hex),
+ (r'[\+\-~]?\s*\d+\b', Number.Integer),
(r'"', String.Double, 'doubleqstring'),
(words(('True', 'False'), prefix=r'(?<=\s)', suffix=r'(?=\s)'), Literal),
@@ -176,18 +176,18 @@ class CleanLexer(ExtendedRegexLexer):
include('common'),
(r'[{(\[]', Punctuation, 'combtype'),
(r',', Punctuation, '#pop'),
- (r':;\.#]', Punctuation),
+ (r'[:;\.#]', Punctuation),
(r'\n', Whitespace, '#pop:2'),
- (r'\s', Whitespace),
- (r'.', Keyword.Type)
+ (r'[^\S\n]+', Whitespace),
+ (r'\S+', Keyword.Type)
],
'combtype': [
include('common'),
(r'[})\]]', Punctuation, '#pop'),
(r'[{(\[]', Punctuation, '#pop'),
- (r',:;\.#]', Punctuation),
- (r'\s', Whitespace),
- (r'.', Keyword.Type)
+ (r'[,:;\.#]', Punctuation),
+ (r'\s+', Whitespace),
+ (r'\S+', Keyword.Type)
],
'import': [
include('common'),
@@ -200,12 +200,12 @@ class CleanLexer(ExtendedRegexLexer):
],
'singlecomment': [
(r'(.)(?=\n)', skip),
- (r'.', Comment)
+ (r'.+', Comment)
],
'doubleqstring': [
- (r'[^\\\'"]+', String.Double),
+ (r'[^\\"]+', String.Double),
(r'"', String.Double, '#pop'),
- (r'\\.|\'', String.Double)
+ (r'\\.', String.Double)
],
'typedef': [
include('common'),
@@ -264,7 +264,7 @@ class CleanLexer(ExtendedRegexLexer):
include('common'),
(r'[\w`\$\(\)=\-<>~*\^\|\+&%]+', Name.Function),
(r'(?=\{\|)', Punctuation, 'genericfunction'),
- (r'', Text, '#pop')
+ default('#pop')
]
}
diff --git a/pygments/lexers/functional.py b/pygments/lexers/functional.py
index 5d4cdf0c..180d3fd4 100644
--- a/pygments/lexers/functional.py
+++ b/pygments/lexers/functional.py
@@ -17,6 +17,5 @@ from pygments.lexers.theorem import CoqLexer
from pygments.lexers.erlang import ErlangLexer, ErlangShellLexer, \
ElixirConsoleLexer, ElixirLexer
from pygments.lexers.ml import SMLLexer, OcamlLexer, OpaLexer
-from pygments.lexers.clean import CleanLexer
__all__ = []