summaryrefslogtreecommitdiff
path: root/pygments/lexers/j.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygments/lexers/j.py')
-rw-r--r--pygments/lexers/j.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/pygments/lexers/j.py b/pygments/lexers/j.py
index 223820b7..ee18b2bd 100644
--- a/pygments/lexers/j.py
+++ b/pygments/lexers/j.py
@@ -8,9 +8,9 @@
:license: BSD, see LICENSE for details.
"""
-from pygments.lexer import RegexLexer, words, include
+from pygments.lexer import RegexLexer, words, include, bygroups
from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, \
- String, Text
+ String, Text, Whitespace
__all__ = ['JLexer']
@@ -36,19 +36,25 @@ class JLexer(RegexLexer):
# Comments
(r'NB\..*', Comment.Single),
- (r'\n+\s*Note', Comment.Multiline, 'comment'),
- (r'\s*Note.*', Comment.Single),
+ (r'(\n+\s*)(Note)', bygroups(Whitespace, Comment.Multiline),
+ 'comment'),
+ (r'(\s*)(Note.*)', bygroups(Whitespace, Comment.Single)),
# Whitespace
- (r'\s+', Text),
+ (r'\s+', Whitespace),
# Strings
(r"'", String, 'singlequote'),
# Definitions
- (r'0\s+:\s*0|noun\s+define\s*$', Name.Entity, 'nounDefinition'),
- (r'(([1-4]|13)\s+:\s*0|(adverb|conjunction|dyad|monad|verb)\s+define)\b',
- Name.Function, 'explicitDefinition'),
+ (r'0\s+:\s*0', Name.Entity, 'nounDefinition'),
+ (r'(noun)(\s+)(define)(\s*)$', bygroups(Name.Entity, Whitespace,
+ Name.Entity, Whitespace), 'nounDefinition'),
+ (r'([1-4]|13)\s+:\s*0\b',
+ Name.Function, 'explicitDefinition'),
+ (r'(adverb|conjunction|dyad|monad|verb)(\s+)(define)\b',
+ bygroups(Name.Function, Whitespace, Name.Function),
+ 'explicitDefinition'),
# Flow Control
(words(('for_', 'goto_', 'label_'), suffix=validName+r'\.'), Name.Label),
@@ -125,7 +131,7 @@ class JLexer(RegexLexer):
],
'nounDefinition': [
- (r'[^)]', String),
+ (r'[^)]+', String),
(r'^\)', Name.Label, '#pop'),
(r'[)]', String),
],
@@ -138,7 +144,7 @@ class JLexer(RegexLexer):
],
'singlequote': [
- (r"[^']", String),
+ (r"[^']+", String),
(r"''", String),
(r"'", String, '#pop'),
],