我需要编写一个词法分析器来正确突出我的命令行工具命令。
$ dvc add file.csv
$ dvc pipeline list
所以命令以它开头,dvc它可能有一个或两个子命令 -add或pipeline list分别。
因此,它应该分别在第一种和第二种情况下突出显示dvc add和。dvc pipeline list
contains: [
{
begin: /^\s*\$\s(dvc|git) [a-z-]+/,
returnBegin: true,
contains: [
{
begin: /dvc [a-z-]+ ?/,
lexemes: '[a-z-]+',
keywords: {
built_in:
'dvc'
},
contains: [
{
begin: /\w+(?![\S])/,
keywords: {
built_in: 'list'
}
}
],
className: 'strong'
}
]
}
]
dvc pipeline list即使父正则表达式 ie/^\s*\$\s(dvc|git) [a-z-]+/应该只匹配 until ,它也匹配dvc pipeline。它究竟是如何运作的?
如何/dvc [a-z-]+ ?/覆盖它并继续匹配表达式?
请在此处参考此库文档:https ://highlightjs.readthedocs.io/en/latest/reference.html