You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.3 KiB
Python

from pygments.lexer import RegexLexer
from pygments.token import *
class HeptagonLexer(RegexLexer):
name = 'Heptagon'
aliases = ['hept']
filenames = ['*.ept']
tokens = {
'root': [
(r'\(\*.*\*\)', Comment),
(r'node|var', Keyword.Declaration),
(r'open', Keyword.Namespace),
(r'returns|let|tel|automaton|state|until|unless|if|then|else|end',
Keyword),
(r'reset|every', Keyword),
(r'map|fold|mapfold', Keyword),
(r'when|merge|fby|do', Keyword),
(r'present', Keyword.Reserved),
(r'int|bool', Keyword.Type),
(r'pre|\-\>|\+|\-|\/|=|&|not|\*|<=|>=|\^', Operator),
(r'\d+', Number.Integer),
(r' |\t', Whitespace),
(r'\(|\)|;|\||:|,|\]|\[|\.|<|>|<<|>>', Punctuation),
(r'true|false', Literal),
(r'[A-Z]\w*', String.Symbol),
(r'\w+', Name)
]
}
class MLSLexer(RegexLexer):
name = 'MiniLS'
aliases = ['mls']
filenames = ['*.mls']
tokens = {
'root': [
(r'\(\*.*\*\)', Comment),
(r'node|var', Keyword.Declaration),
(r'open', Keyword.Namespace),
(r'returns|let|tel|if|then|else|end',
Keyword),
(r'map|fold|mapfold', Keyword),
(r'when|merge|fby|do', Keyword),
(r'present', Keyword.Reserved),
(r'int|bool', Keyword.Type),
(r'pre|\-\>|\+|\-|\/|=|&|not|\*|<=|>=|\^', Operator),
(r'\d+', Number.Integer),
(r' |\t', Whitespace),
(r'\(|\)|;|\||:|,|\]|\[|\.|<<|>>', Punctuation),
(r'true|false', Literal),
(r'[A-Z]\w*', String.Symbol),
(r'\w+', Name)
]
}
class ObcLexer(RegexLexer):
name = 'Obc'
aliases = ['obc']
filenames = ['*.obc']
tokens = {
'root': [
(r'--.*\n', Comment),
(r'machine|reset|step|var', Keyword.Declaration),
(r'open', Keyword.Namespace),
(r'switch|case|mem|returns', Keyword),
(r'int|bool', Keyword.Type),
(r'\+|\-|\/|=|&|not', Operator),
(r'\d+', Number.Integer),
(r' |\t', Whitespace),
(r'\(|\)|;|\||:|\{|\}|,', Punctuation),
(r'true|false', Literal),
(r'[A-Z]\w*', String.Symbol),
(r'\w+', Name)
]
}
class VHDLLexer(RegexLexer):
name = 'VHSIC Hardware Description Language'
aliases = ['vhdl']
filenames = ['*.vhd']
tokens = {
'root': [
(r'--.*\n', Comment),
(r'architecture|process|signal|entity|function',
Keyword.Declaration),
(r'library|use', Keyword.Namespace),
(r'returns|begin|end|if|then|else|elsif|when|of', Keyword),
(r'port|map|case|is|others', Keyword),
(r'natural|bit|std_logic|integer', Keyword.Type),
(r'\(|\)|;|\||:|\{|\}|,|\'|=>', Punctuation),
(r'\+|\-|\/|=|&|not|<=|\.', Operator),
(r'\d+', Number.Integer),
(r' |\t', Whitespace),
(r'\(|\)|;|\||:|\{|\}|,|\'', Punctuation),
(r'true|false', Literal),
(r'[A-Z]\w*', String.Symbol),
(r'\w+', Name)
]
}