diff options
author | Georg Brandl <georg@python.org> | 2017-01-17 08:12:10 +0100 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2017-01-17 08:12:10 +0100 |
commit | 845e50936b71fee31fe336d1ad050c4b57869ce9 (patch) | |
tree | c3e3276dcdf6d13157b209af2fdf7599cfff8efd | |
parent | 0a30c0a8c579e9a6294376c833eeb39867c20bcd (diff) | |
parent | 9bc4c70fa9a78c697026369cce1fe526ad445876 (diff) | |
download | pygments-845e50936b71fee31fe336d1ad050c4b57869ce9.tar.gz |
Merged in smvv/pygments-main (pull request #682)
Support semicolon comments besides hash comments
-rw-r--r-- | pygments/lexers/haskell.py | 5 | ||||
-rw-r--r-- | pygments/lexers/python.py | 1 | ||||
-rw-r--r-- | pygments/lexers/verification.py | 4 | ||||
-rw-r--r-- | tests/examplefiles/example.hs | 10 |
4 files changed, 17 insertions, 3 deletions
diff --git a/pygments/lexers/haskell.py b/pygments/lexers/haskell.py index ffc3a3a2..b85a8d58 100644 --- a/pygments/lexers/haskell.py +++ b/pygments/lexers/haskell.py @@ -39,7 +39,7 @@ class HaskellLexer(RegexLexer): flags = re.MULTILINE | re.UNICODE reserved = ('case', 'class', 'data', 'default', 'deriving', 'do', 'else', - 'if', 'in', 'infix[lr]?', 'instance', + 'family', 'if', 'in', 'infix[lr]?', 'instance', 'let', 'newtype', 'of', 'then', 'type', 'where', '_') ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE', @@ -63,6 +63,9 @@ class HaskellLexer(RegexLexer): (r'^[_' + uni.Ll + r'][\w\']*', Name.Function), (r"'?[_" + uni.Ll + r"][\w']*", Name), (r"('')?[" + uni.Lu + r"][\w\']*", Keyword.Type), + (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type), + (r"(')\[[^\]]*\]", Keyword.Type), # tuples and lists get special treatment in GHC + (r"(')\([^\)]*\)", Keyword.Type), # .. # Operators (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials diff --git a/pygments/lexers/python.py b/pygments/lexers/python.py index 35635ed1..d41dd08d 100644 --- a/pygments/lexers/python.py +++ b/pygments/lexers/python.py @@ -362,6 +362,7 @@ class Python3Lexer(RegexLexer): ] tokens['numbers'] = [ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float), + (r'\d+[eE][+-]?[0-9]+j?', Number.Float), (r'0[oO][0-7]+', Number.Oct), (r'0[bB][01]+', Number.Bin), (r'0[xX][a-fA-F0-9]+', Number.Hex), diff --git a/pygments/lexers/verification.py b/pygments/lexers/verification.py index 3e77e04a..1ffee0ab 100644 --- a/pygments/lexers/verification.py +++ b/pygments/lexers/verification.py @@ -69,7 +69,7 @@ class SilverLexer(RegexLexer): """ name = 'Silver' aliases = ['silver'] - filenames = ['*.sil'] + filenames = ['*.sil', '*.vpr'] tokens = { 'root': [ @@ -89,7 +89,7 @@ class SilverLexer(RegexLexer): 'constraining', 'Seq', 'Set', 'Multiset', 'union', 'intersection', 'setminus', 'subset', 'unfolding', 'in', 'old', 'forall', 'exists', 'acc', 'wildcard', 'write', 'none', 'epsilon', 'perm', 'unique', - 'apply', 'package', 'folding', 'label'), + 'apply', 'package', 'folding', 'label', 'forperm'), suffix=r'\b'), Keyword), (words(('Int', 'Perm', 'Bool', 'Ref'), suffix=r'\b'), Keyword.Type), include('numbers'), diff --git a/tests/examplefiles/example.hs b/tests/examplefiles/example.hs index f5e2b555..764cab77 100644 --- a/tests/examplefiles/example.hs +++ b/tests/examplefiles/example.hs @@ -29,3 +29,13 @@ data ĈrazyThings = -- some char literals: charl = ['"', 'a', '\ESC', '\'', ' '] + +-- closed type families +type family Fam (a :: Type) = r :: Type where + Fam Int = True + Fam a = False + +-- type literals +type IntChar = '[Int, Char] +type Falsy = 'False +type Falsy = '(10, 20, 30) |