from pygments.lexer import RegexLexer, ExtendedRegexLexer, include, bygroups, \
using, DelegatingLexer
from pygments.token import Text, Name, Number, String, Comment, Punctuation, \
Other, Keyword, Operator, Literal, Whitespace
class TOMLLexer(RegexLexer):
name = 'TOML'
aliases = ['toml']
filenames = ['*.toml']
tokens = {
'root': [
(r'\s+', Text),
(r'#.*?$', Comment.Single),
(r'"(\\\\|\\"|[^"])*"', String),
(r'(true|false)$', Keyword.Constant),
('[a-zA-Z_][a-zA-Z0-9_\-]*', Name),
(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z', Number.Integer),
(r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
(r'\d+[eE][+-]?[0-9]+j?', Number.Float),
(r'\-?\d+', Number.Integer),
(r'[]{}:(),;[]', Punctuation),
(r'\.', Punctuation),
(r'=', Operator)
]
}