This commit is contained in:
len0rd 2025-01-31 15:38:58 -05:00
parent 6730db4ed5
commit ec67bb4d58
26 changed files with 926 additions and 67 deletions

186
conf.py
View file

@ -53,76 +53,146 @@ html_context = {"html_title": html_title}
pygments_style = "sas"
drawio_headless = True
drawio_no_sandbox = True
class CanbusDbcLexer(RegexLexer):
name = "DBC"
tokens = {
'root' : [
(r'[:\|\[\],\(\)]', token.Punctuation),
(r'[\@\-\+]', token.Operator),
("CM_", token.Keyword, 'comment'),
"root": [
(r"[:\|\[\],\(\)]", token.Punctuation),
(r"[\@\-\+]", token.Operator),
("CM_", token.Keyword, "comment"),
("SG_", token.Keyword, "signal"),
("BO_", token.Keyword, 'msg'),
("BA_DEF_DEF_", token.Keyword, 'attrdefault'),
("BA_DEF_", token.Keyword, 'attrdef'),
('BA_', token.Keyword, 'sigdefault')
("BO_", token.Keyword, "msg"),
("BA_DEF_DEF_", token.Keyword, "attrdefault"),
("BA_DEF_", token.Keyword, "attrdef"),
("BA_", token.Keyword, "sigdefault"),
],
'msg': [
(r'(\s+)(\d+)(\s+)([\w_]+)(\s*?)(:)(\s+)(\d+)(\s+)(\w+)',
bygroups(token.Whitespace, token.Number, token.Whitespace, token.Name, token.Whitespace, token.Punctuation, token.Whitespace, token.Number, token.Whitespace, token.Name)),
"msg": [
(
r"(\s+)(\d+)(\s+)([\w_]+)(\s*?)(:)(\s+)(\d+)(\s+)(\w+)",
bygroups(
token.Whitespace,
token.Number,
token.Whitespace,
token.Name,
token.Whitespace,
token.Punctuation,
token.Whitespace,
token.Number,
token.Whitespace,
token.Name,
),
),
],
'signal': [
(r'(\s+)([\w_]+)(\s+)(:)(\s+)(\d+)(\|)(\d+)(@)(\d+)([+-])(\s+)(\()([-\d\.]+)(,)([-\d\.]+)(\))(\s+)(\[)([\d-]+)(\|)([\d-]+)(\])(\s+)(".*?")(.*?\n)',
bygroups(token.Whitespace,
token.Name,
token.Whitespace,
token.Punctuation,
token.Whitespace,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.String,
token.Name,
)),
"signal": [
(
r'(\s+)([\w_]+)(\s+)(:)(\s+)(\d+)(\|)(\d+)(@)(\d+)([+-])(\s+)(\()([-\d\.]+)(,)([-\d\.]+)(\))(\s+)(\[)([\d-]+)(\|)([\d-]+)(\])(\s+)(".*?")(.*?\n)',
bygroups(
token.Whitespace,
token.Name,
token.Whitespace,
token.Punctuation,
token.Whitespace,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.Punctuation,
token.Number,
token.Punctuation,
token.Number,
token.Punctuation,
token.Whitespace,
token.String,
token.Name,
),
),
],
'comment': [
(r'(\s+)(BO_)(\s+)(\d+)(\s+)(".*?")(;)',
bygroups(token.Whitespace, token.Keyword, token.Whitespace, token.Number, token.Whitespace, token.String, token.Punctuation)),
(r'(\s+)(SG_)(\s+)(\d+)(\s+)(\w+)(\s+)(".*?")(;)',
bygroups(token.Whitespace, token.Keyword, token.Whitespace, token.Number, token.Whitespace, token.Name, token.Whitespace, token.String, token.Punctuation))
"comment": [
(
r'(\s+)(BO_)(\s+)(\d+)(\s+)(".*?")(;)',
bygroups(
token.Whitespace,
token.Keyword,
token.Whitespace,
token.Number,
token.Whitespace,
token.String,
token.Punctuation,
),
),
(
r'(\s+)(SG_)(\s+)(\d+)(\s+)(\w+)(\s+)(".*?")(;)',
bygroups(
token.Whitespace,
token.Keyword,
token.Whitespace,
token.Number,
token.Whitespace,
token.Name,
token.Whitespace,
token.String,
token.Punctuation,
),
),
],
'attrdef': [
(r'(\s+)([\w_]+)(\s+)(".*?")(\s+)(\w+)(\s+)(.*?)(;)',
bygroups(token.Whitespace, token.Keyword, token.Whitespace, token.String, token.Whitespace, token.Keyword, token.Whitespace, token.Name, token.Punctuation))
"attrdef": [
(
r'(\s+)([\w_]+)(\s+)(".*?")(\s+)(\w+)(\s+)(.*?)(;)',
bygroups(
token.Whitespace,
token.Keyword,
token.Whitespace,
token.String,
token.Whitespace,
token.Keyword,
token.Whitespace,
token.Name,
token.Punctuation,
),
)
],
'attrdefault': [
(r'(\s+)(".*?")(\s+)(.*?)(;)',
bygroups(token.Whitespace, token.String, token.Whitespace, token.Name, token.Punctuation))
"attrdefault": [
(
r'(\s+)(".*?")(\s+)(.*?)(;)',
bygroups(
token.Whitespace,
token.String,
token.Whitespace,
token.Name,
token.Punctuation,
),
)
],
'sigdefault': [
(r'(\s+)(".*?")(\s+)(SG_)(\s+)(\d+)(\s+)(\S+)(\s+)([0-9\-\.]+)(;)',
bygroups(token.Whitespace, token.String, token.Whitespace, token.Keyword, token.Whitespace, token.Number, token.Whitespace, token.Name, token.Whitespace, token.Number, token.Punctuation))
"sigdefault": [
(
r'(\s+)(".*?")(\s+)(SG_)(\s+)(\d+)(\s+)(\S+)(\s+)([0-9\-\.]+)(;)',
bygroups(
token.Whitespace,
token.String,
token.Whitespace,
token.Keyword,
token.Whitespace,
token.Number,
token.Whitespace,
token.Name,
token.Whitespace,
token.Number,
token.Punctuation,
),
)
],
}
lexers['dbc'] = CanbusDbcLexer(startinline=True)
lexers["dbc"] = CanbusDbcLexer(startinline=True)