summaryrefslogtreecommitdiffstats
path: root/pygments/lexers/tlb.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygments/lexers/tlb.py')
-rw-r--r--pygments/lexers/tlb.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/pygments/lexers/tlb.py b/pygments/lexers/tlb.py
new file mode 100644
index 0000000..1990ec9
--- /dev/null
+++ b/pygments/lexers/tlb.py
@@ -0,0 +1,57 @@
+"""
+ pygments.lexers.tlb
+ ~~~~~~~~~~~~~~~~~~~
+
+ Lexers for TL-b.
+
+ :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, include, words
+from pygments.token import Operator, Name, \
+ Number, Whitespace, Punctuation, Comment
+
+__all__ = ['TlbLexer']
+
+
+class TlbLexer(RegexLexer):
+ """
+ For TL-b source code.
+ """
+
+ name = 'Tl-b'
+ aliases = ['tlb']
+ filenames = ['*.tlb']
+
+ tokens = {
+ 'root': [
+ (r'\s+', Whitespace),
+
+ include('comments'),
+
+ (r'[0-9]+', Number),
+ (words((
+ '+', '-', '*', '=', '?', '~', '.',
+ '^', '==', '<', '>', '<=', '>=', '!='
+ )), Operator),
+ (words(('##', '#<', '#<=')), Name.Tag),
+ (r'#[0-9a-f]*_?', Name.Tag),
+ (r'\$[01]*_?', Name.Tag),
+
+ (r'[a-zA-Z_][0-9a-zA-Z_]*', Name),
+
+ (r'[;():\[\]{}]', Punctuation)
+ ],
+
+ 'comments': [
+ (r'//.*', Comment.Singleline),
+ (r'/\*', Comment.Multiline, 'comment'),
+ ],
+ 'comment': [
+ (r'[^/*]+', Comment.Multiline),
+ (r'/\*', Comment.Multiline, '#push'),
+ (r'\*/', Comment.Multiline, '#pop'),
+ (r'[*/]', Comment.Multiline),
+ ],
+ }