Further development of DataSpec

This commit is contained in:
str4d
2013-06-12 02:00:14 +00:00
parent a55cf7f16c
commit 6d206a117f

View File

@ -11,23 +11,37 @@ class DataSpecLexer(RegexLexer):
(r'(\s*)(\+-)', bygroups(Text, Text), 'boundary'),
(r'(\s+)([\+|])', bygroups(Text, Text), 'content'),
(r'~', Generic.Strong, 'content'),
(r'(\s*)(\w+)(\s)(::)(\s)', bygroups(Text, Name.Tag, Text, Operator, Text), 'definition'),
(r'(\s*)([\w=;]+)(\s)(::)(\s)', bygroups(Text, Name.Tag, Text, Operator, Text), 'definition'),
],
'boundary': [
(r'---\+$', Text, '#pop'),
(r'(//)(-\+)?$', bygroups(Generic.Strong, Text), '#pop'),
(r'---\+-', Text),
(r'---\+\s', Text, '#pop', 'content'),
(r'(//)(-\+-)', bygroups(Generic.Strong, Text)),
],
'content': [
(r'(\s*)([\+|])$', bygroups(Text, Text), '#pop'),
(r'(\s*)(\.\.\.)$', bygroups(Text, Generic.Strong), '#pop'),
(r'(\s*)(~)$', bygroups(Text, Generic.Strong), '#pop'),
(r'(\s*)(\w+)', bygroups(Text, Name.Tag)),
(r'(\s*)([\w=;]+)$', bygroups(Text, Name.Tag), '#pop'),
(r'(\s*)([\w=;]+)', bygroups(Text, Name.Tag)),
(r'(\s*)(\|)', bygroups(Text, Text)),
(r'(\s*)(\()', bygroups(Text, Punctuation), 'expression'),
],
'expression': [
(r'(\s*)(\))', bygroups(Text, Punctuation), '#pop'),
(r'(\s*)(\+)', bygroups(Text, Punctuation)),
(r'(\s*)(\w+)', bygroups(Text, Name)),
],
'definition': [
(r'(\s*)(\w+)(\s)(::)(\s)', bygroups(Text, Name.Tag, Text, Operator, Text)),
(r'(\s*)([\w=;]+)(\s)(::)(\s)', bygroups(Text, Name.Tag, Text, Operator, Text)),
(r'(\s*)((?:[A-Z][a-z]+)+)', bygroups(Text, Name.Class)),
(r'(\s*)(\w+)', bygroups(Text, Comment)),
(r'(\s*)([\[\]])', bygroups(Text, Punctuation)),
(r'(\s*)(\$\w+)', bygroups(Text, Name.Tag)),
(r'(\s*)([0-9]+)(\+)?', bygroups(Text, Number, Punctuation)),
(r'(-)([0-9]+)', bygroups(Punctuation, Number)),
(r'(\s*)(->|<=|>=|\*)', bygroups(Text, Operator)),
(r'(\s*)([\w()-=\'<>]+)', bygroups(Text, Comment)),
],
}